From ed9230c68054cc4ed63a72646b88e8caa0b740a9 Mon Sep 17 00:00:00 2001 From: fullwall Date: Sun, 13 Nov 2022 23:33:18 +0800 Subject: [PATCH] Implement knockback event --- .../nms/v1_10_R1/entity/BatController.java | 10 +++ .../nms/v1_10_R1/entity/BlazeController.java | 10 +++ .../v1_10_R1/entity/CaveSpiderController.java | 10 +++ .../v1_10_R1/entity/ChickenController.java | 10 +++ .../nms/v1_10_R1/entity/CowController.java | 10 +++ .../v1_10_R1/entity/CreeperController.java | 11 +++ .../entity/EnderDragonController.java | 10 +++ .../v1_10_R1/entity/EndermanController.java | 10 +++ .../v1_10_R1/entity/EndermiteController.java | 10 +++ .../nms/v1_10_R1/entity/EntityHumanNPC.java | 4 +- .../nms/v1_10_R1/entity/GhastController.java | 10 +++ .../nms/v1_10_R1/entity/GiantController.java | 10 +++ .../v1_10_R1/entity/GuardianController.java | 10 +++ .../nms/v1_10_R1/entity/HorseController.java | 10 +++ .../v1_10_R1/entity/IronGolemController.java | 10 +++ .../v1_10_R1/entity/MagmaCubeController.java | 10 +++ .../entity/MushroomCowController.java | 10 +++ .../nms/v1_10_R1/entity/OcelotController.java | 10 +++ .../nms/v1_10_R1/entity/PigController.java | 10 +++ .../v1_10_R1/entity/PigZombieController.java | 10 +++ .../v1_10_R1/entity/PolarBearController.java | 10 +++ .../nms/v1_10_R1/entity/RabbitController.java | 10 +++ .../nms/v1_10_R1/entity/SheepController.java | 10 +++ .../v1_10_R1/entity/ShulkerController.java | 10 +++ .../v1_10_R1/entity/SilverfishController.java | 10 +++ .../v1_10_R1/entity/SkeletonController.java | 10 +++ .../nms/v1_10_R1/entity/SlimeController.java | 10 +++ .../v1_10_R1/entity/SnowmanController.java | 10 +++ .../nms/v1_10_R1/entity/SpiderController.java | 10 +++ .../nms/v1_10_R1/entity/SquidController.java | 10 +++ .../v1_10_R1/entity/VillagerController.java | 11 +++ .../nms/v1_10_R1/entity/WitchController.java | 10 +++ .../nms/v1_10_R1/entity/WitherController.java | 10 +++ .../nms/v1_10_R1/entity/WolfController.java | 10 +++ .../nms/v1_10_R1/entity/ZombieController.java | 10 +++ .../entity/nonliving/BoatController.java | 16 ++-- .../entity/nonliving/EggController.java | 10 +-- .../nonliving/EnderCrystalController.java | 10 +-- .../nonliving/EnderSignalController.java | 10 +-- .../entity/nonliving/FireworkController.java | 10 +-- .../nonliving/LargeFireballController.java | 18 ++--- .../entity/nonliving/PaintingController.java | 10 +-- .../entity/nonliving/SnowballController.java | 38 +++++----- .../entity/nonliving/TNTPrimedController.java | 10 +-- .../nonliving/WitherSkullController.java | 10 +-- .../nms/v1_10_R1/util/NMSImpl.java | 2 +- .../nms/v1_10_R1/util/PlayerNavigation.java | 8 +- .../nms/v1_11_R1/entity/BatController.java | 10 +++ .../nms/v1_11_R1/entity/BlazeController.java | 10 +++ .../v1_11_R1/entity/CaveSpiderController.java | 10 +++ .../v1_11_R1/entity/ChickenController.java | 10 +++ .../nms/v1_11_R1/entity/CowController.java | 10 +++ .../v1_11_R1/entity/CreeperController.java | 11 +++ .../entity/EnderDragonController.java | 10 +++ .../v1_11_R1/entity/EndermanController.java | 10 +++ .../v1_11_R1/entity/EndermiteController.java | 10 +++ .../nms/v1_11_R1/entity/EntityHumanNPC.java | 4 +- .../nms/v1_11_R1/entity/EvokerController.java | 10 +++ .../nms/v1_11_R1/entity/GhastController.java | 10 +++ .../nms/v1_11_R1/entity/GiantController.java | 10 +++ .../v1_11_R1/entity/GuardianController.java | 10 +++ .../entity/GuardianElderController.java | 10 +++ .../nms/v1_11_R1/entity/HorseController.java | 10 +++ .../entity/HorseDonkeyController.java | 10 +++ .../v1_11_R1/entity/HorseMuleController.java | 10 +++ .../entity/HorseSkeletonController.java | 10 +++ .../entity/HorseZombieController.java | 10 +++ .../v1_11_R1/entity/IronGolemController.java | 10 +++ .../nms/v1_11_R1/entity/LlamaController.java | 10 +++ .../v1_11_R1/entity/MagmaCubeController.java | 10 +++ .../entity/MushroomCowController.java | 10 +++ .../nms/v1_11_R1/entity/OcelotController.java | 10 +++ .../nms/v1_11_R1/entity/PigController.java | 10 +++ .../v1_11_R1/entity/PigZombieController.java | 10 +++ .../v1_11_R1/entity/PolarBearController.java | 10 +++ .../nms/v1_11_R1/entity/RabbitController.java | 10 +++ .../nms/v1_11_R1/entity/SheepController.java | 10 +++ .../v1_11_R1/entity/ShulkerController.java | 10 +++ .../v1_11_R1/entity/SilverfishController.java | 10 +++ .../v1_11_R1/entity/SkeletonController.java | 10 +++ .../entity/SkeletonStrayController.java | 10 +++ .../entity/SkeletonWitherController.java | 10 +++ .../nms/v1_11_R1/entity/SlimeController.java | 10 +++ .../v1_11_R1/entity/SnowmanController.java | 10 +++ .../nms/v1_11_R1/entity/SpiderController.java | 10 +++ .../nms/v1_11_R1/entity/SquidController.java | 10 +++ .../nms/v1_11_R1/entity/VexController.java | 10 +++ .../v1_11_R1/entity/VillagerController.java | 11 +++ .../v1_11_R1/entity/VindicatorController.java | 10 +++ .../nms/v1_11_R1/entity/WitchController.java | 10 +++ .../nms/v1_11_R1/entity/WitherController.java | 10 +++ .../nms/v1_11_R1/entity/WolfController.java | 10 +++ .../nms/v1_11_R1/entity/ZombieController.java | 10 +++ .../v1_11_R1/entity/ZombieHuskController.java | 10 +++ .../entity/ZombieVillagerController.java | 10 +++ .../nonliving/DragonFireballController.java | 24 +++--- .../entity/nonliving/EggController.java | 34 ++++----- .../nonliving/EnderCrystalController.java | 28 +++---- .../nonliving/EnderPearlController.java | 24 +++--- .../nonliving/EnderSignalController.java | 28 +++---- .../nonliving/ExperienceOrbController.java | 18 ++--- .../entity/nonliving/FireworkController.java | 22 +++--- .../nonliving/LargeFireballController.java | 24 +++--- .../entity/nonliving/LeashController.java | 18 ++--- .../entity/nonliving/PaintingController.java | 22 +++--- .../nonliving/ShulkerBulletController.java | 18 ++--- .../nonliving/SmallFireballController.java | 24 +++--- .../entity/nonliving/SnowballController.java | 50 ++++++------- .../nonliving/SpectralArrowController.java | 18 ++--- .../entity/nonliving/TNTPrimedController.java | 28 +++---- .../nonliving/ThrownExpBottleController.java | 24 +++--- .../nonliving/ThrownPotionController.java | 18 ++--- .../nonliving/WitherSkullController.java | 28 +++---- .../nms/v1_11_R1/util/NMSImpl.java | 2 +- .../nms/v1_11_R1/util/PlayerNavigation.java | 8 +- .../nms/v1_12_R1/entity/BatController.java | 10 +++ .../nms/v1_12_R1/entity/BlazeController.java | 10 +++ .../v1_12_R1/entity/CaveSpiderController.java | 10 +++ .../v1_12_R1/entity/ChickenController.java | 10 +++ .../nms/v1_12_R1/entity/CowController.java | 10 +++ .../v1_12_R1/entity/CreeperController.java | 11 +++ .../entity/EnderDragonController.java | 10 +++ .../v1_12_R1/entity/EndermanController.java | 10 +++ .../v1_12_R1/entity/EndermiteController.java | 10 +++ .../nms/v1_12_R1/entity/EntityHumanNPC.java | 4 +- .../nms/v1_12_R1/entity/EvokerController.java | 10 +++ .../nms/v1_12_R1/entity/GhastController.java | 10 +++ .../nms/v1_12_R1/entity/GiantController.java | 10 +++ .../v1_12_R1/entity/GuardianController.java | 10 +++ .../entity/GuardianElderController.java | 10 +++ .../nms/v1_12_R1/entity/HorseController.java | 11 +++ .../entity/HorseDonkeyController.java | 11 +++ .../v1_12_R1/entity/HorseMuleController.java | 11 +++ .../entity/HorseSkeletonController.java | 10 +++ .../entity/HorseZombieController.java | 10 +++ .../v1_12_R1/entity/IllusionerController.java | 10 +++ .../v1_12_R1/entity/IronGolemController.java | 10 +++ .../nms/v1_12_R1/entity/LlamaController.java | 10 +++ .../v1_12_R1/entity/MagmaCubeController.java | 10 +++ .../entity/MushroomCowController.java | 10 +++ .../nms/v1_12_R1/entity/OcelotController.java | 10 +++ .../nms/v1_12_R1/entity/ParrotController.java | 10 +++ .../nms/v1_12_R1/entity/PigController.java | 10 +++ .../v1_12_R1/entity/PigZombieController.java | 10 +++ .../v1_12_R1/entity/PolarBearController.java | 10 +++ .../nms/v1_12_R1/entity/RabbitController.java | 10 +++ .../nms/v1_12_R1/entity/SheepController.java | 10 +++ .../v1_12_R1/entity/ShulkerController.java | 10 +++ .../v1_12_R1/entity/SilverfishController.java | 10 +++ .../v1_12_R1/entity/SkeletonController.java | 10 +++ .../entity/SkeletonStrayController.java | 10 +++ .../entity/SkeletonWitherController.java | 10 +++ .../nms/v1_12_R1/entity/SlimeController.java | 10 +++ .../v1_12_R1/entity/SnowmanController.java | 10 +++ .../nms/v1_12_R1/entity/SpiderController.java | 10 +++ .../nms/v1_12_R1/entity/SquidController.java | 10 +++ .../nms/v1_12_R1/entity/VexController.java | 10 +++ .../v1_12_R1/entity/VillagerController.java | 11 +++ .../v1_12_R1/entity/VindicatorController.java | 10 +++ .../nms/v1_12_R1/entity/WitchController.java | 10 +++ .../nms/v1_12_R1/entity/WitherController.java | 10 +++ .../nms/v1_12_R1/entity/WolfController.java | 10 +++ .../nms/v1_12_R1/entity/ZombieController.java | 10 +++ .../v1_12_R1/entity/ZombieHuskController.java | 10 +++ .../entity/ZombieVillagerController.java | 10 +++ .../nonliving/DragonFireballController.java | 24 +++--- .../entity/nonliving/EggController.java | 34 ++++----- .../nonliving/EnderCrystalController.java | 28 +++---- .../nonliving/EnderPearlController.java | 24 +++--- .../nonliving/EnderSignalController.java | 28 +++---- .../nonliving/ExperienceOrbController.java | 18 ++--- .../entity/nonliving/FireworkController.java | 22 +++--- .../nonliving/LargeFireballController.java | 24 +++--- .../entity/nonliving/LeashController.java | 18 ++--- .../entity/nonliving/PaintingController.java | 22 +++--- .../nonliving/ShulkerBulletController.java | 18 ++--- .../nonliving/SmallFireballController.java | 24 +++--- .../entity/nonliving/SnowballController.java | 50 ++++++------- .../nonliving/SpectralArrowController.java | 18 ++--- .../entity/nonliving/TNTPrimedController.java | 28 +++---- .../nonliving/ThrownExpBottleController.java | 24 +++--- .../nonliving/ThrownPotionController.java | 18 ++--- .../nonliving/WitherSkullController.java | 28 +++---- .../nms/v1_12_R1/util/NMSImpl.java | 4 +- .../nms/v1_12_R1/util/PlayerNavigation.java | 8 +- .../nms/v1_13_R2/entity/BatController.java | 9 +++ .../nms/v1_13_R2/entity/BlazeController.java | 33 +++++++-- .../v1_13_R2/entity/CaveSpiderController.java | 33 +++++++-- .../v1_13_R2/entity/ChickenController.java | 33 +++++++-- .../nms/v1_13_R2/entity/CodController.java | 33 +++++++-- .../nms/v1_13_R2/entity/CowController.java | 33 +++++++-- .../v1_13_R2/entity/CreeperController.java | 34 +++++++-- .../v1_13_R2/entity/DolphinController.java | 33 +++++++-- .../v1_13_R2/entity/DrownedController.java | 33 +++++++-- .../entity/EnderDragonController.java | 33 +++++++-- .../v1_13_R2/entity/EndermanController.java | 33 +++++++-- .../v1_13_R2/entity/EndermiteController.java | 33 +++++++-- .../nms/v1_13_R2/entity/EntityHumanNPC.java | 7 +- .../nms/v1_13_R2/entity/EvokerController.java | 33 +++++++-- .../nms/v1_13_R2/entity/GhastController.java | 33 +++++++-- .../nms/v1_13_R2/entity/GiantController.java | 33 +++++++-- .../v1_13_R2/entity/GuardianController.java | 33 +++++++-- .../entity/GuardianElderController.java | 33 +++++++-- .../nms/v1_13_R2/entity/HorseController.java | 35 +++++++-- .../entity/HorseDonkeyController.java | 35 +++++++-- .../v1_13_R2/entity/HorseMuleController.java | 35 +++++++-- .../entity/HorseSkeletonController.java | 35 +++++++-- .../entity/HorseZombieController.java | 35 +++++++-- .../nms/v1_13_R2/entity/HumanController.java | 3 - .../v1_13_R2/entity/IllusionerController.java | 33 +++++++-- .../v1_13_R2/entity/IronGolemController.java | 33 +++++++-- .../nms/v1_13_R2/entity/LlamaController.java | 33 +++++++-- .../v1_13_R2/entity/MagmaCubeController.java | 33 +++++++-- .../v1_13_R2/entity/MobEntityController.java | 3 - .../entity/MushroomCowController.java | 33 +++++++-- .../nms/v1_13_R2/entity/OcelotController.java | 33 +++++++-- .../nms/v1_13_R2/entity/ParrotController.java | 33 +++++++-- .../v1_13_R2/entity/PhantomController.java | 33 +++++++-- .../nms/v1_13_R2/entity/PigController.java | 33 +++++++-- .../v1_13_R2/entity/PigZombieController.java | 33 +++++++-- .../v1_13_R2/entity/PolarBearController.java | 33 +++++++-- .../v1_13_R2/entity/PufferFishController.java | 33 +++++++-- .../nms/v1_13_R2/entity/RabbitController.java | 33 +++++++-- .../nms/v1_13_R2/entity/SalmonController.java | 33 +++++++-- .../nms/v1_13_R2/entity/SheepController.java | 33 +++++++-- .../v1_13_R2/entity/ShulkerController.java | 33 +++++++-- .../v1_13_R2/entity/SilverfishController.java | 33 +++++++-- .../v1_13_R2/entity/SkeletonController.java | 33 +++++++-- .../entity/SkeletonStrayController.java | 33 +++++++-- .../entity/SkeletonWitherController.java | 33 +++++++-- .../nms/v1_13_R2/entity/SlimeController.java | 33 +++++++-- .../v1_13_R2/entity/SnowmanController.java | 33 +++++++-- .../nms/v1_13_R2/entity/SpiderController.java | 33 +++++++-- .../nms/v1_13_R2/entity/SquidController.java | 33 +++++++-- .../entity/TropicalFishController.java | 33 +++++++-- .../nms/v1_13_R2/entity/TurtleController.java | 33 +++++++-- .../nms/v1_13_R2/entity/VexController.java | 33 +++++++-- .../v1_13_R2/entity/VillagerController.java | 34 +++++++-- .../v1_13_R2/entity/VindicatorController.java | 33 +++++++-- .../nms/v1_13_R2/entity/WitchController.java | 33 +++++++-- .../nms/v1_13_R2/entity/WitherController.java | 33 +++++++-- .../nms/v1_13_R2/entity/WolfController.java | 33 +++++++-- .../nms/v1_13_R2/entity/ZombieController.java | 33 +++++++-- .../v1_13_R2/entity/ZombieHuskController.java | 33 +++++++-- .../entity/ZombieVillagerController.java | 33 +++++++-- .../nonliving/AreaEffectCloudController.java | 34 +++++---- .../nonliving/ArmorStandController.java | 32 +++++--- .../entity/nonliving/BoatController.java | 34 +++++---- .../nonliving/DragonFireballController.java | 42 ++++++----- .../entity/nonliving/EggController.java | 34 +++++---- .../nonliving/EnderCrystalController.java | 34 +++++---- .../nonliving/EnderPearlController.java | 24 ++++-- .../nonliving/EnderSignalController.java | 34 +++++---- .../nonliving/EvokerFangsController.java | 32 +++++--- .../nonliving/ExperienceOrbController.java | 24 ++++-- .../nonliving/FallingBlockController.java | 24 ++++-- .../entity/nonliving/FireworkController.java | 28 ++++--- .../nonliving/FishingHookController.java | 24 ++++-- .../entity/nonliving/ItemController.java | 24 ++++-- .../entity/nonliving/ItemFrameController.java | 24 ++++-- .../nonliving/LargeFireballController.java | 24 ++++-- .../entity/nonliving/LeashController.java | 34 +++++---- .../entity/nonliving/LlamaSpitController.java | 40 ++++++---- .../nonliving/MinecartChestController.java | 24 ++++-- .../nonliving/MinecartCommandController.java | 24 ++++-- .../nonliving/MinecartFurnaceController.java | 24 ++++-- .../nonliving/MinecartHopperController.java | 24 ++++-- .../nonliving/MinecartRideableController.java | 24 ++++-- .../nonliving/MinecartSpawnerController.java | 24 ++++-- .../nonliving/MinecartTNTController.java | 24 ++++-- .../entity/nonliving/PaintingController.java | 38 ++++++---- .../nonliving/ShulkerBulletController.java | 24 ++++-- .../nonliving/SmallFireballController.java | 24 ++++-- .../entity/nonliving/SnowballController.java | 62 +++++++++------- .../nonliving/SpectralArrowController.java | 24 ++++-- .../entity/nonliving/TNTPrimedController.java | 34 +++++---- .../nonliving/ThrownExpBottleController.java | 24 ++++-- .../nonliving/ThrownPotionController.java | 24 ++++-- .../nonliving/ThrownTridentController.java | 24 ++++-- .../nonliving/TippedArrowController.java | 24 ++++-- .../nonliving/WitherSkullController.java | 34 +++++---- .../nms/v1_13_R2/util/NMSImpl.java | 2 +- .../nms/v1_13_R2/util/PlayerNavigation.java | 73 ++++++++++++------- .../v1_13_R2/util/PlayerPathfinderNormal.java | 2 +- .../nms/v1_14_R1/entity/BatController.java | 32 +++++--- .../nms/v1_14_R1/entity/BlazeController.java | 32 +++++--- .../nms/v1_14_R1/entity/CatController.java | 32 +++++--- .../v1_14_R1/entity/CaveSpiderController.java | 31 +++++--- .../v1_14_R1/entity/ChickenController.java | 32 +++++--- .../nms/v1_14_R1/entity/CodController.java | 31 +++++--- .../nms/v1_14_R1/entity/CowController.java | 32 +++++--- .../v1_14_R1/entity/CreeperController.java | 32 +++++--- .../v1_14_R1/entity/DolphinController.java | 31 +++++--- .../v1_14_R1/entity/DrownedController.java | 31 +++++--- .../entity/EnderDragonController.java | 31 +++++--- .../v1_14_R1/entity/EndermanController.java | 31 +++++--- .../v1_14_R1/entity/EndermiteController.java | 31 +++++--- .../nms/v1_14_R1/entity/EntityHumanNPC.java | 9 +-- .../nms/v1_14_R1/entity/EvokerController.java | 31 +++++--- .../nms/v1_14_R1/entity/FoxController.java | 32 +++++--- .../nms/v1_14_R1/entity/GhastController.java | 32 +++++--- .../nms/v1_14_R1/entity/GiantController.java | 31 +++++--- .../v1_14_R1/entity/GuardianController.java | 31 +++++--- .../entity/GuardianElderController.java | 31 +++++--- .../nms/v1_14_R1/entity/HorseController.java | 33 ++++++--- .../entity/HorseDonkeyController.java | 33 ++++++--- .../v1_14_R1/entity/HorseMuleController.java | 33 ++++++--- .../entity/HorseSkeletonController.java | 33 ++++++--- .../entity/HorseZombieController.java | 33 ++++++--- .../nms/v1_14_R1/entity/HumanController.java | 5 +- .../v1_14_R1/entity/IllusionerController.java | 31 +++++--- .../v1_14_R1/entity/IronGolemController.java | 31 +++++--- .../nms/v1_14_R1/entity/LlamaController.java | 32 +++++--- .../v1_14_R1/entity/MagmaCubeController.java | 31 +++++--- .../v1_14_R1/entity/MobEntityController.java | 5 +- .../entity/MushroomCowController.java | 32 +++++--- .../nms/v1_14_R1/entity/OcelotController.java | 32 +++++--- .../nms/v1_14_R1/entity/PandaController.java | 32 +++++--- .../nms/v1_14_R1/entity/ParrotController.java | 32 +++++--- .../v1_14_R1/entity/PhantomController.java | 31 +++++--- .../nms/v1_14_R1/entity/PigController.java | 32 +++++--- .../v1_14_R1/entity/PigZombieController.java | 31 +++++--- .../v1_14_R1/entity/PillagerController.java | 32 +++++--- .../v1_14_R1/entity/PolarBearController.java | 32 +++++--- .../v1_14_R1/entity/PufferFishController.java | 31 +++++--- .../nms/v1_14_R1/entity/RabbitController.java | 31 +++++--- .../v1_14_R1/entity/RavagerController.java | 32 +++++--- .../nms/v1_14_R1/entity/SalmonController.java | 31 +++++--- .../nms/v1_14_R1/entity/SheepController.java | 31 +++++--- .../v1_14_R1/entity/ShulkerController.java | 31 +++++--- .../v1_14_R1/entity/SilverfishController.java | 31 +++++--- .../v1_14_R1/entity/SkeletonController.java | 31 +++++--- .../entity/SkeletonStrayController.java | 31 +++++--- .../entity/SkeletonWitherController.java | 31 +++++--- .../nms/v1_14_R1/entity/SlimeController.java | 31 +++++--- .../v1_14_R1/entity/SnowmanController.java | 31 +++++--- .../nms/v1_14_R1/entity/SpiderController.java | 31 +++++--- .../nms/v1_14_R1/entity/SquidController.java | 31 +++++--- .../entity/TraderLlamaController.java | 32 +++++--- .../entity/TropicalFishController.java | 31 +++++--- .../nms/v1_14_R1/entity/TurtleController.java | 31 +++++--- .../nms/v1_14_R1/entity/VexController.java | 32 +++++--- .../v1_14_R1/entity/VillagerController.java | 33 ++++++--- .../v1_14_R1/entity/VindicatorController.java | 31 +++++--- .../entity/WanderingTraderController.java | 33 ++++++--- .../nms/v1_14_R1/entity/WitchController.java | 31 +++++--- .../nms/v1_14_R1/entity/WitherController.java | 32 +++++--- .../nms/v1_14_R1/entity/WolfController.java | 31 +++++--- .../nms/v1_14_R1/entity/ZombieController.java | 31 +++++--- .../v1_14_R1/entity/ZombieHuskController.java | 31 +++++--- .../entity/ZombieVillagerController.java | 31 +++++--- .../nonliving/AreaEffectCloudController.java | 23 +++--- .../nonliving/ArmorStandController.java | 22 +++--- .../entity/nonliving/BoatController.java | 39 +++++----- .../nonliving/DragonFireballController.java | 41 ++++++----- .../entity/nonliving/EggController.java | 23 +++--- .../nonliving/EnderCrystalController.java | 23 +++--- .../nonliving/EnderPearlController.java | 23 +++--- .../nonliving/EnderSignalController.java | 23 +++--- .../nonliving/EvokerFangsController.java | 22 +++--- .../nonliving/ExperienceOrbController.java | 23 +++--- .../nonliving/FallingBlockController.java | 22 +++--- .../entity/nonliving/FireworkController.java | 23 +++--- .../nonliving/FishingHookController.java | 23 +++--- .../entity/nonliving/ItemController.java | 23 +++--- .../entity/nonliving/ItemFrameController.java | 23 +++--- .../nonliving/LargeFireballController.java | 41 ++++++----- .../entity/nonliving/LeashController.java | 23 +++--- .../entity/nonliving/LlamaSpitController.java | 23 +++--- .../nonliving/MinecartChestController.java | 23 +++--- .../nonliving/MinecartCommandController.java | 23 +++--- .../nonliving/MinecartFurnaceController.java | 23 +++--- .../nonliving/MinecartHopperController.java | 23 +++--- .../nonliving/MinecartRideableController.java | 23 +++--- .../nonliving/MinecartSpawnerController.java | 23 +++--- .../nonliving/MinecartTNTController.java | 23 +++--- .../entity/nonliving/PaintingController.java | 23 +++--- .../nonliving/ShulkerBulletController.java | 23 +++--- .../nonliving/SmallFireballController.java | 23 +++--- .../entity/nonliving/SnowballController.java | 23 +++--- .../nonliving/SpectralArrowController.java | 23 +++--- .../entity/nonliving/TNTPrimedController.java | 23 +++--- .../nonliving/ThrownExpBottleController.java | 23 +++--- .../nonliving/ThrownPotionController.java | 23 +++--- .../nonliving/ThrownTridentController.java | 23 +++--- .../nonliving/TippedArrowController.java | 23 +++--- .../nonliving/WitherSkullController.java | 23 +++--- .../nms/v1_14_R1/util/NMSImpl.java | 2 +- .../nms/v1_14_R1/util/PlayerNavigation.java | 10 +-- .../nms/v1_15_R1/entity/BatController.java | 26 ++++++- .../nms/v1_15_R1/entity/BeeController.java | 26 ++++++- .../nms/v1_15_R1/entity/BlazeController.java | 26 ++++++- .../nms/v1_15_R1/entity/CatController.java | 26 ++++++- .../v1_15_R1/entity/CaveSpiderController.java | 25 ++++++- .../v1_15_R1/entity/ChickenController.java | 26 ++++++- .../nms/v1_15_R1/entity/CodController.java | 26 ++++++- .../nms/v1_15_R1/entity/CowController.java | 26 ++++++- .../v1_15_R1/entity/CreeperController.java | 26 ++++++- .../v1_15_R1/entity/DolphinController.java | 26 ++++++- .../v1_15_R1/entity/DrownedController.java | 25 ++++++- .../entity/EnderDragonController.java | 25 ++++++- .../v1_15_R1/entity/EndermanController.java | 25 ++++++- .../v1_15_R1/entity/EndermiteController.java | 25 ++++++- .../nms/v1_15_R1/entity/EntityHumanNPC.java | 6 +- .../nms/v1_15_R1/entity/EvokerController.java | 25 ++++++- .../nms/v1_15_R1/entity/FoxController.java | 26 ++++++- .../nms/v1_15_R1/entity/GhastController.java | 26 ++++++- .../nms/v1_15_R1/entity/GiantController.java | 25 ++++++- .../v1_15_R1/entity/GuardianController.java | 25 ++++++- .../entity/GuardianElderController.java | 25 ++++++- .../nms/v1_15_R1/entity/HorseController.java | 27 ++++++- .../entity/HorseDonkeyController.java | 27 ++++++- .../v1_15_R1/entity/HorseMuleController.java | 27 ++++++- .../entity/HorseSkeletonController.java | 27 ++++++- .../entity/HorseZombieController.java | 27 ++++++- .../nms/v1_15_R1/entity/HumanController.java | 2 +- .../v1_15_R1/entity/IllusionerController.java | 25 ++++++- .../v1_15_R1/entity/IronGolemController.java | 25 ++++++- .../nms/v1_15_R1/entity/LlamaController.java | 26 ++++++- .../v1_15_R1/entity/MagmaCubeController.java | 26 ++++++- .../v1_15_R1/entity/MobEntityController.java | 2 +- .../entity/MushroomCowController.java | 26 ++++++- .../nms/v1_15_R1/entity/OcelotController.java | 26 ++++++- .../nms/v1_15_R1/entity/PandaController.java | 26 ++++++- .../nms/v1_15_R1/entity/ParrotController.java | 26 ++++++- .../v1_15_R1/entity/PhantomController.java | 27 ++++++- .../nms/v1_15_R1/entity/PigController.java | 26 ++++++- .../v1_15_R1/entity/PigZombieController.java | 25 ++++++- .../v1_15_R1/entity/PillagerController.java | 26 ++++++- .../v1_15_R1/entity/PolarBearController.java | 26 ++++++- .../v1_15_R1/entity/PufferFishController.java | 26 ++++++- .../nms/v1_15_R1/entity/RabbitController.java | 25 ++++++- .../v1_15_R1/entity/RavagerController.java | 26 ++++++- .../nms/v1_15_R1/entity/SalmonController.java | 26 ++++++- .../nms/v1_15_R1/entity/SheepController.java | 25 ++++++- .../v1_15_R1/entity/ShulkerController.java | 25 ++++++- .../v1_15_R1/entity/SilverfishController.java | 25 ++++++- .../v1_15_R1/entity/SkeletonController.java | 25 ++++++- .../entity/SkeletonStrayController.java | 25 ++++++- .../entity/SkeletonWitherController.java | 25 ++++++- .../nms/v1_15_R1/entity/SlimeController.java | 26 ++++++- .../v1_15_R1/entity/SnowmanController.java | 25 ++++++- .../nms/v1_15_R1/entity/SpiderController.java | 25 ++++++- .../nms/v1_15_R1/entity/SquidController.java | 25 ++++++- .../entity/TraderLlamaController.java | 26 ++++++- .../entity/TropicalFishController.java | 26 ++++++- .../nms/v1_15_R1/entity/TurtleController.java | 27 ++++++- .../nms/v1_15_R1/entity/VexController.java | 26 ++++++- .../v1_15_R1/entity/VillagerController.java | 27 ++++++- .../v1_15_R1/entity/VindicatorController.java | 25 ++++++- .../entity/WanderingTraderController.java | 27 ++++++- .../nms/v1_15_R1/entity/WitchController.java | 25 ++++++- .../nms/v1_15_R1/entity/WitherController.java | 26 ++++++- .../nms/v1_15_R1/entity/WolfController.java | 25 ++++++- .../nms/v1_15_R1/entity/ZombieController.java | 25 ++++++- .../v1_15_R1/entity/ZombieHuskController.java | 25 ++++++- .../entity/ZombieVillagerController.java | 25 ++++++- .../nonliving/ArmorStandController.java | 9 ++- .../entity/nonliving/BoatController.java | 9 ++- .../nonliving/DragonFireballController.java | 10 ++- .../entity/nonliving/EggController.java | 10 ++- .../nonliving/EnderCrystalController.java | 10 ++- .../nonliving/EnderPearlController.java | 10 ++- .../nonliving/EnderSignalController.java | 10 ++- .../nonliving/EvokerFangsController.java | 9 ++- .../nonliving/ExperienceOrbController.java | 10 ++- .../nonliving/FallingBlockController.java | 9 ++- .../entity/nonliving/FireworkController.java | 10 ++- .../nonliving/FishingHookController.java | 10 ++- .../entity/nonliving/ItemController.java | 10 ++- .../entity/nonliving/ItemFrameController.java | 10 ++- .../nonliving/LargeFireballController.java | 10 ++- .../entity/nonliving/LeashController.java | 10 ++- .../entity/nonliving/LlamaSpitController.java | 10 ++- .../nonliving/MinecartChestController.java | 10 ++- .../nonliving/MinecartCommandController.java | 10 ++- .../nonliving/MinecartFurnaceController.java | 10 ++- .../nonliving/MinecartHopperController.java | 17 ++++- .../nonliving/MinecartRideableController.java | 10 ++- .../nonliving/MinecartSpawnerController.java | 17 ++++- .../nonliving/MinecartTNTController.java | 17 ++++- .../entity/nonliving/PaintingController.java | 10 ++- .../nonliving/ShulkerBulletController.java | 10 ++- .../nonliving/SmallFireballController.java | 10 ++- .../entity/nonliving/SnowballController.java | 10 ++- .../nonliving/SpectralArrowController.java | 10 ++- .../entity/nonliving/TNTPrimedController.java | 10 ++- .../nonliving/ThrownExpBottleController.java | 10 ++- .../nonliving/ThrownPotionController.java | 10 ++- .../nonliving/ThrownTridentController.java | 10 ++- .../nonliving/TippedArrowController.java | 10 ++- .../nonliving/WitherSkullController.java | 10 ++- .../nms/v1_15_R1/util/NMSImpl.java | 2 +- .../nms/v1_15_R1/util/PlayerNavigation.java | 10 +-- .../nms/v1_16_R3/entity/BatController.java | 12 ++- .../nms/v1_16_R3/entity/BeeController.java | 32 +++++--- .../nms/v1_16_R3/entity/BlazeController.java | 32 +++++--- .../nms/v1_16_R3/entity/CatController.java | 31 +++++--- .../v1_16_R3/entity/CaveSpiderController.java | 31 +++++--- .../v1_16_R3/entity/ChickenController.java | 31 +++++--- .../nms/v1_16_R3/entity/CodController.java | 32 +++++--- .../nms/v1_16_R3/entity/CowController.java | 31 +++++--- .../v1_16_R3/entity/CreeperController.java | 32 +++++--- .../v1_16_R3/entity/DolphinController.java | 11 ++- .../v1_16_R3/entity/DrownedController.java | 11 ++- .../entity/EnderDragonController.java | 31 +++++--- .../v1_16_R3/entity/EndermanController.java | 31 +++++--- .../v1_16_R3/entity/EndermiteController.java | 31 +++++--- .../nms/v1_16_R3/entity/EntityHumanNPC.java | 6 +- .../nms/v1_16_R3/entity/EvokerController.java | 31 +++++--- .../nms/v1_16_R3/entity/FoxController.java | 31 +++++--- .../nms/v1_16_R3/entity/GhastController.java | 32 +++++--- .../nms/v1_16_R3/entity/GiantController.java | 31 +++++--- .../v1_16_R3/entity/GuardianController.java | 31 +++++--- .../entity/GuardianElderController.java | 31 +++++--- .../nms/v1_16_R3/entity/HoglinController.java | 31 +++++--- .../nms/v1_16_R3/entity/HorseController.java | 33 ++++++--- .../entity/HorseDonkeyController.java | 12 ++- .../v1_16_R3/entity/HorseMuleController.java | 33 ++++++--- .../entity/HorseSkeletonController.java | 33 ++++++--- .../entity/HorseZombieController.java | 33 ++++++--- .../nms/v1_16_R3/entity/HumanController.java | 2 - .../v1_16_R3/entity/IllusionerController.java | 31 +++++--- .../v1_16_R3/entity/IronGolemController.java | 31 +++++--- .../nms/v1_16_R3/entity/LlamaController.java | 31 +++++--- .../v1_16_R3/entity/MagmaCubeController.java | 32 +++++--- .../v1_16_R3/entity/MobEntityController.java | 2 - .../entity/MushroomCowController.java | 31 +++++--- .../nms/v1_16_R3/entity/OcelotController.java | 31 +++++--- .../nms/v1_16_R3/entity/PandaController.java | 31 +++++--- .../nms/v1_16_R3/entity/ParrotController.java | 32 +++++--- .../v1_16_R3/entity/PhantomController.java | 33 ++++++--- .../nms/v1_16_R3/entity/PigController.java | 31 +++++--- .../v1_16_R3/entity/PigZombieController.java | 31 +++++--- .../entity/PiglinBruteController.java | 31 +++++--- .../nms/v1_16_R3/entity/PiglinController.java | 31 +++++--- .../v1_16_R3/entity/PillagerController.java | 31 +++++--- .../v1_16_R3/entity/PolarBearController.java | 32 +++++--- .../v1_16_R3/entity/PufferFishController.java | 32 +++++--- .../nms/v1_16_R3/entity/RabbitController.java | 31 +++++--- .../v1_16_R3/entity/RavagerController.java | 31 +++++--- .../nms/v1_16_R3/entity/SalmonController.java | 32 +++++--- .../nms/v1_16_R3/entity/SheepController.java | 31 +++++--- .../v1_16_R3/entity/ShulkerController.java | 31 +++++--- .../v1_16_R3/entity/SilverfishController.java | 31 +++++--- .../v1_16_R3/entity/SkeletonController.java | 31 +++++--- .../entity/SkeletonStrayController.java | 31 +++++--- .../entity/SkeletonWitherController.java | 31 +++++--- .../nms/v1_16_R3/entity/SlimeController.java | 32 +++++--- .../v1_16_R3/entity/SnowmanController.java | 31 +++++--- .../nms/v1_16_R3/entity/SpiderController.java | 31 +++++--- .../nms/v1_16_R3/entity/SquidController.java | 31 +++++--- .../v1_16_R3/entity/StriderController.java | 31 +++++--- .../entity/TraderLlamaController.java | 31 +++++--- .../entity/TropicalFishController.java | 32 +++++--- .../nms/v1_16_R3/entity/TurtleController.java | 33 ++++++--- .../nms/v1_16_R3/entity/VexController.java | 32 +++++--- .../v1_16_R3/entity/VillagerController.java | 33 ++++++--- .../v1_16_R3/entity/VindicatorController.java | 31 +++++--- .../entity/WanderingTraderController.java | 33 ++++++--- .../nms/v1_16_R3/entity/WitchController.java | 31 +++++--- .../nms/v1_16_R3/entity/WitherController.java | 32 +++++--- .../nms/v1_16_R3/entity/WolfController.java | 31 +++++--- .../nms/v1_16_R3/entity/ZoglinController.java | 31 +++++--- .../nms/v1_16_R3/entity/ZombieController.java | 31 +++++--- .../v1_16_R3/entity/ZombieHuskController.java | 31 +++++--- .../entity/ZombieVillagerController.java | 31 +++++--- .../nonliving/AreaEffectCloudController.java | 23 +++--- .../nonliving/ArmorStandController.java | 22 +++--- .../entity/nonliving/BoatController.java | 23 +++--- .../nonliving/DragonFireballController.java | 23 +++--- .../entity/nonliving/EggController.java | 23 +++--- .../nonliving/EnderCrystalController.java | 23 +++--- .../nonliving/EnderPearlController.java | 23 +++--- .../nonliving/EnderSignalController.java | 23 +++--- .../nonliving/EvokerFangsController.java | 22 +++--- .../nonliving/ExperienceOrbController.java | 23 +++--- .../nonliving/FallingBlockController.java | 2 - .../entity/nonliving/FireworkController.java | 23 +++--- .../nonliving/FishingHookController.java | 2 - .../entity/nonliving/ItemController.java | 3 +- .../entity/nonliving/ItemFrameController.java | 3 +- .../nonliving/LargeFireballController.java | 23 +++--- .../entity/nonliving/LeashController.java | 23 +++--- .../entity/nonliving/LlamaSpitController.java | 23 +++--- .../nonliving/MinecartChestController.java | 23 +++--- .../nonliving/MinecartCommandController.java | 23 +++--- .../nonliving/MinecartFurnaceController.java | 23 +++--- .../nonliving/MinecartHopperController.java | 23 +++--- .../nonliving/MinecartRideableController.java | 23 +++--- .../nonliving/MinecartSpawnerController.java | 23 +++--- .../nonliving/MinecartTNTController.java | 23 +++--- .../entity/nonliving/PaintingController.java | 23 +++--- .../nonliving/ShulkerBulletController.java | 23 +++--- .../nonliving/SmallFireballController.java | 23 +++--- .../entity/nonliving/SnowballController.java | 23 +++--- .../nonliving/SpectralArrowController.java | 23 +++--- .../entity/nonliving/TNTPrimedController.java | 23 +++--- .../nonliving/ThrownExpBottleController.java | 23 +++--- .../nonliving/ThrownPotionController.java | 3 +- .../nonliving/ThrownTridentController.java | 23 +++--- .../nonliving/TippedArrowController.java | 23 +++--- .../nonliving/WitherSkullController.java | 23 +++--- .../nms/v1_16_R3/util/NMSImpl.java | 6 +- .../nms/v1_16_R3/util/PlayerNavigation.java | 12 +-- .../v1_16_R3/util/PlayerPathfinderNormal.java | 6 +- .../v1_17_R1/entity/AxolotlController.java | 30 +++++--- .../nms/v1_17_R1/entity/BatController.java | 29 +++++--- .../nms/v1_17_R1/entity/BeeController.java | 29 +++++--- .../nms/v1_17_R1/entity/BlazeController.java | 29 +++++--- .../nms/v1_17_R1/entity/CatController.java | 30 +++++--- .../v1_17_R1/entity/CaveSpiderController.java | 29 +++++--- .../v1_17_R1/entity/ChickenController.java | 30 +++++--- .../nms/v1_17_R1/entity/CodController.java | 30 +++++--- .../nms/v1_17_R1/entity/CowController.java | 30 +++++--- .../v1_17_R1/entity/CreeperController.java | 30 +++++--- .../v1_17_R1/entity/DolphinController.java | 30 +++++--- .../v1_17_R1/entity/DrownedController.java | 29 +++++--- .../entity/EnderDragonController.java | 29 +++++--- .../v1_17_R1/entity/EndermanController.java | 29 +++++--- .../v1_17_R1/entity/EndermiteController.java | 29 +++++--- .../nms/v1_17_R1/entity/EvokerController.java | 29 +++++--- .../nms/v1_17_R1/entity/FoxController.java | 30 +++++--- .../nms/v1_17_R1/entity/GhastController.java | 29 +++++--- .../nms/v1_17_R1/entity/GiantController.java | 29 +++++--- .../v1_17_R1/entity/GlowSquidController.java | 29 +++++--- .../nms/v1_17_R1/entity/GoatController.java | 30 +++++--- .../v1_17_R1/entity/GuardianController.java | 29 +++++--- .../entity/GuardianElderController.java | 29 +++++--- .../nms/v1_17_R1/entity/HoglinController.java | 29 +++++--- .../nms/v1_17_R1/entity/HorseController.java | 31 +++++--- .../entity/HorseDonkeyController.java | 31 +++++--- .../v1_17_R1/entity/HorseMuleController.java | 31 +++++--- .../entity/HorseSkeletonController.java | 31 +++++--- .../entity/HorseZombieController.java | 31 +++++--- .../v1_17_R1/entity/IllusionerController.java | 29 +++++--- .../v1_17_R1/entity/IronGolemController.java | 29 +++++--- .../nms/v1_17_R1/entity/LlamaController.java | 30 +++++--- .../v1_17_R1/entity/MagmaCubeController.java | 30 +++++--- .../entity/MushroomCowController.java | 30 +++++--- .../nms/v1_17_R1/entity/OcelotController.java | 30 +++++--- .../nms/v1_17_R1/entity/PandaController.java | 30 +++++--- .../nms/v1_17_R1/entity/ParrotController.java | 29 +++++--- .../v1_17_R1/entity/PhantomController.java | 31 +++++--- .../nms/v1_17_R1/entity/PigController.java | 30 +++++--- .../v1_17_R1/entity/PigZombieController.java | 29 +++++--- .../entity/PiglinBruteController.java | 29 +++++--- .../nms/v1_17_R1/entity/PiglinController.java | 29 +++++--- .../v1_17_R1/entity/PillagerController.java | 30 +++++--- .../v1_17_R1/entity/PolarBearController.java | 30 +++++--- .../v1_17_R1/entity/PufferFishController.java | 30 +++++--- .../nms/v1_17_R1/entity/RabbitController.java | 29 +++++--- .../v1_17_R1/entity/RavagerController.java | 30 +++++--- .../nms/v1_17_R1/entity/SalmonController.java | 30 +++++--- .../nms/v1_17_R1/entity/SheepController.java | 29 +++++--- .../v1_17_R1/entity/ShulkerController.java | 29 +++++--- .../v1_17_R1/entity/SilverfishController.java | 29 +++++--- .../v1_17_R1/entity/SkeletonController.java | 29 +++++--- .../entity/SkeletonStrayController.java | 29 +++++--- .../entity/SkeletonWitherController.java | 29 +++++--- .../nms/v1_17_R1/entity/SlimeController.java | 30 +++++--- .../v1_17_R1/entity/SnowmanController.java | 29 +++++--- .../nms/v1_17_R1/entity/SpiderController.java | 29 +++++--- .../nms/v1_17_R1/entity/SquidController.java | 29 +++++--- .../v1_17_R1/entity/StriderController.java | 29 +++++--- .../entity/TraderLlamaController.java | 30 +++++--- .../entity/TropicalFishController.java | 30 +++++--- .../nms/v1_17_R1/entity/TurtleController.java | 31 +++++--- .../nms/v1_17_R1/entity/VexController.java | 29 +++++--- .../v1_17_R1/entity/VillagerController.java | 31 +++++--- .../v1_17_R1/entity/VindicatorController.java | 29 +++++--- .../entity/WanderingTraderController.java | 31 +++++--- .../nms/v1_17_R1/entity/WitchController.java | 29 +++++--- .../nms/v1_17_R1/entity/WitherController.java | 29 +++++--- .../nms/v1_17_R1/entity/WolfController.java | 30 +++++--- .../nms/v1_17_R1/entity/ZoglinController.java | 29 +++++--- .../nms/v1_17_R1/entity/ZombieController.java | 29 +++++--- .../v1_17_R1/entity/ZombieHuskController.java | 29 +++++--- .../entity/ZombieVillagerController.java | 29 +++++--- .../nonliving/AreaEffectCloudController.java | 20 ++--- .../nonliving/ArmorStandController.java | 20 ++--- .../entity/nonliving/BoatController.java | 21 +++--- .../nonliving/DragonFireballController.java | 20 ++--- .../entity/nonliving/EggController.java | 20 ++--- .../nonliving/EnderCrystalController.java | 20 ++--- .../nonliving/EnderPearlController.java | 20 ++--- .../nonliving/EnderSignalController.java | 20 ++--- .../nonliving/EvokerFangsController.java | 20 ++--- .../nonliving/ExperienceOrbController.java | 20 ++--- .../entity/nonliving/FireworkController.java | 20 ++--- .../nonliving/FishingHookController.java | 20 ++--- .../nonliving/LargeFireballController.java | 20 ++--- .../entity/nonliving/LeashController.java | 20 ++--- .../entity/nonliving/LlamaSpitController.java | 20 ++--- .../entity/nonliving/MarkerController.java | 20 ++--- .../nonliving/MinecartChestController.java | 20 ++--- .../nonliving/MinecartCommandController.java | 20 ++--- .../nonliving/MinecartFurnaceController.java | 20 ++--- .../nonliving/MinecartHopperController.java | 20 ++--- .../nonliving/MinecartRideableController.java | 20 ++--- .../nonliving/MinecartSpawnerController.java | 20 ++--- .../nonliving/MinecartTNTController.java | 20 ++--- .../entity/nonliving/PaintingController.java | 20 ++--- .../nonliving/ShulkerBulletController.java | 20 ++--- .../nonliving/SmallFireballController.java | 20 ++--- .../entity/nonliving/SnowballController.java | 20 ++--- .../nonliving/SpectralArrowController.java | 20 ++--- .../entity/nonliving/TNTPrimedController.java | 20 ++--- .../nonliving/ThrownExpBottleController.java | 20 ++--- .../nonliving/ThrownTridentController.java | 20 ++--- .../nonliving/TippedArrowController.java | 20 ++--- .../nonliving/WitherSkullController.java | 20 ++--- .../v1_18_R2/entity/AxolotlController.java | 10 +++ .../nms/v1_18_R2/entity/BatController.java | 29 +++++--- .../nms/v1_18_R2/entity/BeeController.java | 29 +++++--- .../nms/v1_18_R2/entity/BlazeController.java | 29 +++++--- .../nms/v1_18_R2/entity/CatController.java | 30 +++++--- .../v1_18_R2/entity/CaveSpiderController.java | 29 +++++--- .../v1_18_R2/entity/ChickenController.java | 30 +++++--- .../nms/v1_18_R2/entity/CodController.java | 30 +++++--- .../nms/v1_18_R2/entity/CowController.java | 30 +++++--- .../v1_18_R2/entity/CreeperController.java | 30 +++++--- .../v1_18_R2/entity/DolphinController.java | 30 +++++--- .../v1_18_R2/entity/DrownedController.java | 29 +++++--- .../entity/EnderDragonController.java | 29 +++++--- .../v1_18_R2/entity/EndermanController.java | 29 +++++--- .../v1_18_R2/entity/EndermiteController.java | 29 +++++--- .../nms/v1_18_R2/entity/EvokerController.java | 29 +++++--- .../nms/v1_18_R2/entity/FoxController.java | 30 +++++--- .../nms/v1_18_R2/entity/GhastController.java | 29 +++++--- .../nms/v1_18_R2/entity/GiantController.java | 29 +++++--- .../v1_18_R2/entity/GlowSquidController.java | 29 +++++--- .../nms/v1_18_R2/entity/GoatController.java | 30 +++++--- .../v1_18_R2/entity/GuardianController.java | 29 +++++--- .../entity/GuardianElderController.java | 29 +++++--- .../nms/v1_18_R2/entity/HoglinController.java | 29 +++++--- .../nms/v1_18_R2/entity/HorseController.java | 31 +++++--- .../entity/HorseDonkeyController.java | 31 +++++--- .../v1_18_R2/entity/HorseMuleController.java | 31 +++++--- .../entity/HorseSkeletonController.java | 31 +++++--- .../entity/HorseZombieController.java | 31 +++++--- .../v1_18_R2/entity/IllusionerController.java | 29 +++++--- .../v1_18_R2/entity/IronGolemController.java | 29 +++++--- .../nms/v1_18_R2/entity/LlamaController.java | 30 +++++--- .../v1_18_R2/entity/MagmaCubeController.java | 30 +++++--- .../entity/MushroomCowController.java | 30 +++++--- .../nms/v1_18_R2/entity/OcelotController.java | 30 +++++--- .../nms/v1_18_R2/entity/PandaController.java | 30 +++++--- .../nms/v1_18_R2/entity/ParrotController.java | 29 +++++--- .../v1_18_R2/entity/PhantomController.java | 31 +++++--- .../nms/v1_18_R2/entity/PigController.java | 30 +++++--- .../v1_18_R2/entity/PigZombieController.java | 29 +++++--- .../entity/PiglinBruteController.java | 29 +++++--- .../nms/v1_18_R2/entity/PiglinController.java | 29 +++++--- .../v1_18_R2/entity/PillagerController.java | 30 +++++--- .../v1_18_R2/entity/PolarBearController.java | 30 +++++--- .../v1_18_R2/entity/PufferFishController.java | 30 +++++--- .../nms/v1_18_R2/entity/RabbitController.java | 30 +++++--- .../v1_18_R2/entity/RavagerController.java | 30 +++++--- .../nms/v1_18_R2/entity/SalmonController.java | 30 +++++--- .../nms/v1_18_R2/entity/SheepController.java | 30 +++++--- .../v1_18_R2/entity/ShulkerController.java | 29 +++++--- .../v1_18_R2/entity/SilverfishController.java | 29 +++++--- .../v1_18_R2/entity/SkeletonController.java | 29 +++++--- .../entity/SkeletonStrayController.java | 29 +++++--- .../entity/SkeletonWitherController.java | 29 +++++--- .../nms/v1_18_R2/entity/SlimeController.java | 30 +++++--- .../v1_18_R2/entity/SnowmanController.java | 29 +++++--- .../nms/v1_18_R2/entity/SpiderController.java | 29 +++++--- .../nms/v1_18_R2/entity/SquidController.java | 29 +++++--- .../v1_18_R2/entity/StriderController.java | 29 +++++--- .../entity/TraderLlamaController.java | 30 +++++--- .../entity/TropicalFishController.java | 30 +++++--- .../nms/v1_18_R2/entity/TurtleController.java | 31 +++++--- .../nms/v1_18_R2/entity/VexController.java | 29 +++++--- .../v1_18_R2/entity/VillagerController.java | 31 +++++--- .../v1_18_R2/entity/VindicatorController.java | 30 +++++--- .../entity/WanderingTraderController.java | 31 +++++--- .../nms/v1_18_R2/entity/WitchController.java | 29 +++++--- .../nms/v1_18_R2/entity/WitherController.java | 29 +++++--- .../nms/v1_18_R2/entity/WolfController.java | 30 +++++--- .../nms/v1_18_R2/entity/ZoglinController.java | 29 +++++--- .../nms/v1_18_R2/entity/ZombieController.java | 29 +++++--- .../v1_18_R2/entity/ZombieHuskController.java | 29 +++++--- .../entity/ZombieVillagerController.java | 29 +++++--- .../nonliving/AreaEffectCloudController.java | 20 ++--- .../nonliving/ArmorStandController.java | 20 ++--- .../entity/nonliving/BoatController.java | 21 +++--- .../nonliving/DragonFireballController.java | 20 ++--- .../entity/nonliving/EggController.java | 20 ++--- .../nonliving/EnderCrystalController.java | 20 ++--- .../nonliving/EnderPearlController.java | 20 ++--- .../nonliving/EnderSignalController.java | 20 ++--- .../nonliving/EvokerFangsController.java | 20 ++--- .../nonliving/ExperienceOrbController.java | 20 ++--- .../entity/nonliving/FireworkController.java | 20 ++--- .../nonliving/FishingHookController.java | 20 ++--- .../nonliving/LargeFireballController.java | 20 ++--- .../entity/nonliving/LeashController.java | 20 ++--- .../entity/nonliving/LlamaSpitController.java | 20 ++--- .../entity/nonliving/MarkerController.java | 20 ++--- .../nonliving/MinecartChestController.java | 20 ++--- .../nonliving/MinecartCommandController.java | 20 ++--- .../nonliving/MinecartFurnaceController.java | 20 ++--- .../nonliving/MinecartHopperController.java | 20 ++--- .../nonliving/MinecartRideableController.java | 20 ++--- .../nonliving/MinecartSpawnerController.java | 20 ++--- .../nonliving/MinecartTNTController.java | 20 ++--- .../entity/nonliving/PaintingController.java | 20 ++--- .../nonliving/ShulkerBulletController.java | 20 ++--- .../nonliving/SmallFireballController.java | 20 ++--- .../entity/nonliving/SnowballController.java | 20 ++--- .../nonliving/SpectralArrowController.java | 20 ++--- .../entity/nonliving/TNTPrimedController.java | 20 ++--- .../nonliving/ThrownExpBottleController.java | 20 ++--- .../nonliving/ThrownTridentController.java | 20 ++--- .../nonliving/TippedArrowController.java | 20 ++--- .../nonliving/WitherSkullController.java | 20 ++--- .../v1_18_R2/util/PlayerControllerJump.java | 8 +- .../nms/v1_18_R2/util/PlayerNavigation.java | 2 +- .../nms/v1_19_R1/entity/AllayController.java | 9 +++ .../v1_19_R1/entity/AxolotlController.java | 10 +++ .../nms/v1_19_R1/entity/BatController.java | 9 +++ .../nms/v1_19_R1/entity/BeeController.java | 9 +++ .../nms/v1_19_R1/entity/BlazeController.java | 9 +++ .../nms/v1_19_R1/entity/CatController.java | 10 +++ .../v1_19_R1/entity/CaveSpiderController.java | 9 +++ .../v1_19_R1/entity/ChickenController.java | 10 +++ .../nms/v1_19_R1/entity/CodController.java | 10 +++ .../nms/v1_19_R1/entity/CowController.java | 10 +++ .../v1_19_R1/entity/CreeperController.java | 10 +++ .../v1_19_R1/entity/DolphinController.java | 10 +++ .../v1_19_R1/entity/DrownedController.java | 9 +++ .../entity/EnderDragonController.java | 9 +++ .../v1_19_R1/entity/EndermanController.java | 9 +++ .../v1_19_R1/entity/EndermiteController.java | 9 +++ .../nms/v1_19_R1/entity/EntityHumanNPC.java | 9 +++ .../nms/v1_19_R1/entity/EvokerController.java | 9 +++ .../nms/v1_19_R1/entity/FoxController.java | 10 +++ .../nms/v1_19_R1/entity/FrogController.java | 10 +++ .../nms/v1_19_R1/entity/GhastController.java | 9 +++ .../nms/v1_19_R1/entity/GiantController.java | 9 +++ .../v1_19_R1/entity/GlowSquidController.java | 9 +++ .../nms/v1_19_R1/entity/GoatController.java | 10 +++ .../v1_19_R1/entity/GuardianController.java | 9 +++ .../entity/GuardianElderController.java | 9 +++ .../nms/v1_19_R1/entity/HoglinController.java | 9 +++ .../nms/v1_19_R1/entity/HorseController.java | 10 +++ .../entity/HorseDonkeyController.java | 10 +++ .../v1_19_R1/entity/HorseMuleController.java | 10 +++ .../entity/HorseSkeletonController.java | 10 +++ .../entity/HorseZombieController.java | 10 +++ .../v1_19_R1/entity/IllusionerController.java | 9 +++ .../v1_19_R1/entity/IronGolemController.java | 9 +++ .../nms/v1_19_R1/entity/LlamaController.java | 10 +++ .../v1_19_R1/entity/MagmaCubeController.java | 10 +++ .../entity/MushroomCowController.java | 10 +++ .../nms/v1_19_R1/entity/OcelotController.java | 10 +++ .../nms/v1_19_R1/entity/PandaController.java | 10 +++ .../nms/v1_19_R1/entity/ParrotController.java | 9 +++ .../v1_19_R1/entity/PhantomController.java | 10 +++ .../nms/v1_19_R1/entity/PigController.java | 10 +++ .../v1_19_R1/entity/PigZombieController.java | 9 +++ .../entity/PiglinBruteController.java | 9 +++ .../nms/v1_19_R1/entity/PiglinController.java | 9 +++ .../v1_19_R1/entity/PillagerController.java | 10 +++ .../v1_19_R1/entity/PolarBearController.java | 10 +++ .../v1_19_R1/entity/PufferFishController.java | 10 +++ .../nms/v1_19_R1/entity/RabbitController.java | 10 +++ .../v1_19_R1/entity/RavagerController.java | 10 +++ .../nms/v1_19_R1/entity/SalmonController.java | 10 +++ .../nms/v1_19_R1/entity/SheepController.java | 10 +++ .../v1_19_R1/entity/ShulkerController.java | 9 +++ .../v1_19_R1/entity/SilverfishController.java | 9 +++ .../v1_19_R1/entity/SkeletonController.java | 9 +++ .../entity/SkeletonStrayController.java | 9 +++ .../entity/SkeletonWitherController.java | 9 +++ .../nms/v1_19_R1/entity/SlimeController.java | 10 +++ .../v1_19_R1/entity/SnowmanController.java | 9 +++ .../nms/v1_19_R1/entity/SpiderController.java | 9 +++ .../nms/v1_19_R1/entity/SquidController.java | 9 +++ .../v1_19_R1/entity/StriderController.java | 9 +++ .../v1_19_R1/entity/TadpoleController.java | 10 +++ .../entity/TraderLlamaController.java | 10 +++ .../entity/TropicalFishController.java | 10 +++ .../nms/v1_19_R1/entity/TurtleController.java | 10 +++ .../nms/v1_19_R1/entity/VexController.java | 9 +++ .../v1_19_R1/entity/VillagerController.java | 10 +++ .../v1_19_R1/entity/VindicatorController.java | 10 +++ .../entity/WanderingTraderController.java | 10 +++ .../nms/v1_19_R1/entity/WardenController.java | 9 +++ .../nms/v1_19_R1/entity/WitchController.java | 9 +++ .../nms/v1_19_R1/entity/WitherController.java | 9 +++ .../nms/v1_19_R1/entity/WolfController.java | 10 +++ .../nms/v1_19_R1/entity/ZoglinController.java | 9 +++ .../nms/v1_19_R1/entity/ZombieController.java | 9 +++ .../v1_19_R1/entity/ZombieHuskController.java | 9 +++ .../entity/ZombieVillagerController.java | 9 +++ .../v1_19_R1/util/PlayerControllerJump.java | 8 +- .../nms/v1_19_R1/util/PlayerNavigation.java | 2 +- .../nms/v1_8_R3/entity/BatController.java | 10 +++ .../nms/v1_8_R3/entity/BlazeController.java | 10 +++ .../v1_8_R3/entity/CaveSpiderController.java | 10 +++ .../nms/v1_8_R3/entity/ChickenController.java | 10 +++ .../nms/v1_8_R3/entity/CowController.java | 10 +++ .../nms/v1_8_R3/entity/CreeperController.java | 11 +++ .../v1_8_R3/entity/EnderDragonController.java | 10 +++ .../v1_8_R3/entity/EndermanController.java | 10 +++ .../v1_8_R3/entity/EndermiteController.java | 10 +++ .../nms/v1_8_R3/entity/EntityHumanNPC.java | 2 +- .../nms/v1_8_R3/entity/GhastController.java | 10 +++ .../nms/v1_8_R3/entity/GiantController.java | 10 +++ .../v1_8_R3/entity/GuardianController.java | 10 +++ .../nms/v1_8_R3/entity/HorseController.java | 10 +++ .../v1_8_R3/entity/IronGolemController.java | 10 +++ .../v1_8_R3/entity/MagmaCubeController.java | 10 +++ .../v1_8_R3/entity/MushroomCowController.java | 10 +++ .../nms/v1_8_R3/entity/OcelotController.java | 10 +++ .../nms/v1_8_R3/entity/PigController.java | 10 +++ .../v1_8_R3/entity/PigZombieController.java | 10 +++ .../nms/v1_8_R3/entity/RabbitController.java | 12 ++- .../nms/v1_8_R3/entity/SheepController.java | 10 +++ .../v1_8_R3/entity/SilverfishController.java | 10 +++ .../v1_8_R3/entity/SkeletonController.java | 10 +++ .../nms/v1_8_R3/entity/SlimeController.java | 10 +++ .../nms/v1_8_R3/entity/SnowmanController.java | 10 +++ .../nms/v1_8_R3/entity/SpiderController.java | 10 +++ .../nms/v1_8_R3/entity/SquidController.java | 10 +++ .../v1_8_R3/entity/VillagerController.java | 11 +++ .../nms/v1_8_R3/entity/WitchController.java | 10 +++ .../nms/v1_8_R3/entity/WitherController.java | 10 +++ .../nms/v1_8_R3/entity/WolfController.java | 10 +++ .../nms/v1_8_R3/entity/ZombieController.java | 10 +++ .../nonliving/ArmorStandController.java | 16 ++-- .../entity/nonliving/BoatController.java | 4 +- .../entity/nonliving/EggController.java | 10 +-- .../nonliving/EnderCrystalController.java | 10 +-- .../nonliving/EnderSignalController.java | 10 +-- .../entity/nonliving/FireworkController.java | 10 +-- .../entity/nonliving/LeashController.java | 10 +-- .../entity/nonliving/PaintingController.java | 20 ++--- .../entity/nonliving/SnowballController.java | 38 +++++----- .../entity/nonliving/TNTPrimedController.java | 10 +-- .../nonliving/WitherSkullController.java | 10 +-- .../nms/v1_8_R3/util/NMSImpl.java | 8 +- .../nms/v1_8_R3/util/PlayerNavigation.java | 8 +- 946 files changed, 14141 insertions(+), 6002 deletions(-) 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 3a5932983..8d2a6f5c4 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 @@ -8,11 +8,13 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityBat; import net.minecraft.server.v1_10_R1.NBTTagCompound; import net.minecraft.server.v1_10_R1.SoundEffect; @@ -57,6 +59,14 @@ public EntityBatNPC(World world, NPC npc) { } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA); 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 17aca2c73..074335131 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 @@ -8,11 +8,13 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityBlaze; import net.minecraft.server.v1_10_R1.NBTTagCompound; import net.minecraft.server.v1_10_R1.SoundEffect; @@ -54,6 +56,14 @@ public EntityBlazeNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA); 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 cbd82d37e..8c29c16cf 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_10_R1.BlockPosition; +import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityCaveSpider; import net.minecraft.server.v1_10_R1.IBlockData; import net.minecraft.server.v1_10_R1.NBTTagCompound; @@ -63,6 +65,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA); 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 54fc41454..d53a87f89 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_10_R1.BlockPosition; +import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityChicken; import net.minecraft.server.v1_10_R1.IBlockData; import net.minecraft.server.v1_10_R1.NBTTagCompound; @@ -74,6 +76,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA); 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 21afc2eb0..67ef9bf39 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_10_R1.BlockPosition; +import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityCow; import net.minecraft.server.v1_10_R1.EntityHuman; import net.minecraft.server.v1_10_R1.EnumHand; @@ -78,6 +80,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean a(EntityHuman entityhuman, EnumHand enumhand, ItemStack itemstack) { if (npc == null || !npc.isProtected()) 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 9254baa79..f4a2a3b1f 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_10_R1.BlockPosition; +import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityCreeper; import net.minecraft.server.v1_10_R1.EntityHuman; import net.minecraft.server.v1_10_R1.EntityLightning; @@ -50,6 +52,7 @@ public NPC getNPC() { public static class EntityCreeperNPC extends EntityCreeper implements NPCHolder { private boolean allowPowered; + private final CitizensNPC npc; public EntityCreeperNPC(World world) { @@ -68,6 +71,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected boolean a(EntityHuman entityhuman, EnumHand enumhand, ItemStack itemstack) { return npc == null || !npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true) 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 e11e8d284..6f367259a 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 @@ -8,11 +8,13 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityEnderDragon; import net.minecraft.server.v1_10_R1.NBTTagCompound; import net.minecraft.server.v1_10_R1.SoundEffect; @@ -54,6 +56,14 @@ public EntityEnderDragonNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA); 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 322191d35..440193de0 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_10_R1.BlockPosition; +import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityEnderman; import net.minecraft.server.v1_10_R1.IBlockData; import net.minecraft.server.v1_10_R1.NBTTagCompound; @@ -63,6 +65,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA); 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 4d3b51ad7..39588fa93 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_10_R1.BlockPosition; +import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityEndermite; import net.minecraft.server.v1_10_R1.IBlockData; import net.minecraft.server.v1_10_R1.NBTTagCompound; @@ -63,6 +65,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA); diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/EntityHumanNPC.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/EntityHumanNPC.java index 3f85827eb..02908f8fd 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/EntityHumanNPC.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/EntityHumanNPC.java @@ -104,11 +104,11 @@ public boolean a(EntityPlayer entityplayer) { } public float a(PathType pathtype) { - return this.bz.containsKey(pathtype) ? this.bz.get(pathtype).floatValue() : pathtype.a(); + return this.bz.containsKey(pathtype) ? this.bz.get(pathtype) : pathtype.a(); } public void a(PathType pathtype, float f) { - this.bz.put(pathtype, Float.valueOf(f)); + this.bz.put(pathtype, f); } @Override diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/GhastController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/GhastController.java index 4f7a059c4..dece537f7 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 @@ -8,11 +8,13 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityGhast; import net.minecraft.server.v1_10_R1.NBTTagCompound; import net.minecraft.server.v1_10_R1.SoundEffect; @@ -40,6 +42,14 @@ public EntityGhastNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA); 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 cf90581d4..8df579d42 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_10_R1.BlockPosition; +import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityGiantZombie; import net.minecraft.server.v1_10_R1.IBlockData; import net.minecraft.server.v1_10_R1.NBTTagCompound; @@ -49,6 +51,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA); 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 6bd9a342b..a46ebeafd 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_10_R1.BlockPosition; +import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityGuardian; import net.minecraft.server.v1_10_R1.IBlockData; import net.minecraft.server.v1_10_R1.NBTTagCompound; @@ -49,6 +51,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA); 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 e6ecbdbaa..1374f551f 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 @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -17,6 +18,7 @@ import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_10_R1.BlockPosition; +import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityHorse; import net.minecraft.server.v1_10_R1.IBlockData; import net.minecraft.server.v1_10_R1.NBTTagCompound; @@ -72,6 +74,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA); 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 dfabb3564..61faff1fc 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_10_R1.BlockPosition; +import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityIronGolem; import net.minecraft.server.v1_10_R1.IBlockData; import net.minecraft.server.v1_10_R1.NBTTagCompound; @@ -49,6 +51,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA); 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 369c839f5..df8f5c889 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_10_R1.util.PlayerControllerMove; @@ -15,6 +16,7 @@ import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_10_R1.BlockPosition; +import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityHuman; import net.minecraft.server.v1_10_R1.EntityMagmaCube; import net.minecraft.server.v1_10_R1.IBlockData; @@ -55,6 +57,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA); 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 22dbbedaf..ec1e19d6b 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_10_R1.BlockPosition; +import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityHuman; import net.minecraft.server.v1_10_R1.EntityMushroomCow; import net.minecraft.server.v1_10_R1.EnumHand; @@ -64,6 +66,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean a(EntityHuman entityhuman, EnumHand enumhand, ItemStack itemstack) { if (npc == null || !npc.isProtected()) 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 c93901fc7..6fcabbbcd 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_10_R1.BlockPosition; +import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityOcelot; import net.minecraft.server.v1_10_R1.IBlockData; import net.minecraft.server.v1_10_R1.NBTTagCompound; @@ -60,6 +62,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA); 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 628f24b74..6f94c6bf2 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_10_R1.BlockPosition; +import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityLightning; import net.minecraft.server.v1_10_R1.EntityPig; import net.minecraft.server.v1_10_R1.IBlockData; @@ -61,6 +63,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA); 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 ef1e895a3..fb20f7383 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_10_R1.BlockPosition; +import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityPigZombie; import net.minecraft.server.v1_10_R1.IBlockData; import net.minecraft.server.v1_10_R1.NBTTagCompound; @@ -50,6 +52,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA); 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 31b2f8624..1b28c153e 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 @@ -8,11 +8,13 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityPolarBear; import net.minecraft.server.v1_10_R1.NBTTagCompound; import net.minecraft.server.v1_10_R1.SoundEffect; @@ -51,6 +53,14 @@ public void a(boolean flag) { } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA); 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 745086270..995382e24 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_10_R1.BlockPosition; +import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityLiving; import net.minecraft.server.v1_10_R1.EntityRabbit; import net.minecraft.server.v1_10_R1.IBlockData; @@ -61,6 +63,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA); 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 49b59e5e3..5bdd2950e 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_10_R1.BlockPosition; +import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntitySheep; import net.minecraft.server.v1_10_R1.IBlockData; import net.minecraft.server.v1_10_R1.NBTTagCompound; @@ -60,6 +62,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA); 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 570a5a025..a4dd43dd4 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_10_R1.BlockPosition; +import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityAIBodyControl; import net.minecraft.server.v1_10_R1.EntityShulker; import net.minecraft.server.v1_10_R1.IBlockData; @@ -50,6 +52,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA); 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 e3fca9947..7a365845d 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_10_R1.BlockPosition; +import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntitySilverfish; import net.minecraft.server.v1_10_R1.IBlockData; import net.minecraft.server.v1_10_R1.NBTTagCompound; @@ -49,6 +51,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA); 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 3faf89351..cbabe7ba0 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_10_R1.BlockPosition; +import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntitySkeleton; import net.minecraft.server.v1_10_R1.IBlockData; import net.minecraft.server.v1_10_R1.NBTTagCompound; @@ -49,6 +51,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA); 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 9dc6417a7..dedec890e 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_10_R1.util.PlayerControllerMove; @@ -15,6 +16,7 @@ import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_10_R1.BlockPosition; +import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityHuman; import net.minecraft.server.v1_10_R1.EntitySlime; import net.minecraft.server.v1_10_R1.IBlockData; @@ -55,6 +57,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA); 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 ba96ed379..e9fabe632 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_10_R1.BlockPosition; +import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntitySnowman; import net.minecraft.server.v1_10_R1.IBlockData; import net.minecraft.server.v1_10_R1.NBTTagCompound; @@ -49,6 +51,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA); 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 65ed48da5..8974958df 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_10_R1.BlockPosition; +import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntitySpider; import net.minecraft.server.v1_10_R1.IBlockData; import net.minecraft.server.v1_10_R1.NBTTagCompound; @@ -49,6 +51,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA); 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 89824a7ed..f04110096 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_10_R1.BlockPosition; +import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntitySquid; import net.minecraft.server.v1_10_R1.IBlockData; import net.minecraft.server.v1_10_R1.NBTTagCompound; @@ -49,6 +51,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA); 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 b23e862d0..752911280 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_10_R1.BlockPosition; +import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityHuman; import net.minecraft.server.v1_10_R1.EntityLightning; import net.minecraft.server.v1_10_R1.EntityVillager; @@ -36,6 +38,7 @@ public Villager getBukkitEntity() { public static class EntityVillagerNPC extends EntityVillager implements NPCHolder { private boolean blockingATrade; + private final CitizensNPC npc; public EntityVillagerNPC(World world) { @@ -65,6 +68,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean a(EntityHuman entityhuman, EnumHand enumhand, ItemStack itemstack) { if (npc != null && npc.data().get(NPC.VILLAGER_BLOCK_TRADES, true)) { 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 3d68ecac0..3c8c3a576 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_10_R1.BlockPosition; +import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityWitch; import net.minecraft.server.v1_10_R1.IBlockData; import net.minecraft.server.v1_10_R1.NBTTagCompound; @@ -49,6 +51,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA); 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 8afed18c9..4c8bca4c2 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 @@ -8,11 +8,13 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityWither; import net.minecraft.server.v1_10_R1.NBTTagCompound; import net.minecraft.server.v1_10_R1.SoundEffect; @@ -40,6 +42,14 @@ public EntityWitherNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA); 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 042f8e6c1..0e1390337 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 @@ -9,12 +9,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_10_R1.BlockPosition; +import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityLiving; import net.minecraft.server.v1_10_R1.EntityWolf; import net.minecraft.server.v1_10_R1.IBlockData; @@ -62,6 +64,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA); 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 0bab84023..3ce4710d3 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_10_R1.BlockPosition; +import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityZombie; import net.minecraft.server.v1_10_R1.IBlockData; import net.minecraft.server.v1_10_R1.NBTTagCompound; @@ -49,6 +51,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA); diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/BoatController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/BoatController.java index 4cbab3dfc..59b5b3874 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/BoatController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/BoatController.java @@ -90,20 +90,20 @@ public NPC getNPC() { } @Override - public void setSize(float f, float f1) { - if (npc == null) { - super.setSize(f, f1); + public void m() { + if (npc != null) { + npc.update(); } else { - NMSImpl.setSize(this, f, f1, justCreated); + super.m(); } } @Override - public void m() { - if (npc != null) { - npc.update(); + public void setSize(float f, float f1) { + if (npc == null) { + super.setSize(f, f1); } else { - super.m(); + NMSImpl.setSize(this, f, f1, justCreated); } } } diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/EggController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/EggController.java index 39b560b1f..2d833510f 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/EggController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/EggController.java @@ -63,11 +63,6 @@ public EntityEggNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } - @Override - public boolean d(NBTTagCompound save) { - return npc == null ? super.d(save) : false; - } - public EntityEggNPC(World world, NPC npc, double d0, double d1, double d2) { super(world, d0, d1, d2); this.npc = (CitizensNPC) npc; @@ -83,6 +78,11 @@ public void collide(net.minecraft.server.v1_10_R1.Entity entity) { } } + @Override + public boolean d(NBTTagCompound save) { + return npc == null ? super.d(save) : false; + } + @Override public void g(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/EnderCrystalController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/EnderCrystalController.java index 602fde13c..99789131a 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/EnderCrystalController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/EnderCrystalController.java @@ -47,11 +47,6 @@ public EntityEnderCrystalNPC(World world) { this(world, null); } - @Override - public boolean d(NBTTagCompound save) { - return npc == null ? super.d(save) : false; - } - public EntityEnderCrystalNPC(World world, NPC npc) { super(world); this.npc = (CitizensNPC) npc; @@ -67,6 +62,11 @@ public void collide(net.minecraft.server.v1_10_R1.Entity entity) { } } + @Override + public boolean d(NBTTagCompound save) { + return npc == null ? super.d(save) : false; + } + @Override public void g(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/EnderSignalController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/EnderSignalController.java index dace808a5..9a86cd809 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/EnderSignalController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/EnderSignalController.java @@ -47,11 +47,6 @@ public EntityEnderSignalNPC(World world) { this(world, null); } - @Override - public boolean d(NBTTagCompound save) { - return npc == null ? super.d(save) : false; - } - public EntityEnderSignalNPC(World world, NPC npc) { super(world); this.npc = (CitizensNPC) npc; @@ -67,6 +62,11 @@ public void collide(net.minecraft.server.v1_10_R1.Entity entity) { } } + @Override + public boolean d(NBTTagCompound save) { + return npc == null ? super.d(save) : false; + } + @Override public void g(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/FireworkController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/FireworkController.java index 370377f7e..0bcfabde1 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/FireworkController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/FireworkController.java @@ -38,11 +38,6 @@ public EntityFireworkNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } - @Override - public boolean d(NBTTagCompound save) { - return npc == null ? super.d(save) : false; - } - @Override public void collide(net.minecraft.server.v1_10_R1.Entity entity) { // this method is called by both the entities involved - cancelling @@ -53,6 +48,11 @@ public void collide(net.minecraft.server.v1_10_R1.Entity entity) { } } + @Override + public boolean d(NBTTagCompound save) { + return npc == null ? super.d(save) : false; + } + @Override public void g(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/LargeFireballController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/LargeFireballController.java index 6240f9375..ff04ea892 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/LargeFireballController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/LargeFireballController.java @@ -75,15 +75,6 @@ public NPC getNPC() { return npc; } - @Override - public void setSize(float f, float f1) { - if (npc == null) { - super.setSize(f, f1); - } else { - NMSImpl.setSize(this, f, f1, justCreated); - } - } - @Override public void m() { if (npc != null) { @@ -95,6 +86,15 @@ public void m() { super.m(); } } + + @Override + public void setSize(float f, float f1) { + if (npc == null) { + super.setSize(f, f1); + } else { + NMSImpl.setSize(this, f, f1, justCreated); + } + } } public static class LargeFireballNPC extends CraftLargeFireball implements NPCHolder { diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/PaintingController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/PaintingController.java index 25ad11857..1cf22ef75 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/PaintingController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/PaintingController.java @@ -38,11 +38,6 @@ public EntityPaintingNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } - @Override - public boolean d(NBTTagCompound save) { - return npc == null ? super.d(save) : false; - } - @Override public void collide(net.minecraft.server.v1_10_R1.Entity entity) { // this method is called by both the entities involved - cancelling @@ -53,6 +48,11 @@ public void collide(net.minecraft.server.v1_10_R1.Entity entity) { } } + @Override + public boolean d(NBTTagCompound save) { + return npc == null ? super.d(save) : false; + } + @Override public void g(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/SnowballController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/SnowballController.java index 4a9f86cc4..5bd25d9d7 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/SnowballController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/SnowballController.java @@ -26,20 +26,6 @@ public Snowball getBukkitEntity() { return (Snowball) super.getBukkitEntity(); } - public static class SnowballNPC extends CraftSnowball implements NPCHolder { - private final CitizensNPC npc; - - public SnowballNPC(EntitySnowballNPC entity) { - super((CraftServer) Bukkit.getServer(), entity); - this.npc = entity.npc; - } - - @Override - public NPC getNPC() { - return npc; - } - } - public static class EntitySnowballNPC extends EntitySnowball implements NPCHolder { private final CitizensNPC npc; @@ -47,11 +33,6 @@ public EntitySnowballNPC(World world) { this(world, null); } - @Override - public boolean d(NBTTagCompound save) { - return npc == null ? super.d(save) : false; - } - public EntitySnowballNPC(World world, NPC npc) { super(world); this.npc = (CitizensNPC) npc; @@ -67,6 +48,11 @@ public void collide(net.minecraft.server.v1_10_R1.Entity entity) { } } + @Override + public boolean d(NBTTagCompound save) { + return npc == null ? super.d(save) : false; + } + @Override public void g(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); @@ -97,4 +83,18 @@ public void m() { } } } + + public static class SnowballNPC extends CraftSnowball implements NPCHolder { + private final CitizensNPC npc; + + public SnowballNPC(EntitySnowballNPC entity) { + super((CraftServer) Bukkit.getServer(), entity); + this.npc = entity.npc; + } + + @Override + public NPC getNPC() { + return npc; + } + } } \ No newline at end of file diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/TNTPrimedController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/TNTPrimedController.java index 3a350e2ad..cc688b6ae 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/TNTPrimedController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/TNTPrimedController.java @@ -33,11 +33,6 @@ public EntityTNTPrimedNPC(World world) { this(world, null); } - @Override - public boolean d(NBTTagCompound save) { - return npc == null ? super.d(save) : false; - } - public EntityTNTPrimedNPC(World world, NPC npc) { super(world); this.npc = (CitizensNPC) npc; @@ -53,6 +48,11 @@ public void collide(net.minecraft.server.v1_10_R1.Entity entity) { } } + @Override + public boolean d(NBTTagCompound save) { + return npc == null ? super.d(save) : false; + } + @Override public void g(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/WitherSkullController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/WitherSkullController.java index 7fa5e9ebd..ffde443e9 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/WitherSkullController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/WitherSkullController.java @@ -33,11 +33,6 @@ public EntityWitherSkullNPC(World world) { this(world, null); } - @Override - public boolean d(NBTTagCompound save) { - return npc == null ? super.d(save) : false; - } - public EntityWitherSkullNPC(World world, NPC npc) { super(world); this.npc = (CitizensNPC) npc; @@ -53,6 +48,11 @@ public void collide(net.minecraft.server.v1_10_R1.Entity entity) { } } + @Override + public boolean d(NBTTagCompound save) { + return npc == null ? super.d(save) : false; + } + @Override public void g(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 59c8995ea..512e209b5 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 @@ -1353,7 +1353,7 @@ public void stop() { @Override public void update() { updateNavigation(navigation); - }; + } } private static class NavigationIterable implements Iterable { diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/PlayerNavigation.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/PlayerNavigation.java index ad775c214..6d7dd9b53 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/PlayerNavigation.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/PlayerNavigation.java @@ -130,13 +130,7 @@ private boolean a(int paramInt1, int paramInt2, int paramInt3, int paramInt4, in if (d1 * paramDouble1 + d2 * paramDouble2 >= 0.0D) { PathType localPathType = this.e.a(this.b, k, paramInt2 - 1, m, this.a, paramInt4, paramInt5, paramInt6, true, true); - if (localPathType == PathType.WATER) { - return false; - } - if (localPathType == PathType.LAVA) { - return false; - } - if (localPathType == PathType.OPEN) { + if ((localPathType == PathType.WATER) || (localPathType == PathType.LAVA) || (localPathType == PathType.OPEN)) { return false; } localPathType = this.e.a(this.b, k, paramInt2, m, this.a, paramInt4, paramInt5, paramInt6, true, 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 79b2b80ec..a11b19db2 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 @@ -8,11 +8,13 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityBat; import net.minecraft.server.v1_11_R1.NBTTagCompound; import net.minecraft.server.v1_11_R1.SoundEffect; @@ -57,6 +59,14 @@ public EntityBatNPC(World world, NPC npc) { } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.DEATH_SOUND_METADATA); 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 7c4c09c3e..7e468b60f 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 @@ -8,11 +8,13 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityBlaze; import net.minecraft.server.v1_11_R1.NBTTagCompound; import net.minecraft.server.v1_11_R1.SoundEffect; @@ -54,6 +56,14 @@ public EntityBlazeNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.DEATH_SOUND_METADATA); 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 dfe75d0d3..ffa76cea7 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_11_R1.BlockPosition; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityCaveSpider; import net.minecraft.server.v1_11_R1.IBlockData; import net.minecraft.server.v1_11_R1.NBTTagCompound; @@ -63,6 +65,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.DEATH_SOUND_METADATA); 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 7e4d391e1..40f2e021f 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_11_R1.BlockPosition; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityChicken; import net.minecraft.server.v1_11_R1.IBlockData; import net.minecraft.server.v1_11_R1.NBTTagCompound; @@ -74,6 +76,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.DEATH_SOUND_METADATA); 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 6ef98d3ae..dc79579fc 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_11_R1.BlockPosition; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityCow; import net.minecraft.server.v1_11_R1.EntityHuman; import net.minecraft.server.v1_11_R1.EnumHand; @@ -78,6 +80,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean a(EntityHuman entityhuman, EnumHand enumhand) { if (npc == null || !npc.isProtected()) 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 a7df34f68..b01b7f790 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_11_R1.BlockPosition; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityCreeper; import net.minecraft.server.v1_11_R1.EntityLightning; import net.minecraft.server.v1_11_R1.IBlockData; @@ -47,6 +49,7 @@ public NPC getNPC() { public static class EntityCreeperNPC extends EntityCreeper implements NPCHolder { private boolean allowPowered; + private final CitizensNPC npc; public EntityCreeperNPC(World world) { @@ -65,6 +68,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.DEATH_SOUND_METADATA); 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 d1a89207c..7ff6f4dc5 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 @@ -8,11 +8,13 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityEnderDragon; import net.minecraft.server.v1_11_R1.NBTTagCompound; import net.minecraft.server.v1_11_R1.SoundEffect; @@ -54,6 +56,14 @@ public EntityEnderDragonNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.DEATH_SOUND_METADATA); 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 74e3182d4..378421862 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_11_R1.BlockPosition; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityEnderman; import net.minecraft.server.v1_11_R1.IBlockData; import net.minecraft.server.v1_11_R1.NBTTagCompound; @@ -63,6 +65,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.DEATH_SOUND_METADATA); 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 abf124fea..e9edfab91 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_11_R1.BlockPosition; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityEndermite; import net.minecraft.server.v1_11_R1.IBlockData; import net.minecraft.server.v1_11_R1.NBTTagCompound; @@ -63,6 +65,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.DEATH_SOUND_METADATA); diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/EntityHumanNPC.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/EntityHumanNPC.java index 832198a76..5324e8aa7 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/EntityHumanNPC.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/EntityHumanNPC.java @@ -106,11 +106,11 @@ public boolean a(EntityPlayer entityplayer) { } public float a(PathType pathtype) { - return this.bz.containsKey(pathtype) ? this.bz.get(pathtype).floatValue() : pathtype.a(); + return this.bz.containsKey(pathtype) ? this.bz.get(pathtype) : pathtype.a(); } public void a(PathType pathtype, float f) { - this.bz.put(pathtype, Float.valueOf(f)); + this.bz.put(pathtype, f); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/EvokerController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/EvokerController.java index 833e2bd92..f0de26ec4 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_11_R1.BlockPosition; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityEvoker; import net.minecraft.server.v1_11_R1.IBlockData; import net.minecraft.server.v1_11_R1.NBTTagCompound; @@ -49,6 +51,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.DEATH_SOUND_METADATA); 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 e6d8575e0..3c0fbc74d 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 @@ -8,11 +8,13 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityGhast; import net.minecraft.server.v1_11_R1.NBTTagCompound; import net.minecraft.server.v1_11_R1.SoundEffect; @@ -40,6 +42,14 @@ public EntityGhastNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.DEATH_SOUND_METADATA); 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 e65821ed5..795afe21c 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_11_R1.BlockPosition; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityGiantZombie; import net.minecraft.server.v1_11_R1.IBlockData; import net.minecraft.server.v1_11_R1.NBTTagCompound; @@ -49,6 +51,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.DEATH_SOUND_METADATA); 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 833a8031e..372e1a57d 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_11_R1.BlockPosition; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityGuardian; import net.minecraft.server.v1_11_R1.IBlockData; import net.minecraft.server.v1_11_R1.NBTTagCompound; @@ -49,6 +51,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.DEATH_SOUND_METADATA); 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 b8d4b4b76..7a2b51a12 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_11_R1.BlockPosition; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityGuardianElder; import net.minecraft.server.v1_11_R1.IBlockData; import net.minecraft.server.v1_11_R1.NBTTagCompound; @@ -49,6 +51,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.DEATH_SOUND_METADATA); 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 01711cc99..d198b8fa0 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 @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -17,6 +18,7 @@ import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_11_R1.BlockPosition; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityHorse; import net.minecraft.server.v1_11_R1.IBlockData; import net.minecraft.server.v1_11_R1.NBTTagCompound; @@ -72,6 +74,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.DEATH_SOUND_METADATA); 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 a7f43939e..9b9f9e609 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 @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -17,6 +18,7 @@ import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_11_R1.BlockPosition; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityHorseDonkey; import net.minecraft.server.v1_11_R1.IBlockData; import net.minecraft.server.v1_11_R1.NBTTagCompound; @@ -72,6 +74,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.DEATH_SOUND_METADATA); 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 a82711aa8..4a692029f 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 @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -17,6 +18,7 @@ import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_11_R1.BlockPosition; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityHorseMule; import net.minecraft.server.v1_11_R1.IBlockData; import net.minecraft.server.v1_11_R1.NBTTagCompound; @@ -72,6 +74,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.DEATH_SOUND_METADATA); 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 5a02297df..c04d4b901 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 @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -17,6 +18,7 @@ import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_11_R1.BlockPosition; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityHorseSkeleton; import net.minecraft.server.v1_11_R1.IBlockData; import net.minecraft.server.v1_11_R1.NBTTagCompound; @@ -73,6 +75,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.DEATH_SOUND_METADATA); 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 6715f2c32..7bd657bde 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 @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -17,6 +18,7 @@ import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_11_R1.BlockPosition; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityHorseZombie; import net.minecraft.server.v1_11_R1.IBlockData; import net.minecraft.server.v1_11_R1.NBTTagCompound; @@ -73,6 +75,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.DEATH_SOUND_METADATA); 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 2f46f84fd..a875c5546 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_11_R1.BlockPosition; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityIronGolem; import net.minecraft.server.v1_11_R1.IBlockData; import net.minecraft.server.v1_11_R1.NBTTagCompound; @@ -49,6 +51,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.DEATH_SOUND_METADATA); 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 8efad1cfe..2848f9561 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 @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -17,6 +18,7 @@ import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_11_R1.BlockPosition; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityLlama; import net.minecraft.server.v1_11_R1.IBlockData; import net.minecraft.server.v1_11_R1.NBTTagCompound; @@ -72,6 +74,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.DEATH_SOUND_METADATA); 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 03c268a12..8d645afc3 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_11_R1.util.PlayerControllerMove; @@ -15,6 +16,7 @@ import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_11_R1.BlockPosition; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityHuman; import net.minecraft.server.v1_11_R1.EntityMagmaCube; import net.minecraft.server.v1_11_R1.IBlockData; @@ -55,6 +57,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void A_() { super.A_(); 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 189f272f2..93d443bd7 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_11_R1.BlockPosition; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityHuman; import net.minecraft.server.v1_11_R1.EntityMushroomCow; import net.minecraft.server.v1_11_R1.EnumHand; @@ -63,6 +65,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean a(EntityHuman entityhuman, EnumHand enumhand) { if (npc == null || !npc.isProtected()) 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 8db7387d6..aa705e7fc 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_11_R1.BlockPosition; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityOcelot; import net.minecraft.server.v1_11_R1.IBlockData; import net.minecraft.server.v1_11_R1.NBTTagCompound; @@ -60,6 +62,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.DEATH_SOUND_METADATA); 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 f2bbd56f0..3fbdd902d 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_11_R1.BlockPosition; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityLightning; import net.minecraft.server.v1_11_R1.EntityPig; import net.minecraft.server.v1_11_R1.IBlockData; @@ -61,6 +63,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.DEATH_SOUND_METADATA); 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 740da0e2f..220cdde96 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_11_R1.BlockPosition; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityPigZombie; import net.minecraft.server.v1_11_R1.IBlockData; import net.minecraft.server.v1_11_R1.NBTTagCompound; @@ -50,6 +52,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.DEATH_SOUND_METADATA); 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 a5bfa5f05..d1c2834b5 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 @@ -8,11 +8,13 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityPolarBear; import net.minecraft.server.v1_11_R1.NBTTagCompound; import net.minecraft.server.v1_11_R1.SoundEffect; @@ -51,6 +53,14 @@ public void a(boolean flag) { } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.DEATH_SOUND_METADATA); 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 88a4c37ab..4bfdc7923 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_11_R1.BlockPosition; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityLiving; import net.minecraft.server.v1_11_R1.EntityRabbit; import net.minecraft.server.v1_11_R1.IBlockData; @@ -61,6 +63,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.DEATH_SOUND_METADATA); 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 b4082c3e6..0fa765e20 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_11_R1.BlockPosition; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntitySheep; import net.minecraft.server.v1_11_R1.IBlockData; import net.minecraft.server.v1_11_R1.NBTTagCompound; @@ -60,6 +62,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.DEATH_SOUND_METADATA); 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 e2984277b..5b3d0a14f 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 @@ -9,12 +9,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_11_R1.BlockPosition; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityAIBodyControl; import net.minecraft.server.v1_11_R1.EntityShulker; import net.minecraft.server.v1_11_R1.IBlockData; @@ -51,6 +53,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void A_() { if (npc != null) { 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 8f4852a95..df456787f 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_11_R1.BlockPosition; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntitySilverfish; import net.minecraft.server.v1_11_R1.IBlockData; import net.minecraft.server.v1_11_R1.NBTTagCompound; @@ -49,6 +51,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.DEATH_SOUND_METADATA); 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 a64767a99..bdf464b89 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_11_R1.BlockPosition; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntitySkeleton; import net.minecraft.server.v1_11_R1.IBlockData; import net.minecraft.server.v1_11_R1.NBTTagCompound; @@ -49,6 +51,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.DEATH_SOUND_METADATA); 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 cfd76ef66..bafa4c3bf 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_11_R1.BlockPosition; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntitySkeletonStray; import net.minecraft.server.v1_11_R1.IBlockData; import net.minecraft.server.v1_11_R1.NBTTagCompound; @@ -49,6 +51,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.DEATH_SOUND_METADATA); 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 4e9d09e77..7ee8df998 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_11_R1.BlockPosition; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntitySkeletonWither; import net.minecraft.server.v1_11_R1.IBlockData; import net.minecraft.server.v1_11_R1.NBTTagCompound; @@ -49,6 +51,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.DEATH_SOUND_METADATA); 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 70ca71092..7de8af01e 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_11_R1.util.PlayerControllerMove; @@ -15,6 +16,7 @@ import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_11_R1.BlockPosition; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityHuman; import net.minecraft.server.v1_11_R1.EntitySlime; import net.minecraft.server.v1_11_R1.IBlockData; @@ -55,6 +57,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void A_() { super.A_(); 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 c78dc3d9a..93adc30cf 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_11_R1.BlockPosition; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntitySnowman; import net.minecraft.server.v1_11_R1.IBlockData; import net.minecraft.server.v1_11_R1.NBTTagCompound; @@ -49,6 +51,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.DEATH_SOUND_METADATA); 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 e3b1b3689..0695a4840 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_11_R1.BlockPosition; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntitySpider; import net.minecraft.server.v1_11_R1.IBlockData; import net.minecraft.server.v1_11_R1.NBTTagCompound; @@ -49,6 +51,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.DEATH_SOUND_METADATA); 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 513b927c9..cc931bec2 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_11_R1.BlockPosition; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntitySquid; import net.minecraft.server.v1_11_R1.IBlockData; import net.minecraft.server.v1_11_R1.NBTTagCompound; @@ -49,6 +51,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.DEATH_SOUND_METADATA); 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 f1e906f56..d5c9a33fd 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 @@ -8,11 +8,13 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityVex; import net.minecraft.server.v1_11_R1.NBTTagCompound; import net.minecraft.server.v1_11_R1.SoundEffect; @@ -43,6 +45,14 @@ public EntityVexNPC(World world, NPC npc) { } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.DEATH_SOUND_METADATA); 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 ee0f1b306..5bce47961 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 @@ -10,12 +10,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_11_R1.BlockPosition; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityHuman; import net.minecraft.server.v1_11_R1.EntityLightning; import net.minecraft.server.v1_11_R1.EntityVillager; @@ -38,6 +40,7 @@ public Villager getBukkitEntity() { public static class EntityVillagerNPC extends EntityVillager implements NPCHolder { private boolean blockingATrade; + private final CitizensNPC npc; public EntityVillagerNPC(World world) { @@ -67,6 +70,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean a(EntityHuman entityhuman, EnumHand enumhand) { if (npc != null && npc.data().get(NPC.VILLAGER_BLOCK_TRADES, true)) { 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 b86a62c6b..9d89830e9 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_11_R1.BlockPosition; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityVindicator; import net.minecraft.server.v1_11_R1.IBlockData; import net.minecraft.server.v1_11_R1.NBTTagCompound; @@ -60,6 +62,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.DEATH_SOUND_METADATA); 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 343077052..c08f19d94 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_11_R1.BlockPosition; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityWitch; import net.minecraft.server.v1_11_R1.IBlockData; import net.minecraft.server.v1_11_R1.NBTTagCompound; @@ -49,6 +51,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.DEATH_SOUND_METADATA); 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 4dfdcf180..a09264174 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 @@ -8,11 +8,13 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityWither; import net.minecraft.server.v1_11_R1.NBTTagCompound; import net.minecraft.server.v1_11_R1.SoundEffect; @@ -40,6 +42,14 @@ public EntityWitherNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.DEATH_SOUND_METADATA); 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 6206575a8..6ef778377 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 @@ -9,12 +9,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_11_R1.BlockPosition; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityLiving; import net.minecraft.server.v1_11_R1.EntityWolf; import net.minecraft.server.v1_11_R1.IBlockData; @@ -62,6 +64,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.DEATH_SOUND_METADATA); 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 6e578c824..7201e68b9 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_11_R1.BlockPosition; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityZombie; import net.minecraft.server.v1_11_R1.IBlockData; import net.minecraft.server.v1_11_R1.NBTTagCompound; @@ -49,6 +51,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.DEATH_SOUND_METADATA); 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 910537b4d..3f367b335 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_11_R1.BlockPosition; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityZombieHusk; import net.minecraft.server.v1_11_R1.IBlockData; import net.minecraft.server.v1_11_R1.NBTTagCompound; @@ -49,6 +51,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.DEATH_SOUND_METADATA); 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 e703b02fc..343c00150 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_11_R1.BlockPosition; +import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityZombieVillager; import net.minecraft.server.v1_11_R1.IBlockData; import net.minecraft.server.v1_11_R1.NBTTagCompound; @@ -49,6 +51,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.DEATH_SOUND_METADATA); diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/DragonFireballController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/DragonFireballController.java index a43afb44d..5e03b7970 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/DragonFireballController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/DragonFireballController.java @@ -53,6 +53,18 @@ public EntityDragonFireballNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public void A_() { + if (npc != null) { + npc.update(); + if (!npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true)) { + super.A_(); + } + } else { + super.A_(); + } + } + @Override public void collide(net.minecraft.server.v1_11_R1.Entity entity) { // this method is called by both the entities involved - cancelling @@ -89,18 +101,6 @@ public NPC getNPC() { return npc; } - @Override - public void A_() { - if (npc != null) { - npc.update(); - if (!npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true)) { - super.A_(); - } - } else { - super.A_(); - } - } - @Override public void setSize(float f, float f1) { if (npc == null) { diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/EggController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/EggController.java index 91e3b5f10..a4483f3d2 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/EggController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/EggController.java @@ -63,16 +63,23 @@ public EntityEggNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } - @Override - public boolean d(NBTTagCompound save) { - return npc == null ? super.d(save) : false; - } - public EntityEggNPC(World world, NPC npc, double d0, double d1, double d2) { super(world, d0, d1, d2); this.npc = (CitizensNPC) npc; } + @Override + public void A_() { + if (npc != null) { + npc.update(); + if (!npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true)) { + super.A_(); + } + } else { + super.A_(); + } + } + @Override public void collide(net.minecraft.server.v1_11_R1.Entity entity) { // this method is called by both the entities involved - cancelling @@ -83,6 +90,11 @@ public void collide(net.minecraft.server.v1_11_R1.Entity entity) { } } + @Override + public boolean d(NBTTagCompound save) { + return npc == null ? super.d(save) : false; + } + @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); @@ -103,17 +115,5 @@ public CraftEntity getBukkitEntity() { public NPC getNPC() { return npc; } - - @Override - public void A_() { - if (npc != null) { - npc.update(); - if (!npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true)) { - super.A_(); - } - } else { - super.A_(); - } - } } } \ No newline at end of file diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/EnderCrystalController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/EnderCrystalController.java index 54d3bbd4b..aeb7101e0 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/EnderCrystalController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/EnderCrystalController.java @@ -47,16 +47,20 @@ public EntityEnderCrystalNPC(World world) { this(world, null); } - @Override - public boolean d(NBTTagCompound save) { - return npc == null ? super.d(save) : false; - } - public EntityEnderCrystalNPC(World world, NPC npc) { super(world); this.npc = (CitizensNPC) npc; } + @Override + public void A_() { + if (npc != null) { + npc.update(); + } else { + super.A_(); + } + } + @Override public void collide(net.minecraft.server.v1_11_R1.Entity entity) { // this method is called by both the entities involved - cancelling @@ -67,6 +71,11 @@ public void collide(net.minecraft.server.v1_11_R1.Entity entity) { } } + @Override + public boolean d(NBTTagCompound save) { + return npc == null ? super.d(save) : false; + } + @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); @@ -87,14 +96,5 @@ public CraftEntity getBukkitEntity() { public NPC getNPC() { return npc; } - - @Override - public void A_() { - if (npc != null) { - npc.update(); - } else { - super.A_(); - } - } } } \ No newline at end of file diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/EnderPearlController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/EnderPearlController.java index b40c5e72b..c4fd2ba38 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/EnderPearlController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/EnderPearlController.java @@ -52,6 +52,18 @@ public EntityEnderPearlNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public void A_() { + if (npc != null) { + npc.update(); + if (!npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true)) { + super.A_(); + } + } else { + super.A_(); + } + } + @Override public void collide(net.minecraft.server.v1_11_R1.Entity entity) { // this method is called by both the entities involved - cancelling @@ -87,17 +99,5 @@ public CraftEntity getBukkitEntity() { public NPC getNPC() { return npc; } - - @Override - public void A_() { - if (npc != null) { - npc.update(); - if (!npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true)) { - super.A_(); - } - } else { - super.A_(); - } - } } } \ No newline at end of file diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/EnderSignalController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/EnderSignalController.java index ce4d343e8..5c39377fc 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/EnderSignalController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/EnderSignalController.java @@ -47,16 +47,20 @@ public EntityEnderSignalNPC(World world) { this(world, null); } - @Override - public boolean d(NBTTagCompound save) { - return npc == null ? super.d(save) : false; - } - public EntityEnderSignalNPC(World world, NPC npc) { super(world); this.npc = (CitizensNPC) npc; } + @Override + public void A_() { + if (npc != null) { + npc.update(); + } else { + super.A_(); + } + } + @Override public void collide(net.minecraft.server.v1_11_R1.Entity entity) { // this method is called by both the entities involved - cancelling @@ -67,6 +71,11 @@ public void collide(net.minecraft.server.v1_11_R1.Entity entity) { } } + @Override + public boolean d(NBTTagCompound save) { + return npc == null ? super.d(save) : false; + } + @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); @@ -87,14 +96,5 @@ public CraftEntity getBukkitEntity() { public NPC getNPC() { return npc; } - - @Override - public void A_() { - if (npc != null) { - npc.update(); - } else { - super.A_(); - } - } } } \ No newline at end of file diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ExperienceOrbController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ExperienceOrbController.java index 04821f5db..6e641cca8 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ExperienceOrbController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ExperienceOrbController.java @@ -38,6 +38,15 @@ public EntityExperienceOrbNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public void A_() { + if (npc != null) { + npc.update(); + } else { + super.A_(); + } + } + @Override public void collide(net.minecraft.server.v1_11_R1.Entity entity) { // this method is called by both the entities involved - cancelling @@ -73,15 +82,6 @@ public CraftEntity getBukkitEntity() { public NPC getNPC() { return npc; } - - @Override - public void A_() { - if (npc != null) { - npc.update(); - } else { - super.A_(); - } - } } public static class ExperienceOrbNPC extends CraftExperienceOrb implements NPCHolder { diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/FireworkController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/FireworkController.java index c1da454d9..8bb92ad49 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/FireworkController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/FireworkController.java @@ -39,8 +39,12 @@ public EntityFireworkNPC(World world, NPC npc) { } @Override - public boolean d(NBTTagCompound save) { - return npc == null ? super.d(save) : false; + public void A_() { + if (npc != null) { + npc.update(); + } else { + super.A_(); + } } @Override @@ -53,6 +57,11 @@ public void collide(net.minecraft.server.v1_11_R1.Entity entity) { } } + @Override + public boolean d(NBTTagCompound save) { + return npc == null ? super.d(save) : false; + } + @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); @@ -73,15 +82,6 @@ public CraftEntity getBukkitEntity() { public NPC getNPC() { return npc; } - - @Override - public void A_() { - if (npc != null) { - npc.update(); - } else { - super.A_(); - } - } } public static class FireworkNPC extends CraftFirework implements NPCHolder { diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/LargeFireballController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/LargeFireballController.java index d9033cb24..47fd1dc01 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/LargeFireballController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/LargeFireballController.java @@ -39,6 +39,18 @@ public EntityLargeFireballNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public void A_() { + if (npc != null) { + npc.update(); + if (!npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true)) { + super.A_(); + } + } else { + super.A_(); + } + } + @Override public void collide(net.minecraft.server.v1_11_R1.Entity entity) { // this method is called by both the entities involved - cancelling @@ -83,18 +95,6 @@ public void setSize(float f, float f1) { NMSImpl.setSize(this, f, f1, justCreated); } } - - @Override - public void A_() { - if (npc != null) { - npc.update(); - if (!npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true)) { - super.A_(); - } - } else { - super.A_(); - } - } } public static class LargeFireballNPC extends CraftLargeFireball implements NPCHolder { diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/LeashController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/LeashController.java index f591aa021..092f58ae6 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/LeashController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/LeashController.java @@ -38,6 +38,15 @@ public EntityLeashNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public void A_() { + if (npc != null) { + npc.update(); + } else { + super.A_(); + } + } + @Override public void collide(net.minecraft.server.v1_11_R1.Entity entity) { // this method is called by both the entities involved - cancelling @@ -74,15 +83,6 @@ public NPC getNPC() { return npc; } - @Override - public void A_() { - if (npc != null) { - npc.update(); - } else { - super.A_(); - } - } - @Override public boolean survives() { return npc == null || !npc.isProtected() ? super.survives() : true; diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/PaintingController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/PaintingController.java index d9e276ace..880dd90eb 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/PaintingController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/PaintingController.java @@ -39,8 +39,12 @@ public EntityPaintingNPC(World world, NPC npc) { } @Override - public boolean d(NBTTagCompound save) { - return npc == null ? super.d(save) : false; + public void A_() { + if (npc != null) { + npc.update(); + } else { + super.A_(); + } } @Override @@ -53,6 +57,11 @@ public void collide(net.minecraft.server.v1_11_R1.Entity entity) { } } + @Override + public boolean d(NBTTagCompound save) { + return npc == null ? super.d(save) : false; + } + @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); @@ -74,15 +83,6 @@ public NPC getNPC() { return npc; } - @Override - public void A_() { - if (npc != null) { - npc.update(); - } else { - super.A_(); - } - } - @Override public boolean survives() { return npc == null || !npc.isProtected() ? super.survives() : true; diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ShulkerBulletController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ShulkerBulletController.java index efbc31c95..238c7da17 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ShulkerBulletController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ShulkerBulletController.java @@ -38,6 +38,15 @@ public EntityShulkerBulletNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public void A_() { + if (npc != null) { + npc.update(); + } else { + super.A_(); + } + } + @Override public void collide(net.minecraft.server.v1_11_R1.Entity entity) { // this method is called by both the entities involved - cancelling @@ -73,15 +82,6 @@ public CraftEntity getBukkitEntity() { public NPC getNPC() { return npc; } - - @Override - public void A_() { - if (npc != null) { - npc.update(); - } else { - super.A_(); - } - } } public static class ShulkerBulletNPC extends CraftShulkerBullet implements NPCHolder { diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/SmallFireballController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/SmallFireballController.java index 6ae7c4f31..0c6597dc2 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/SmallFireballController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/SmallFireballController.java @@ -38,6 +38,18 @@ public EntitySmallFireballNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public void A_() { + if (npc != null) { + npc.update(); + if (!npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true)) { + super.A_(); + } + } else { + super.A_(); + } + } + @Override public void collide(net.minecraft.server.v1_11_R1.Entity entity) { // this method is called by both the entities involved - cancelling @@ -73,18 +85,6 @@ public CraftEntity getBukkitEntity() { public NPC getNPC() { return npc; } - - @Override - public void A_() { - if (npc != null) { - npc.update(); - if (!npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true)) { - super.A_(); - } - } else { - super.A_(); - } - } } public static class SmallFireballNPC extends CraftSmallFireball implements NPCHolder { diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/SnowballController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/SnowballController.java index 099d978d6..0275da7b3 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/SnowballController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/SnowballController.java @@ -26,20 +26,6 @@ public Snowball getBukkitEntity() { return (Snowball) super.getBukkitEntity(); } - public static class SnowballNPC extends CraftSnowball implements NPCHolder { - private final CitizensNPC npc; - - public SnowballNPC(EntitySnowballNPC entity) { - super((CraftServer) Bukkit.getServer(), entity); - this.npc = entity.npc; - } - - @Override - public NPC getNPC() { - return npc; - } - } - public static class EntitySnowballNPC extends EntitySnowball implements NPCHolder { private final CitizensNPC npc; @@ -47,16 +33,20 @@ public EntitySnowballNPC(World world) { this(world, null); } - @Override - public boolean d(NBTTagCompound save) { - return npc == null ? super.d(save) : false; - } - public EntitySnowballNPC(World world, NPC npc) { super(world); this.npc = (CitizensNPC) npc; } + @Override + public void A_() { + if (npc != null) { + npc.update(); + } else { + super.A_(); + } + } + @Override public void collide(net.minecraft.server.v1_11_R1.Entity entity) { // this method is called by both the entities involved - cancelling @@ -67,6 +57,11 @@ public void collide(net.minecraft.server.v1_11_R1.Entity entity) { } } + @Override + public boolean d(NBTTagCompound save) { + return npc == null ? super.d(save) : false; + } + @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); @@ -87,14 +82,19 @@ public CraftEntity getBukkitEntity() { public NPC getNPC() { return npc; } + } + + public static class SnowballNPC extends CraftSnowball implements NPCHolder { + private final CitizensNPC npc; + + public SnowballNPC(EntitySnowballNPC entity) { + super((CraftServer) Bukkit.getServer(), entity); + this.npc = entity.npc; + } @Override - public void A_() { - if (npc != null) { - npc.update(); - } else { - super.A_(); - } + public NPC getNPC() { + return npc; } } } \ No newline at end of file diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/SpectralArrowController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/SpectralArrowController.java index 7fe09c61e..7729ad9e2 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/SpectralArrowController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/SpectralArrowController.java @@ -38,6 +38,15 @@ public EntitySpectralArrowNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public void A_() { + if (npc != null) { + npc.update(); + } else { + super.A_(); + } + } + @Override public void collide(net.minecraft.server.v1_11_R1.Entity entity) { // this method is called by both the entities involved - cancelling @@ -73,15 +82,6 @@ public CraftEntity getBukkitEntity() { public NPC getNPC() { return npc; } - - @Override - public void A_() { - if (npc != null) { - npc.update(); - } else { - super.A_(); - } - } } public static class SpectralArrowNPC extends CraftArrow implements NPCHolder { diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/TNTPrimedController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/TNTPrimedController.java index 19d09cc16..0e5efc4e7 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/TNTPrimedController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/TNTPrimedController.java @@ -33,16 +33,20 @@ public EntityTNTPrimedNPC(World world) { this(world, null); } - @Override - public boolean d(NBTTagCompound save) { - return npc == null ? super.d(save) : false; - } - public EntityTNTPrimedNPC(World world, NPC npc) { super(world); this.npc = (CitizensNPC) npc; } + @Override + public void A_() { + if (npc != null) { + npc.update(); + } else { + super.A_(); + } + } + @Override public void collide(net.minecraft.server.v1_11_R1.Entity entity) { // this method is called by both the entities involved - cancelling @@ -53,6 +57,11 @@ public void collide(net.minecraft.server.v1_11_R1.Entity entity) { } } + @Override + public boolean d(NBTTagCompound save) { + return npc == null ? super.d(save) : false; + } + @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); @@ -73,15 +82,6 @@ public CraftEntity getBukkitEntity() { public NPC getNPC() { return npc; } - - @Override - public void A_() { - if (npc != null) { - npc.update(); - } else { - super.A_(); - } - } } public static class TNTPrimedNPC extends CraftTNTPrimed implements NPCHolder { diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ThrownExpBottleController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ThrownExpBottleController.java index 78fa1494a..ee6faa50c 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ThrownExpBottleController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ThrownExpBottleController.java @@ -38,6 +38,18 @@ public EntityThrownExpBottleNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public void A_() { + if (npc != null) { + npc.update(); + if (!npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true)) { + super.A_(); + } + } else { + super.A_(); + } + } + @Override public void collide(net.minecraft.server.v1_11_R1.Entity entity) { // this method is called by both the entities involved - cancelling @@ -73,18 +85,6 @@ public CraftEntity getBukkitEntity() { public NPC getNPC() { return npc; } - - @Override - public void A_() { - if (npc != null) { - npc.update(); - if (!npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true)) { - super.A_(); - } - } else { - super.A_(); - } - } } public static class ThrownExpBottleNPC extends CraftThrownExpBottle implements NPCHolder { diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ThrownPotionController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ThrownPotionController.java index 7c4af86d3..7bb12f1db 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ThrownPotionController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ThrownPotionController.java @@ -39,6 +39,15 @@ public EntityThrownPotionNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public void A_() { + if (npc != null) { + npc.update(); + } else { + super.A_(); + } + } + @Override public void collide(net.minecraft.server.v1_11_R1.Entity entity) { // this method is called by both the entities involved - cancelling @@ -78,15 +87,6 @@ public CraftEntity getBukkitEntity() { public NPC getNPC() { return npc; } - - @Override - public void A_() { - if (npc != null) { - npc.update(); - } else { - super.A_(); - } - } } public static class LingeringThrownPotionNPC extends CraftLingeringPotion implements NPCHolder { diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/WitherSkullController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/WitherSkullController.java index b501ecca8..42efd33a0 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/WitherSkullController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/WitherSkullController.java @@ -33,16 +33,20 @@ public EntityWitherSkullNPC(World world) { this(world, null); } - @Override - public boolean d(NBTTagCompound save) { - return npc == null ? super.d(save) : false; - } - public EntityWitherSkullNPC(World world, NPC npc) { super(world); this.npc = (CitizensNPC) npc; } + @Override + public void A_() { + if (npc != null) { + npc.update(); + } else { + super.A_(); + } + } + @Override public void collide(net.minecraft.server.v1_11_R1.Entity entity) { // this method is called by both the entities involved - cancelling @@ -53,6 +57,11 @@ public void collide(net.minecraft.server.v1_11_R1.Entity entity) { } } + @Override + public boolean d(NBTTagCompound save) { + return npc == null ? super.d(save) : false; + } + @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); @@ -73,15 +82,6 @@ public CraftEntity getBukkitEntity() { public NPC getNPC() { return npc; } - - @Override - public void A_() { - if (npc != null) { - npc.update(); - } else { - super.A_(); - } - } } public static class WitherSkullNPC extends CraftWitherSkull implements NPCHolder { 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 c095d550b..6bf91e984 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 @@ -1417,7 +1417,7 @@ public void stop() { @Override public void update() { updateNavigation(navigation); - }; + } } private static class NavigationIterable implements Iterable { diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/PlayerNavigation.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/PlayerNavigation.java index 690308310..3e86bbf8e 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/PlayerNavigation.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/PlayerNavigation.java @@ -128,13 +128,7 @@ private boolean a(int paramInt1, int paramInt2, int paramInt3, int paramInt4, in if (d1 * paramDouble1 + d2 * paramDouble2 >= 0.0D) { PathType localPathType = this.e.a(this.b, k, paramInt2 - 1, m, this.a, paramInt4, paramInt5, paramInt6, true, true); - if (localPathType == PathType.WATER) { - return false; - } - if (localPathType == PathType.LAVA) { - return false; - } - if (localPathType == PathType.OPEN) { + if ((localPathType == PathType.WATER) || (localPathType == PathType.LAVA) || (localPathType == PathType.OPEN)) { return false; } localPathType = this.e.a(this.b, k, paramInt2, m, this.a, paramInt4, paramInt5, paramInt6, true, 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 7129f91e5..fc941f44d 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityBat; import net.minecraft.server.v1_12_R1.NBTTagCompound; import net.minecraft.server.v1_12_R1.SoundEffect; @@ -58,6 +60,14 @@ public EntityBatNPC(World world, NPC npc) { } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.DEATH_SOUND_METADATA); 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 5ba4a94f2..ef03b2e2c 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityBlaze; import net.minecraft.server.v1_12_R1.NBTTagCompound; import net.minecraft.server.v1_12_R1.SoundEffect; @@ -55,6 +57,14 @@ public EntityBlazeNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.DEATH_SOUND_METADATA); 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 a0dab596c..758799912 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityCaveSpider; import net.minecraft.server.v1_12_R1.IBlockData; import net.minecraft.server.v1_12_R1.NBTTagCompound; @@ -64,6 +66,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { 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 a91226b23..f3fb7cb3a 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityChicken; import net.minecraft.server.v1_12_R1.IBlockData; import net.minecraft.server.v1_12_R1.NBTTagCompound; @@ -75,6 +77,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { 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 7c23ec3c2..4876378ef 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityCow; import net.minecraft.server.v1_12_R1.EntityHuman; import net.minecraft.server.v1_12_R1.EnumHand; @@ -79,6 +81,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean a(EntityHuman entityhuman, EnumHand enumhand) { if (npc == null || !npc.isProtected()) 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 3fca67621..ecab5fee2 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityCreeper; import net.minecraft.server.v1_12_R1.EntityLightning; import net.minecraft.server.v1_12_R1.IBlockData; @@ -48,6 +50,7 @@ public NPC getNPC() { public static class EntityCreeperNPC extends EntityCreeper implements NPCHolder { private boolean allowPowered; + private final CitizensNPC npc; public EntityCreeperNPC(World world) { @@ -66,6 +69,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { 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 a8926c9ee..e90b11bde 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityEnderDragon; import net.minecraft.server.v1_12_R1.NBTTagCompound; import net.minecraft.server.v1_12_R1.SoundEffect; @@ -55,6 +57,14 @@ public EntityEnderDragonNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.DEATH_SOUND_METADATA); 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 a60580bcb..1561e8926 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityEnderman; import net.minecraft.server.v1_12_R1.IBlockData; import net.minecraft.server.v1_12_R1.NBTTagCompound; @@ -64,6 +66,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { 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 1b288065a..2cae721de 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityEndermite; import net.minecraft.server.v1_12_R1.IBlockData; import net.minecraft.server.v1_12_R1.NBTTagCompound; @@ -64,6 +66,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/EntityHumanNPC.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/EntityHumanNPC.java index 011c50afa..fc744666a 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/EntityHumanNPC.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/EntityHumanNPC.java @@ -119,11 +119,11 @@ public void a(float f, float f1, float f2) { } public float a(PathType pathtype) { - return this.bz.containsKey(pathtype) ? this.bz.get(pathtype).floatValue() : pathtype.a(); + return this.bz.containsKey(pathtype) ? this.bz.get(pathtype) : pathtype.a(); } public void a(PathType pathtype, float f) { - this.bz.put(pathtype, Float.valueOf(f)); + this.bz.put(pathtype, f); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/EvokerController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/EvokerController.java index 3d49d4356..112076a7a 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityEvoker; import net.minecraft.server.v1_12_R1.IBlockData; import net.minecraft.server.v1_12_R1.NBTTagCompound; @@ -50,6 +52,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { 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 13a4c7c48..7aa281670 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityGhast; import net.minecraft.server.v1_12_R1.NBTTagCompound; import net.minecraft.server.v1_12_R1.SoundEffect; @@ -41,6 +43,14 @@ public EntityGhastNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @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 aa41c5182..4d3ed4b02 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityGiantZombie; import net.minecraft.server.v1_12_R1.IBlockData; import net.minecraft.server.v1_12_R1.NBTTagCompound; @@ -50,6 +52,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { 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 40c92417d..205ebc647 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityGuardian; import net.minecraft.server.v1_12_R1.IBlockData; import net.minecraft.server.v1_12_R1.NBTTagCompound; @@ -50,6 +52,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { 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 96c613ade..43ee84cfa 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityGuardianElder; import net.minecraft.server.v1_12_R1.IBlockData; import net.minecraft.server.v1_12_R1.NBTTagCompound; @@ -50,6 +52,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { 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 15c6f6080..35d8404a9 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 @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -19,6 +20,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityHorse; import net.minecraft.server.v1_12_R1.GenericAttributes; import net.minecraft.server.v1_12_R1.IBlockData; @@ -44,6 +46,7 @@ public void spawn(Location at, NPC npc) { public static class EntityHorseNPC extends EntityHorse implements NPCHolder { private double baseMovementSpeed; + private final CitizensNPC npc; private boolean riding; @@ -78,6 +81,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { 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 12f2ca080..dc6d96894 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 @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -19,6 +20,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityHorseDonkey; import net.minecraft.server.v1_12_R1.GenericAttributes; import net.minecraft.server.v1_12_R1.IBlockData; @@ -44,6 +46,7 @@ public void spawn(Location at, NPC npc) { public static class EntityHorseDonkeyNPC extends EntityHorseDonkey implements NPCHolder { private double baseMovementSpeed; + private final CitizensNPC npc; private boolean riding; @@ -78,6 +81,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { 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 ca8b03f33..9f7f20108 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 @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -19,6 +20,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityHorseMule; import net.minecraft.server.v1_12_R1.GenericAttributes; import net.minecraft.server.v1_12_R1.IBlockData; @@ -44,6 +46,7 @@ public void spawn(Location at, NPC npc) { public static class EntityHorseMuleNPC extends EntityHorseMule implements NPCHolder { private double baseMovementSpeed; + private final CitizensNPC npc; private boolean riding; @@ -78,6 +81,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { 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 489ea0b7c..2ecedf1f8 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 @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -19,6 +20,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityHorseSkeleton; import net.minecraft.server.v1_12_R1.GenericAttributes; import net.minecraft.server.v1_12_R1.IBlockData; @@ -81,6 +83,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { 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 3d7495012..8a53cd56e 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 @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -19,6 +20,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityHorseZombie; import net.minecraft.server.v1_12_R1.GenericAttributes; import net.minecraft.server.v1_12_R1.IBlockData; @@ -81,6 +83,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { 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 7833d5c2a..36003ed7f 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityIllagerIllusioner; import net.minecraft.server.v1_12_R1.IBlockData; import net.minecraft.server.v1_12_R1.NBTTagCompound; @@ -50,6 +52,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { 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 971aba40d..110b34d10 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityIronGolem; import net.minecraft.server.v1_12_R1.IBlockData; import net.minecraft.server.v1_12_R1.NBTTagCompound; @@ -50,6 +52,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { 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 812adcc2a..5bb3e8dfc 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 @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -18,6 +19,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityLlama; import net.minecraft.server.v1_12_R1.IBlockData; import net.minecraft.server.v1_12_R1.NBTTagCompound; @@ -73,6 +75,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { 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 9528ab645..202cbf163 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_12_R1.util.PlayerControllerMove; @@ -16,6 +17,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityHuman; import net.minecraft.server.v1_12_R1.EntityMagmaCube; import net.minecraft.server.v1_12_R1.IBlockData; @@ -56,6 +58,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { 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 c0f9bf75d..615642b48 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityHuman; import net.minecraft.server.v1_12_R1.EntityMushroomCow; import net.minecraft.server.v1_12_R1.EnumHand; @@ -64,6 +66,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean a(EntityHuman entityhuman, EnumHand enumhand) { if (npc == null || !npc.isProtected()) 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 8102a4a7c..6249ca6cb 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityOcelot; import net.minecraft.server.v1_12_R1.IBlockData; import net.minecraft.server.v1_12_R1.NBTTagCompound; @@ -61,6 +63,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { 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 2409cc117..898465f8e 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityHuman; import net.minecraft.server.v1_12_R1.EntityParrot; import net.minecraft.server.v1_12_R1.EnumHand; @@ -43,6 +45,14 @@ public EntityParrotNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean a(EntityHuman paramEntityHuman, EnumHand paramEnumHand) { // block feeding 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 129b1262b..60a71c532 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityLightning; import net.minecraft.server.v1_12_R1.EntityPig; import net.minecraft.server.v1_12_R1.IBlockData; @@ -62,6 +64,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { 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 68e70a13f..55447eeef 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityPigZombie; import net.minecraft.server.v1_12_R1.IBlockData; import net.minecraft.server.v1_12_R1.NBTTagCompound; @@ -51,6 +53,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { 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 d362eb5d4..cdef616fb 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityPolarBear; import net.minecraft.server.v1_12_R1.NBTTagCompound; import net.minecraft.server.v1_12_R1.SoundEffect; @@ -52,6 +54,14 @@ public void a(boolean flag) { } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.DEATH_SOUND_METADATA); 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 55877882d..ab85d7629 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityLiving; import net.minecraft.server.v1_12_R1.EntityRabbit; import net.minecraft.server.v1_12_R1.IBlockData; @@ -62,6 +64,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { 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 34408fe76..4a289be42 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntitySheep; import net.minecraft.server.v1_12_R1.IBlockData; import net.minecraft.server.v1_12_R1.NBTTagCompound; @@ -61,6 +63,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { 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 f4c0e07e1..1901887d6 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityAIBodyControl; import net.minecraft.server.v1_12_R1.EntityShulker; import net.minecraft.server.v1_12_R1.IBlockData; @@ -51,6 +53,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { 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 405f0deb8..cd1703436 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntitySilverfish; import net.minecraft.server.v1_12_R1.IBlockData; import net.minecraft.server.v1_12_R1.NBTTagCompound; @@ -50,6 +52,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { 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 4179e1589..e08713682 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntitySkeleton; import net.minecraft.server.v1_12_R1.IBlockData; import net.minecraft.server.v1_12_R1.NBTTagCompound; @@ -50,6 +52,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { 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 b24d0cd17..6cc752366 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntitySkeletonStray; import net.minecraft.server.v1_12_R1.IBlockData; import net.minecraft.server.v1_12_R1.NBTTagCompound; @@ -50,6 +52,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { 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 d88f087a2..fa1b2cb3d 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntitySkeletonWither; import net.minecraft.server.v1_12_R1.IBlockData; import net.minecraft.server.v1_12_R1.NBTTagCompound; @@ -50,6 +52,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { 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 6dc7b343d..0702eef29 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_12_R1.util.PlayerControllerMove; @@ -16,6 +17,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityHuman; import net.minecraft.server.v1_12_R1.EntitySlime; import net.minecraft.server.v1_12_R1.IBlockData; @@ -56,6 +58,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { 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 ed686b885..99e1a237a 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntitySnowman; import net.minecraft.server.v1_12_R1.IBlockData; import net.minecraft.server.v1_12_R1.NBTTagCompound; @@ -50,6 +52,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { 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 484ec933c..df9c3692d 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntitySpider; import net.minecraft.server.v1_12_R1.IBlockData; import net.minecraft.server.v1_12_R1.NBTTagCompound; @@ -50,6 +52,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { 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 98f69a0c4..9cadab5f8 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntitySquid; import net.minecraft.server.v1_12_R1.IBlockData; import net.minecraft.server.v1_12_R1.NBTTagCompound; @@ -50,6 +52,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { 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 12f61b590..a2884b021 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityVex; import net.minecraft.server.v1_12_R1.NBTTagCompound; import net.minecraft.server.v1_12_R1.SoundEffect; @@ -44,6 +46,14 @@ public EntityVexNPC(World world, NPC npc) { } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.DEATH_SOUND_METADATA); 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 1d870ae58..885dd7e0e 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 @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -17,6 +18,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityHuman; import net.minecraft.server.v1_12_R1.EntityLightning; import net.minecraft.server.v1_12_R1.EntityVillager; @@ -39,6 +41,7 @@ public Villager getBukkitEntity() { public static class EntityVillagerNPC extends EntityVillager implements NPCHolder { private boolean blockingATrade; + private final CitizensNPC npc; public EntityVillagerNPC(World world) { @@ -68,6 +71,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean a(EntityHuman entityhuman, EnumHand enumhand) { if (npc != null && npc.data().get(NPC.VILLAGER_BLOCK_TRADES, true)) { 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 489341862..49c247b6a 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityVindicator; import net.minecraft.server.v1_12_R1.IBlockData; import net.minecraft.server.v1_12_R1.NBTTagCompound; @@ -61,6 +63,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { 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 d85e628cf..6b1aab3e5 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityWitch; import net.minecraft.server.v1_12_R1.IBlockData; import net.minecraft.server.v1_12_R1.NBTTagCompound; @@ -50,6 +52,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { 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 5ba198354..25ebdbd1d 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 @@ -8,12 +8,14 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityWither; import net.minecraft.server.v1_12_R1.NBTTagCompound; import net.minecraft.server.v1_12_R1.SoundEffect; @@ -41,6 +43,14 @@ public EntityWitherNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.DEATH_SOUND_METADATA); 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 6ca9d0b50..b65847283 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 @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -16,6 +17,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityLiving; import net.minecraft.server.v1_12_R1.EntityWolf; import net.minecraft.server.v1_12_R1.IBlockData; @@ -63,6 +65,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { 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 364834c8a..251dc3f3c 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityZombie; import net.minecraft.server.v1_12_R1.IBlockData; import net.minecraft.server.v1_12_R1.NBTTagCompound; @@ -50,6 +52,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { 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 e93a08012..87627ce19 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityZombieHusk; import net.minecraft.server.v1_12_R1.IBlockData; import net.minecraft.server.v1_12_R1.NBTTagCompound; @@ -50,6 +52,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { 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 c7961208b..6cf4e1fd5 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; +import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityZombieVillager; import net.minecraft.server.v1_12_R1.IBlockData; import net.minecraft.server.v1_12_R1.NBTTagCompound; @@ -50,6 +52,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/DragonFireballController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/DragonFireballController.java index 1b7f5c4de..bbba09e7e 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/DragonFireballController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/DragonFireballController.java @@ -53,6 +53,18 @@ public EntityDragonFireballNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public void B_() { + if (npc != null) { + npc.update(); + if (!npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true)) { + super.B_(); + } + } else { + super.B_(); + } + } + @Override public void collide(net.minecraft.server.v1_12_R1.Entity entity) { // this method is called by both the entities involved - cancelling @@ -89,18 +101,6 @@ public NPC getNPC() { return npc; } - @Override - public void B_() { - if (npc != null) { - npc.update(); - if (!npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true)) { - super.B_(); - } - } else { - super.B_(); - } - } - @Override public void setSize(float f, float f1) { if (npc == null) { diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/EggController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/EggController.java index 649679dea..95138fbd3 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/EggController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/EggController.java @@ -63,16 +63,23 @@ public EntityEggNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } - @Override - public boolean d(NBTTagCompound save) { - return npc == null ? super.d(save) : false; - } - public EntityEggNPC(World world, NPC npc, double d0, double d1, double d2) { super(world, d0, d1, d2); this.npc = (CitizensNPC) npc; } + @Override + public void B_() { + if (npc != null) { + npc.update(); + if (!npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true)) { + super.B_(); + } + } else { + super.B_(); + } + } + @Override public void collide(net.minecraft.server.v1_12_R1.Entity entity) { // this method is called by both the entities involved - cancelling @@ -83,6 +90,11 @@ public void collide(net.minecraft.server.v1_12_R1.Entity entity) { } } + @Override + public boolean d(NBTTagCompound save) { + return npc == null ? super.d(save) : false; + } + @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); @@ -103,17 +115,5 @@ public CraftEntity getBukkitEntity() { public NPC getNPC() { return npc; } - - @Override - public void B_() { - if (npc != null) { - npc.update(); - if (!npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true)) { - super.B_(); - } - } else { - super.B_(); - } - } } } \ No newline at end of file diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/EnderCrystalController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/EnderCrystalController.java index e458aec4a..c343e245f 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/EnderCrystalController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/EnderCrystalController.java @@ -47,16 +47,20 @@ public EntityEnderCrystalNPC(World world) { this(world, null); } - @Override - public boolean d(NBTTagCompound save) { - return npc == null ? super.d(save) : false; - } - public EntityEnderCrystalNPC(World world, NPC npc) { super(world); this.npc = (CitizensNPC) npc; } + @Override + public void B_() { + if (npc != null) { + npc.update(); + } else { + super.B_(); + } + } + @Override public void collide(net.minecraft.server.v1_12_R1.Entity entity) { // this method is called by both the entities involved - cancelling @@ -67,6 +71,11 @@ public void collide(net.minecraft.server.v1_12_R1.Entity entity) { } } + @Override + public boolean d(NBTTagCompound save) { + return npc == null ? super.d(save) : false; + } + @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); @@ -87,14 +96,5 @@ public CraftEntity getBukkitEntity() { public NPC getNPC() { return npc; } - - @Override - public void B_() { - if (npc != null) { - npc.update(); - } else { - super.B_(); - } - } } } \ No newline at end of file diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/EnderPearlController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/EnderPearlController.java index 85122e9b8..633cd3bab 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/EnderPearlController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/EnderPearlController.java @@ -52,6 +52,18 @@ public EntityEnderPearlNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public void B_() { + if (npc != null) { + npc.update(); + if (!npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true)) { + super.B_(); + } + } else { + super.B_(); + } + } + @Override public void collide(net.minecraft.server.v1_12_R1.Entity entity) { // this method is called by both the entities involved - cancelling @@ -87,17 +99,5 @@ public CraftEntity getBukkitEntity() { public NPC getNPC() { return npc; } - - @Override - public void B_() { - if (npc != null) { - npc.update(); - if (!npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true)) { - super.B_(); - } - } else { - super.B_(); - } - } } } \ No newline at end of file diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/EnderSignalController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/EnderSignalController.java index d82db8cbb..795786cf3 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/EnderSignalController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/EnderSignalController.java @@ -47,16 +47,20 @@ public EntityEnderSignalNPC(World world) { this(world, null); } - @Override - public boolean d(NBTTagCompound save) { - return npc == null ? super.d(save) : false; - } - public EntityEnderSignalNPC(World world, NPC npc) { super(world); this.npc = (CitizensNPC) npc; } + @Override + public void B_() { + if (npc != null) { + npc.update(); + } else { + super.B_(); + } + } + @Override public void collide(net.minecraft.server.v1_12_R1.Entity entity) { // this method is called by both the entities involved - cancelling @@ -67,6 +71,11 @@ public void collide(net.minecraft.server.v1_12_R1.Entity entity) { } } + @Override + public boolean d(NBTTagCompound save) { + return npc == null ? super.d(save) : false; + } + @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); @@ -87,14 +96,5 @@ public CraftEntity getBukkitEntity() { public NPC getNPC() { return npc; } - - @Override - public void B_() { - if (npc != null) { - npc.update(); - } else { - super.B_(); - } - } } } \ No newline at end of file diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ExperienceOrbController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ExperienceOrbController.java index 714494106..e61b97b3c 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ExperienceOrbController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ExperienceOrbController.java @@ -38,6 +38,15 @@ public EntityExperienceOrbNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public void B_() { + if (npc != null) { + npc.update(); + } else { + super.B_(); + } + } + @Override public void collide(net.minecraft.server.v1_12_R1.Entity entity) { // this method is called by both the entities involved - cancelling @@ -73,15 +82,6 @@ public CraftEntity getBukkitEntity() { public NPC getNPC() { return npc; } - - @Override - public void B_() { - if (npc != null) { - npc.update(); - } else { - super.B_(); - } - } } public static class ExperienceOrbNPC extends CraftExperienceOrb implements NPCHolder { diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/FireworkController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/FireworkController.java index 2aeadc290..eecd6b4f9 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/FireworkController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/FireworkController.java @@ -39,8 +39,12 @@ public EntityFireworkNPC(World world, NPC npc) { } @Override - public boolean d(NBTTagCompound save) { - return npc == null ? super.d(save) : false; + public void B_() { + if (npc != null) { + npc.update(); + } else { + super.B_(); + } } @Override @@ -53,6 +57,11 @@ public void collide(net.minecraft.server.v1_12_R1.Entity entity) { } } + @Override + public boolean d(NBTTagCompound save) { + return npc == null ? super.d(save) : false; + } + @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); @@ -73,15 +82,6 @@ public CraftEntity getBukkitEntity() { public NPC getNPC() { return npc; } - - @Override - public void B_() { - if (npc != null) { - npc.update(); - } else { - super.B_(); - } - } } public static class FireworkNPC extends CraftFirework implements NPCHolder { diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/LargeFireballController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/LargeFireballController.java index c0501840c..02a5c56ef 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/LargeFireballController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/LargeFireballController.java @@ -39,6 +39,18 @@ public EntityLargeFireballNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public void B_() { + if (npc != null) { + npc.update(); + if (!npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true)) { + super.B_(); + } + } else { + super.B_(); + } + } + @Override public void collide(net.minecraft.server.v1_12_R1.Entity entity) { // this method is called by both the entities involved - cancelling @@ -83,18 +95,6 @@ public void setSize(float f, float f1) { NMSImpl.setSize(this, f, f1, justCreated); } } - - @Override - public void B_() { - if (npc != null) { - npc.update(); - if (!npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true)) { - super.B_(); - } - } else { - super.B_(); - } - } } public static class LargeFireballNPC extends CraftLargeFireball implements NPCHolder { diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/LeashController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/LeashController.java index 10ad9808c..ba466185d 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/LeashController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/LeashController.java @@ -38,6 +38,15 @@ public EntityLeashNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public void B_() { + if (npc != null) { + npc.update(); + } else { + super.B_(); + } + } + @Override public void collide(net.minecraft.server.v1_12_R1.Entity entity) { // this method is called by both the entities involved - cancelling @@ -74,15 +83,6 @@ public NPC getNPC() { return npc; } - @Override - public void B_() { - if (npc != null) { - npc.update(); - } else { - super.B_(); - } - } - @Override public boolean survives() { return npc == null || !npc.isProtected() ? super.survives() : true; diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/PaintingController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/PaintingController.java index 9fa3b1733..efcf54a79 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/PaintingController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/PaintingController.java @@ -39,8 +39,12 @@ public EntityPaintingNPC(World world, NPC npc) { } @Override - public boolean d(NBTTagCompound save) { - return npc == null ? super.d(save) : false; + public void B_() { + if (npc != null) { + npc.update(); + } else { + super.B_(); + } } @Override @@ -53,6 +57,11 @@ public void collide(net.minecraft.server.v1_12_R1.Entity entity) { } } + @Override + public boolean d(NBTTagCompound save) { + return npc == null ? super.d(save) : false; + } + @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); @@ -74,15 +83,6 @@ public NPC getNPC() { return npc; } - @Override - public void B_() { - if (npc != null) { - npc.update(); - } else { - super.B_(); - } - } - @Override public boolean survives() { return npc == null || !npc.isProtected() ? super.survives() : true; diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ShulkerBulletController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ShulkerBulletController.java index 3d1e49ccf..9b6b43487 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ShulkerBulletController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ShulkerBulletController.java @@ -38,6 +38,15 @@ public EntityShulkerBulletNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public void B_() { + if (npc != null) { + npc.update(); + } else { + super.B_(); + } + } + @Override public void collide(net.minecraft.server.v1_12_R1.Entity entity) { // this method is called by both the entities involved - cancelling @@ -73,15 +82,6 @@ public CraftEntity getBukkitEntity() { public NPC getNPC() { return npc; } - - @Override - public void B_() { - if (npc != null) { - npc.update(); - } else { - super.B_(); - } - } } public static class ShulkerBulletNPC extends CraftShulkerBullet implements NPCHolder { diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/SmallFireballController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/SmallFireballController.java index bddd2d025..19bc61a91 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/SmallFireballController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/SmallFireballController.java @@ -38,6 +38,18 @@ public EntitySmallFireballNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public void B_() { + if (npc != null) { + npc.update(); + if (!npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true)) { + super.B_(); + } + } else { + super.B_(); + } + } + @Override public void collide(net.minecraft.server.v1_12_R1.Entity entity) { // this method is called by both the entities involved - cancelling @@ -73,18 +85,6 @@ public CraftEntity getBukkitEntity() { public NPC getNPC() { return npc; } - - @Override - public void B_() { - if (npc != null) { - npc.update(); - if (!npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true)) { - super.B_(); - } - } else { - super.B_(); - } - } } public static class SmallFireballNPC extends CraftSmallFireball implements NPCHolder { diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/SnowballController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/SnowballController.java index 13f16968a..c40bbaa25 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/SnowballController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/SnowballController.java @@ -26,20 +26,6 @@ public Snowball getBukkitEntity() { return (Snowball) super.getBukkitEntity(); } - public static class SnowballNPC extends CraftSnowball implements NPCHolder { - private final CitizensNPC npc; - - public SnowballNPC(EntitySnowballNPC entity) { - super((CraftServer) Bukkit.getServer(), entity); - this.npc = entity.npc; - } - - @Override - public NPC getNPC() { - return npc; - } - } - public static class EntitySnowballNPC extends EntitySnowball implements NPCHolder { private final CitizensNPC npc; @@ -47,16 +33,20 @@ public EntitySnowballNPC(World world) { this(world, null); } - @Override - public boolean d(NBTTagCompound save) { - return npc == null ? super.d(save) : false; - } - public EntitySnowballNPC(World world, NPC npc) { super(world); this.npc = (CitizensNPC) npc; } + @Override + public void B_() { + if (npc != null) { + npc.update(); + } else { + super.B_(); + } + } + @Override public void collide(net.minecraft.server.v1_12_R1.Entity entity) { // this method is called by both the entities involved - cancelling @@ -67,6 +57,11 @@ public void collide(net.minecraft.server.v1_12_R1.Entity entity) { } } + @Override + public boolean d(NBTTagCompound save) { + return npc == null ? super.d(save) : false; + } + @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); @@ -87,14 +82,19 @@ public CraftEntity getBukkitEntity() { public NPC getNPC() { return npc; } + } + + public static class SnowballNPC extends CraftSnowball implements NPCHolder { + private final CitizensNPC npc; + + public SnowballNPC(EntitySnowballNPC entity) { + super((CraftServer) Bukkit.getServer(), entity); + this.npc = entity.npc; + } @Override - public void B_() { - if (npc != null) { - npc.update(); - } else { - super.B_(); - } + public NPC getNPC() { + return npc; } } } \ No newline at end of file diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/SpectralArrowController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/SpectralArrowController.java index 7000540ef..020b291e5 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/SpectralArrowController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/SpectralArrowController.java @@ -38,6 +38,15 @@ public EntitySpectralArrowNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public void B_() { + if (npc != null) { + npc.update(); + } else { + super.B_(); + } + } + @Override public void collide(net.minecraft.server.v1_12_R1.Entity entity) { // this method is called by both the entities involved - cancelling @@ -73,15 +82,6 @@ public CraftEntity getBukkitEntity() { public NPC getNPC() { return npc; } - - @Override - public void B_() { - if (npc != null) { - npc.update(); - } else { - super.B_(); - } - } } public static class SpectralArrowNPC extends CraftArrow implements NPCHolder { diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/TNTPrimedController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/TNTPrimedController.java index 7bb2bf727..0d01a8556 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/TNTPrimedController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/TNTPrimedController.java @@ -33,16 +33,20 @@ public EntityTNTPrimedNPC(World world) { this(world, null); } - @Override - public boolean d(NBTTagCompound save) { - return npc == null ? super.d(save) : false; - } - public EntityTNTPrimedNPC(World world, NPC npc) { super(world); this.npc = (CitizensNPC) npc; } + @Override + public void B_() { + if (npc != null) { + npc.update(); + } else { + super.B_(); + } + } + @Override public void collide(net.minecraft.server.v1_12_R1.Entity entity) { // this method is called by both the entities involved - cancelling @@ -53,6 +57,11 @@ public void collide(net.minecraft.server.v1_12_R1.Entity entity) { } } + @Override + public boolean d(NBTTagCompound save) { + return npc == null ? super.d(save) : false; + } + @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); @@ -73,15 +82,6 @@ public CraftEntity getBukkitEntity() { public NPC getNPC() { return npc; } - - @Override - public void B_() { - if (npc != null) { - npc.update(); - } else { - super.B_(); - } - } } public static class TNTPrimedNPC extends CraftTNTPrimed implements NPCHolder { diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ThrownExpBottleController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ThrownExpBottleController.java index 9f827ef74..ce07da27c 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ThrownExpBottleController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ThrownExpBottleController.java @@ -38,6 +38,18 @@ public EntityThrownExpBottleNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public void B_() { + if (npc != null) { + npc.update(); + if (!npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true)) { + super.B_(); + } + } else { + super.B_(); + } + } + @Override public void collide(net.minecraft.server.v1_12_R1.Entity entity) { // this method is called by both the entities involved - cancelling @@ -73,18 +85,6 @@ public CraftEntity getBukkitEntity() { public NPC getNPC() { return npc; } - - @Override - public void B_() { - if (npc != null) { - npc.update(); - if (!npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true)) { - super.B_(); - } - } else { - super.B_(); - } - } } public static class ThrownExpBottleNPC extends CraftThrownExpBottle implements NPCHolder { diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ThrownPotionController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ThrownPotionController.java index 596942a1b..b5a6df6a7 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ThrownPotionController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ThrownPotionController.java @@ -39,6 +39,15 @@ public EntityThrownPotionNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public void B_() { + if (npc != null) { + npc.update(); + } else { + super.B_(); + } + } + @Override public void collide(net.minecraft.server.v1_12_R1.Entity entity) { // this method is called by both the entities involved - cancelling @@ -78,15 +87,6 @@ public CraftEntity getBukkitEntity() { public NPC getNPC() { return npc; } - - @Override - public void B_() { - if (npc != null) { - npc.update(); - } else { - super.B_(); - } - } } public static class LingeringThrownPotionNPC extends CraftLingeringPotion implements NPCHolder { diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/WitherSkullController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/WitherSkullController.java index b8e8e88c1..52393edef 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/WitherSkullController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/WitherSkullController.java @@ -33,16 +33,20 @@ public EntityWitherSkullNPC(World world) { this(world, null); } - @Override - public boolean d(NBTTagCompound save) { - return npc == null ? super.d(save) : false; - } - public EntityWitherSkullNPC(World world, NPC npc) { super(world); this.npc = (CitizensNPC) npc; } + @Override + public void B_() { + if (npc != null) { + npc.update(); + } else { + super.B_(); + } + } + @Override public void collide(net.minecraft.server.v1_12_R1.Entity entity) { // this method is called by both the entities involved - cancelling @@ -53,6 +57,11 @@ public void collide(net.minecraft.server.v1_12_R1.Entity entity) { } } + @Override + public boolean d(NBTTagCompound save) { + return npc == null ? super.d(save) : false; + } + @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); @@ -73,15 +82,6 @@ public CraftEntity getBukkitEntity() { public NPC getNPC() { return npc; } - - @Override - public void B_() { - if (npc != null) { - npc.update(); - } else { - super.B_(); - } - } } public static class WitherSkullNPC extends CraftWitherSkull implements NPCHolder { 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 b3d485844..ce87752bc 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 @@ -1427,7 +1427,7 @@ public void stop() { @Override public void update() { updateNavigation(navigation); - }; + } } private static class NavigationIterable implements Iterable { @@ -1757,7 +1757,7 @@ public static void setSize(Entity entity, float f, float f1, boolean justCreated if ((entity.width > f2) && (!justCreated) && (!entity.world.isClientSide)) entity.move(EnumMoveType.SELF, (f2 - entity.width) / 2, 0.0D, (f2 - entity.width) / 2); } - }; + } public static void stopNavigation(NavigationAbstract navigation) { navigation.p(); diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/PlayerNavigation.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/PlayerNavigation.java index dc24126d4..50e7114fd 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/PlayerNavigation.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/PlayerNavigation.java @@ -103,13 +103,7 @@ private boolean a(int paramInt1, int paramInt2, int paramInt3, int paramInt4, in if (d1 * paramDouble1 + d2 * paramDouble2 >= 0.0D) { PathType localPathType = this.h.a(this.b, m, paramInt2 - 1, n, this.a, paramInt4, paramInt5, paramInt6, true, true); - if (localPathType == PathType.WATER) { - return false; - } - if (localPathType == PathType.LAVA) { - return false; - } - if (localPathType == PathType.OPEN) { + if ((localPathType == PathType.WATER) || (localPathType == PathType.LAVA) || (localPathType == PathType.OPEN)) { return false; } localPathType = this.h.a(this.b, m, paramInt2, n, this.a, paramInt4, paramInt5, paramInt6, true, 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 657d04d62..b6c14630b 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -63,6 +64,14 @@ public EntityBatNPC(World world, NPC npc) { } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(Tag tag) { double mx = motX; diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/BlazeController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/BlazeController.java index 2cb414762..aefed9775 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftBlaze; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -21,8 +19,10 @@ import net.minecraft.server.v1_13_R2.EntityBlaze; import net.minecraft.server.v1_13_R2.EntityBoat; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class BlazeController extends MobEntityController { @@ -50,11 +50,6 @@ public NPC getNPC() { } public static class EntityBlazeNPC extends EntityBlaze implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityBlazeNPC(World world) { @@ -66,6 +61,28 @@ public EntityBlazeNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 f7cec7012..1d0f59833 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftCaveSpider; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -22,9 +20,11 @@ import net.minecraft.server.v1_13_R2.EntityBoat; import net.minecraft.server.v1_13_R2.EntityCaveSpider; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class CaveSpiderController extends MobEntityController { @@ -52,11 +52,6 @@ public NPC getNPC() { } public static class EntityCaveSpiderNPC extends EntityCaveSpider implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityCaveSpiderNPC(World world) { @@ -75,6 +70,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { @@ -84,6 +87,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 04cf5773c..94d8fddfc 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import java.lang.reflect.Method; import org.bukkit.Bukkit; @@ -13,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -25,9 +23,11 @@ import net.minecraft.server.v1_13_R2.EntityBoat; import net.minecraft.server.v1_13_R2.EntityChicken; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class ChickenController extends MobEntityController { @@ -55,11 +55,6 @@ public NPC getNPC() { } public static class EntityChickenNPC extends EntityChicken implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityChickenNPC(World world) { @@ -89,6 +84,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { @@ -98,6 +101,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 8119a1f7c..d99083f72 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftCod; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -25,11 +23,13 @@ import net.minecraft.server.v1_13_R2.EntityHuman; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; import net.minecraft.server.v1_13_R2.EnumHand; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.ItemStack; import net.minecraft.server.v1_13_R2.Items; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class CodController extends MobEntityController { @@ -57,11 +57,6 @@ public NPC getNPC() { } public static class EntityCodNPC extends EntityCod implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityCodNPC(World world) { @@ -83,6 +78,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean a(EntityHuman entityhuman, EnumHand enumhand) { if (npc == null || !npc.isProtected()) @@ -105,6 +108,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 e1633818a..2c14c4590 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftCow; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -24,11 +22,13 @@ import net.minecraft.server.v1_13_R2.EntityHuman; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; import net.minecraft.server.v1_13_R2.EnumHand; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.ItemStack; import net.minecraft.server.v1_13_R2.Items; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class CowController extends MobEntityController { @@ -56,11 +56,6 @@ public NPC getNPC() { } public static class EntityCowNPC extends EntityCow implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityCowNPC(World world) { @@ -90,6 +85,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean a(EntityHuman entityhuman, EnumHand enumhand) { if (npc == null || !npc.isProtected()) @@ -110,6 +113,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 eef71c245..22fdca8ab 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftCreeper; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -23,9 +21,11 @@ import net.minecraft.server.v1_13_R2.EntityCreeper; import net.minecraft.server.v1_13_R2.EntityLightning; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class CreeperController extends MobEntityController { @@ -53,12 +53,8 @@ public NPC getNPC() { } public static class EntityCreeperNPC extends EntityCreeper implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private boolean allowPowered; + private final CitizensNPC npc; public EntityCreeperNPC(World world) { @@ -77,6 +73,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { @@ -86,6 +90,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 bc1d673c0..ffa23a51d 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftDolphin; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -22,10 +20,12 @@ import net.minecraft.server.v1_13_R2.EntityBoat; import net.minecraft.server.v1_13_R2.EntityDolphin; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.GenericAttributes; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class DolphinController extends MobEntityController { @@ -53,11 +53,6 @@ public NPC getNPC() { } public static class EntityDolphinNPC extends EntityDolphin implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityDolphinNPC(World world) { @@ -81,6 +76,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { @@ -92,6 +95,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 8e5ac81d6..908e84985 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftDrowned; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -22,9 +20,11 @@ import net.minecraft.server.v1_13_R2.EntityBoat; import net.minecraft.server.v1_13_R2.EntityDrowned; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class DrownedController extends MobEntityController { @@ -52,11 +52,6 @@ public NPC getNPC() { } public static class EntityDrownedNPC extends EntityDrowned implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityDrownedNPC(World world) { @@ -75,6 +70,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { @@ -84,6 +87,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 5f925e9ca..2c3df6998 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import java.lang.reflect.Method; import org.bukkit.Bukkit; @@ -13,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -24,8 +22,10 @@ import net.minecraft.server.v1_13_R2.EntityBoat; import net.minecraft.server.v1_13_R2.EntityEnderDragon; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class EnderDragonController extends MobEntityController { @@ -53,11 +53,6 @@ public NPC getNPC() { } public static class EntityEnderDragonNPC extends EntityEnderDragon implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityEnderDragonNPC(World world) { @@ -69,6 +64,28 @@ public EntityEnderDragonNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 ea602aab1..237623bef 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEnderman; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -22,9 +20,11 @@ import net.minecraft.server.v1_13_R2.EntityBoat; import net.minecraft.server.v1_13_R2.EntityEnderman; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class EndermanController extends MobEntityController { @@ -52,11 +52,6 @@ public NPC getNPC() { } public static class EntityEndermanNPC extends EntityEnderman implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityEndermanNPC(World world) { @@ -75,6 +70,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { @@ -84,6 +87,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 9deaae478..c58a99f64 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEndermite; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -22,9 +20,11 @@ import net.minecraft.server.v1_13_R2.EntityBoat; import net.minecraft.server.v1_13_R2.EntityEndermite; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class EndermiteController extends MobEntityController { @@ -52,11 +52,6 @@ public NPC getNPC() { } public static class EntityEndermiteNPC extends EntityEndermite implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityEndermiteNPC(World world) { @@ -75,6 +70,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { @@ -84,6 +87,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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/EntityHumanNPC.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/EntityHumanNPC.java index aa3742e81..67ba3b619 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/EntityHumanNPC.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/EntityHumanNPC.java @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import java.io.IOException; import java.lang.invoke.MethodHandle; import java.net.Socket; @@ -122,11 +119,11 @@ public void a(float f, float f1, float f2) { } public float a(PathType pathtype) { - return this.bz.containsKey(pathtype) ? this.bz.get(pathtype).floatValue() : pathtype.a(); + return this.bz.containsKey(pathtype) ? this.bz.get(pathtype) : pathtype.a(); } public void a(PathType pathtype, float f) { - this.bz.put(pathtype, Float.valueOf(f)); + this.bz.put(pathtype, f); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/EvokerController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/EvokerController.java index a6f8af9cf..7a2597491 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -22,9 +20,11 @@ import net.minecraft.server.v1_13_R2.EntityBoat; import net.minecraft.server.v1_13_R2.EntityEvoker; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class EvokerController extends MobEntityController { @@ -38,11 +38,6 @@ public Evoker getBukkitEntity() { } public static class EntityEvokerNPC extends EntityEvoker implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityEvokerNPC(World world) { @@ -61,6 +56,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { @@ -70,6 +73,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 b6eec8530..be52252e9 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -21,8 +19,10 @@ import net.minecraft.server.v1_13_R2.EntityBoat; import net.minecraft.server.v1_13_R2.EntityGhast; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class GhastController extends MobEntityController { @@ -36,11 +36,6 @@ public Ghast getBukkitEntity() { } public static class EntityGhastNPC extends EntityGhast implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityGhastNPC(World world) { @@ -52,6 +47,28 @@ public EntityGhastNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 891f14a3f..5fd045899 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -22,9 +20,11 @@ import net.minecraft.server.v1_13_R2.EntityBoat; import net.minecraft.server.v1_13_R2.EntityGiantZombie; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class GiantController extends MobEntityController { @@ -38,11 +38,6 @@ public Giant getBukkitEntity() { } public static class EntityGiantNPC extends EntityGiantZombie implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityGiantNPC(World world) { @@ -61,6 +56,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { @@ -70,6 +73,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 d4448dd7c..10b74540c 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import java.lang.reflect.Method; import org.bukkit.Bukkit; @@ -13,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -25,9 +23,11 @@ import net.minecraft.server.v1_13_R2.EntityBoat; import net.minecraft.server.v1_13_R2.EntityGuardian; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class GuardianController extends MobEntityController { @@ -41,11 +41,6 @@ public Guardian getBukkitEntity() { } public static class EntityGuardianNPC extends EntityGuardian implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityGuardianNPC(World world) { @@ -64,6 +59,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { @@ -73,6 +76,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 2f22cfca2..15521ccf5 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import java.lang.reflect.Method; import org.bukkit.Bukkit; @@ -13,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -25,9 +23,11 @@ import net.minecraft.server.v1_13_R2.EntityBoat; import net.minecraft.server.v1_13_R2.EntityGuardianElder; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class GuardianElderController extends MobEntityController { @@ -41,11 +41,6 @@ public ElderGuardian getBukkitEntity() { } public static class EntityGuardianElderNPC extends EntityGuardianElder implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityGuardianElderNPC(World world) { @@ -64,6 +59,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { @@ -73,6 +76,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 d009b516c..ea8721802 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; @@ -12,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -26,10 +24,12 @@ import net.minecraft.server.v1_13_R2.EntityBoat; import net.minecraft.server.v1_13_R2.EntityHorse; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.GenericAttributes; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class HorseController extends MobEntityController { @@ -49,13 +49,10 @@ public void spawn(Location at, NPC npc) { } public static class EntityHorseNPC extends EntityHorse implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private double baseMovementSpeed; + private final CitizensNPC npc; + private boolean riding; public EntityHorseNPC(World world) { @@ -89,6 +86,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { @@ -98,6 +103,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 3bb44326c..df7d32f8d 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; @@ -12,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -26,10 +24,12 @@ import net.minecraft.server.v1_13_R2.EntityBoat; import net.minecraft.server.v1_13_R2.EntityHorseDonkey; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.GenericAttributes; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class HorseDonkeyController extends MobEntityController { @@ -49,13 +49,10 @@ public void spawn(Location at, NPC npc) { } public static class EntityHorseDonkeyNPC extends EntityHorseDonkey implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private double baseMovementSpeed; + private final CitizensNPC npc; + private boolean riding; public EntityHorseDonkeyNPC(World world) { @@ -89,6 +86,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { @@ -98,6 +103,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 eb56bf940..b699ebb36 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; @@ -12,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -26,10 +24,12 @@ import net.minecraft.server.v1_13_R2.EntityBoat; import net.minecraft.server.v1_13_R2.EntityHorseMule; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.GenericAttributes; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class HorseMuleController extends MobEntityController { @@ -49,13 +49,10 @@ public void spawn(Location at, NPC npc) { } public static class EntityHorseMuleNPC extends EntityHorseMule implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private double baseMovementSpeed; + private final CitizensNPC npc; + private boolean riding; public EntityHorseMuleNPC(World world) { @@ -89,6 +86,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { @@ -98,6 +103,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 31ac06a6d..b66483126 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; @@ -12,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -26,10 +24,12 @@ import net.minecraft.server.v1_13_R2.EntityBoat; import net.minecraft.server.v1_13_R2.EntityHorseSkeleton; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.GenericAttributes; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class HorseSkeletonController extends MobEntityController { @@ -49,13 +49,10 @@ public void spawn(Location at, NPC npc) { } public static class EntityHorseSkeletonNPC extends EntityHorseSkeleton implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private double baseMovementSpeed; + private final CitizensNPC npc; + private boolean riding; public EntityHorseSkeletonNPC(World world) { @@ -90,6 +87,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { @@ -99,6 +104,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 585e7be90..db1fe9cf5 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; @@ -12,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -26,10 +24,12 @@ import net.minecraft.server.v1_13_R2.EntityBoat; import net.minecraft.server.v1_13_R2.EntityHorseZombie; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.GenericAttributes; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class HorseZombieController extends MobEntityController { @@ -49,13 +49,10 @@ public void spawn(Location at, NPC npc) { } public static class EntityHorseZombieNPC extends EntityHorseZombie implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private double baseMovementSpeed; + private final CitizensNPC npc; + private boolean riding; public EntityHorseZombieNPC(World world) { @@ -90,6 +87,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { @@ -99,6 +104,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @Override public boolean bT() { if (npc != null && riding) { diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/HumanController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/HumanController.java index a64dda2bc..7f1c9fc51 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/HumanController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/HumanController.java @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import java.util.UUID; import org.bukkit.Bukkit; 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 12fbc739d..293becae7 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -22,9 +20,11 @@ import net.minecraft.server.v1_13_R2.EntityBoat; import net.minecraft.server.v1_13_R2.EntityIllagerIllusioner; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class IllusionerController extends MobEntityController { @@ -38,11 +38,6 @@ public Illusioner getBukkitEntity() { } public static class EntityIllusionerNPC extends EntityIllagerIllusioner implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityIllusionerNPC(World world) { @@ -61,6 +56,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { @@ -70,6 +73,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 92ec2e46e..7c421284c 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -22,9 +20,11 @@ import net.minecraft.server.v1_13_R2.EntityBoat; import net.minecraft.server.v1_13_R2.EntityIronGolem; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class IronGolemController extends MobEntityController { @@ -38,11 +38,6 @@ public IronGolem getBukkitEntity() { } public static class EntityIronGolemNPC extends EntityIronGolem implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityIronGolemNPC(World world) { @@ -61,6 +56,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { @@ -70,6 +73,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 b813ae9b7..1d62fe52b 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; @@ -12,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -25,9 +23,11 @@ import net.minecraft.server.v1_13_R2.EntityBoat; import net.minecraft.server.v1_13_R2.EntityLlama; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class LlamaController extends MobEntityController { @@ -47,11 +47,6 @@ public void spawn(Location at, NPC npc) { } public static class EntityLlamaNPC extends EntityLlama implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityLlamaNPC(World world) { @@ -84,6 +79,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { @@ -93,6 +96,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 0f9cc7544..824f8afc3 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.nms.v1_13_R2.util.PlayerControllerMove; @@ -24,9 +22,11 @@ import net.minecraft.server.v1_13_R2.EntityHuman; import net.minecraft.server.v1_13_R2.EntityMagmaCube; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class MagmaCubeController extends MobEntityController { @@ -40,11 +40,6 @@ public MagmaCube getBukkitEntity() { } public static class EntityMagmaCubeNPC extends EntityMagmaCube implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityMagmaCubeNPC(World world) { @@ -67,6 +62,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { @@ -76,6 +79,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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/MobEntityController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/MobEntityController.java index 9cd9d81fc..b7c7a1865 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/MobEntityController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/MobEntityController.java @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import java.lang.invoke.MethodHandle; import java.lang.reflect.Constructor; import java.util.Map; 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 cc945c167..37b54e7af 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -24,9 +22,11 @@ import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; import net.minecraft.server.v1_13_R2.EntityMushroomCow; import net.minecraft.server.v1_13_R2.EnumHand; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class MushroomCowController extends MobEntityController { @@ -41,11 +41,6 @@ public MushroomCow getBukkitEntity() { } public static class EntityMushroomCowNPC extends EntityMushroomCow implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityMushroomCowNPC(World world) { @@ -75,6 +70,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean a(EntityHuman entityhuman, EnumHand enumhand) { if (npc == null || !npc.isProtected()) @@ -91,6 +94,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 01057f393..55b53b0b0 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -22,9 +20,11 @@ import net.minecraft.server.v1_13_R2.EntityBoat; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; import net.minecraft.server.v1_13_R2.EntityOcelot; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class OcelotController extends MobEntityController { @@ -38,11 +38,6 @@ public Ocelot getBukkitEntity() { } public static class EntityOcelotNPC extends EntityOcelot implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityOcelotNPC(World world) { @@ -72,6 +67,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { @@ -81,6 +84,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 aad9b1f43..78c08c698 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -23,8 +21,10 @@ import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; import net.minecraft.server.v1_13_R2.EntityParrot; import net.minecraft.server.v1_13_R2.EnumHand; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class ParrotController extends MobEntityController { @@ -38,11 +38,6 @@ public Parrot getBukkitEntity() { } public static class EntityParrotNPC extends EntityParrot implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityParrotNPC(World world) { @@ -54,6 +49,14 @@ public EntityParrotNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean a(EntityHuman paramEntityHuman, EnumHand paramEnumHand) { // block feeding @@ -63,6 +66,20 @@ public boolean a(EntityHuman paramEntityHuman, EnumHand paramEnumHand) { return false; } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 2e5da5c06..7bc31aba2 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import java.lang.reflect.Method; import org.bukkit.Bukkit; @@ -13,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -28,9 +26,11 @@ import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; import net.minecraft.server.v1_13_R2.EntityPhantom; import net.minecraft.server.v1_13_R2.EnumDifficulty; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class PhantomController extends MobEntityController { @@ -44,11 +44,6 @@ public Phantom getBukkitEntity() { } public static class EntityPhantomNPC extends EntityPhantom implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityPhantomNPC(World world) { @@ -73,6 +68,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { @@ -82,6 +85,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 02d910284..142171eee 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -23,9 +21,11 @@ import net.minecraft.server.v1_13_R2.EntityLightning; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; import net.minecraft.server.v1_13_R2.EntityPig; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class PigController extends MobEntityController { @@ -39,11 +39,6 @@ public Pig getBukkitEntity() { } public static class EntityPigNPC extends EntityPig implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityPigNPC(World world) { @@ -73,6 +68,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { @@ -82,6 +85,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 e6abafb1e..2c1c01194 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -22,9 +20,11 @@ import net.minecraft.server.v1_13_R2.EntityBoat; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; import net.minecraft.server.v1_13_R2.EntityPigZombie; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class PigZombieController extends MobEntityController { @@ -39,11 +39,6 @@ public PigZombie getBukkitEntity() { } public static class EntityPigZombieNPC extends EntityPigZombie implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityPigZombieNPC(World world) { @@ -62,6 +57,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { @@ -71,6 +74,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 e13b15287..1e40bffdf 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -21,8 +19,10 @@ import net.minecraft.server.v1_13_R2.EntityBoat; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; import net.minecraft.server.v1_13_R2.EntityPolarBear; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class PolarBearController extends MobEntityController { @@ -36,11 +36,6 @@ public PolarBear getBukkitEntity() { } public static class EntityPolarBearNPC extends EntityPolarBear implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityPolarBearNPC(World world) { @@ -63,6 +58,28 @@ public void a(boolean flag) { } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 4250231c7..84516dd0d 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -26,11 +24,13 @@ import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; import net.minecraft.server.v1_13_R2.EntityPufferFish; import net.minecraft.server.v1_13_R2.EnumHand; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.ItemStack; import net.minecraft.server.v1_13_R2.Items; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class PufferFishController extends MobEntityController { @@ -44,11 +44,6 @@ public PufferFish getBukkitEntity() { } public static class EntityPufferFishNPC extends EntityPufferFish implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityPufferFishNPC(World world) { @@ -70,6 +65,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean a(EntityHuman entityhuman, EnumHand enumhand) { if (npc == null || !npc.isProtected()) @@ -92,6 +95,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 b32e3a140..65d4a8515 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -24,9 +22,11 @@ import net.minecraft.server.v1_13_R2.EntityLiving; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; import net.minecraft.server.v1_13_R2.EntityRabbit; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class RabbitController extends MobEntityController { @@ -40,11 +40,6 @@ public Rabbit getBukkitEntity() { } public static class EntityRabbitNPC extends EntityRabbit implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityRabbitNPC(World world) { @@ -74,6 +69,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { @@ -83,6 +86,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 f9dc6f312..0e87340a5 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -25,11 +23,13 @@ import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; import net.minecraft.server.v1_13_R2.EntitySalmon; import net.minecraft.server.v1_13_R2.EnumHand; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.ItemStack; import net.minecraft.server.v1_13_R2.Items; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class SalmonController extends MobEntityController { @@ -43,11 +43,6 @@ public Salmon getBukkitEntity() { } public static class EntitySalmonNPC extends EntitySalmon implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntitySalmonNPC(World world) { @@ -69,6 +64,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean a(EntityHuman entityhuman, EnumHand enumhand) { if (npc == null || !npc.isProtected()) @@ -91,6 +94,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 5ce722f81..f9f31e126 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -22,9 +20,11 @@ import net.minecraft.server.v1_13_R2.EntityBoat; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; import net.minecraft.server.v1_13_R2.EntitySheep; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class SheepController extends MobEntityController { @@ -38,11 +38,6 @@ public Sheep getBukkitEntity() { } public static class EntitySheepNPC extends EntitySheep implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntitySheepNPC(World world) { @@ -72,6 +67,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { @@ -81,6 +84,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 7b882f5fc..9d1f2ad2d 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import java.lang.reflect.Method; import org.bukkit.Bukkit; @@ -13,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -26,9 +24,11 @@ import net.minecraft.server.v1_13_R2.EntityBoat; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; import net.minecraft.server.v1_13_R2.EntityShulker; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class ShulkerController extends MobEntityController { @@ -42,11 +42,6 @@ public Shulker getBukkitEntity() { } public static class EntityShulkerNPC extends EntityShulker implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityShulkerNPC(World world) { @@ -65,6 +60,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { @@ -74,6 +77,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 b699b04ed..97eec3a30 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -22,9 +20,11 @@ import net.minecraft.server.v1_13_R2.EntityBoat; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; import net.minecraft.server.v1_13_R2.EntitySilverfish; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class SilverfishController extends MobEntityController { @@ -38,11 +38,6 @@ public Silverfish getBukkitEntity() { } public static class EntitySilverfishNPC extends EntitySilverfish implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntitySilverfishNPC(World world) { @@ -61,6 +56,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { @@ -70,6 +73,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 c0b1a9ae4..289ee0516 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -22,9 +20,11 @@ import net.minecraft.server.v1_13_R2.EntityBoat; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; import net.minecraft.server.v1_13_R2.EntitySkeleton; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class SkeletonController extends MobEntityController { @@ -38,11 +38,6 @@ public Skeleton getBukkitEntity() { } public static class EntitySkeletonNPC extends EntitySkeleton implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntitySkeletonNPC(World world) { @@ -61,6 +56,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { @@ -70,6 +73,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 d93ba5a5a..de355d8ab 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -22,9 +20,11 @@ import net.minecraft.server.v1_13_R2.EntityBoat; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; import net.minecraft.server.v1_13_R2.EntitySkeletonStray; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class SkeletonStrayController extends MobEntityController { @@ -38,11 +38,6 @@ public Stray getBukkitEntity() { } public static class EntityStrayNPC extends EntitySkeletonStray implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityStrayNPC(World world) { @@ -61,6 +56,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { @@ -70,6 +73,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 3799f3ec5..908f06f66 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -22,9 +20,11 @@ import net.minecraft.server.v1_13_R2.EntityBoat; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; import net.minecraft.server.v1_13_R2.EntitySkeletonWither; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class SkeletonWitherController extends MobEntityController { @@ -38,11 +38,6 @@ public WitherSkeleton getBukkitEntity() { } public static class EntitySkeletonWitherNPC extends EntitySkeletonWither implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntitySkeletonWitherNPC(World world) { @@ -61,6 +56,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { @@ -70,6 +73,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 9897e0fa5..18bf11410 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.nms.v1_13_R2.util.PlayerControllerMove; @@ -24,9 +22,11 @@ import net.minecraft.server.v1_13_R2.EntityHuman; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; import net.minecraft.server.v1_13_R2.EntitySlime; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class SlimeController extends MobEntityController { @@ -40,11 +40,6 @@ public Slime getBukkitEntity() { } public static class EntitySlimeNPC extends EntitySlime implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntitySlimeNPC(World world) { @@ -67,6 +62,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { @@ -76,6 +79,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 ff0c42cd0..03e08c23b 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import java.lang.reflect.Method; import org.bukkit.Bukkit; @@ -13,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -25,9 +23,11 @@ import net.minecraft.server.v1_13_R2.EntityBoat; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; import net.minecraft.server.v1_13_R2.EntitySnowman; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class SnowmanController extends MobEntityController { @@ -41,11 +41,6 @@ public Snowman getBukkitEntity() { } public static class EntitySnowmanNPC extends EntitySnowman implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntitySnowmanNPC(World world) { @@ -64,6 +59,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { @@ -73,6 +76,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 0729b3f3f..4bdc33130 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -22,9 +20,11 @@ import net.minecraft.server.v1_13_R2.EntityBoat; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; import net.minecraft.server.v1_13_R2.EntitySpider; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class SpiderController extends MobEntityController { @@ -38,11 +38,6 @@ public Spider getBukkitEntity() { } public static class EntitySpiderNPC extends EntitySpider implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntitySpiderNPC(World world) { @@ -61,6 +56,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { @@ -70,6 +73,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 dff4c78b5..f254c8bd3 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -22,9 +20,11 @@ import net.minecraft.server.v1_13_R2.EntityBoat; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; import net.minecraft.server.v1_13_R2.EntitySquid; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class SquidController extends MobEntityController { @@ -38,11 +38,6 @@ public Squid getBukkitEntity() { } public static class EntitySquidNPC extends EntitySquid implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntitySquidNPC(World world) { @@ -61,6 +56,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { @@ -70,6 +73,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 698979df2..89c60620a 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -25,11 +23,13 @@ import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; import net.minecraft.server.v1_13_R2.EntityTropicalFish; import net.minecraft.server.v1_13_R2.EnumHand; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.ItemStack; import net.minecraft.server.v1_13_R2.Items; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class TropicalFishController extends MobEntityController { @@ -43,11 +43,6 @@ public TropicalFish getBukkitEntity() { } public static class EntityTropicalFishNPC extends EntityTropicalFish implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityTropicalFishNPC(World world) { @@ -69,6 +64,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean a(EntityHuman entityhuman, EnumHand enumhand) { if (npc == null || !npc.isProtected()) @@ -91,6 +94,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 70838e20b..94012314a 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -25,9 +23,11 @@ import net.minecraft.server.v1_13_R2.EntityInsentient; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; import net.minecraft.server.v1_13_R2.EntityTurtle; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class TurtleController extends MobEntityController { @@ -41,11 +41,6 @@ public Turtle getBukkitEntity() { } public static class EntityTurtleNPC extends EntityTurtle implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityTurtleNPC(World world) { @@ -68,6 +63,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { @@ -79,6 +82,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 586233845..0f30e4b75 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -21,8 +19,10 @@ import net.minecraft.server.v1_13_R2.EntityBoat; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; import net.minecraft.server.v1_13_R2.EntityVex; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class VexController extends MobEntityController { @@ -36,11 +36,6 @@ public Vex getBukkitEntity() { } public static class EntityVexNPC extends EntityVex implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityVexNPC(World world) { @@ -55,6 +50,28 @@ public EntityVexNPC(World world, NPC npc) { } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 228e50b3b..1001fed6f 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import java.util.List; import org.bukkit.Bukkit; @@ -13,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -27,10 +25,12 @@ import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; import net.minecraft.server.v1_13_R2.EntityVillager; import net.minecraft.server.v1_13_R2.EnumHand; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.MerchantRecipe; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class VillagerController extends MobEntityController { @@ -44,12 +44,8 @@ public Villager getBukkitEntity() { } public static class EntityVillagerNPC extends EntityVillager implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private boolean blockingATrade; + private final CitizensNPC npc; public EntityVillagerNPC(World world) { @@ -79,6 +75,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean a(EntityHuman entityhuman, EnumHand enumhand) { if (npc != null && npc.data().get(NPC.VILLAGER_BLOCK_TRADES, true)) { @@ -100,6 +104,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 d13ab41d1..3fded1d94 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -22,9 +20,11 @@ import net.minecraft.server.v1_13_R2.EntityBoat; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; import net.minecraft.server.v1_13_R2.EntityVindicator; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class VindicatorController extends MobEntityController { @@ -38,11 +38,6 @@ public Vindicator getBukkitEntity() { } public static class EntityVindicatorNPC extends EntityVindicator implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityVindicatorNPC(World world) { @@ -72,6 +67,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { @@ -81,6 +84,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 e5cb48843..99604ea4a 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -22,9 +20,11 @@ import net.minecraft.server.v1_13_R2.EntityBoat; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; import net.minecraft.server.v1_13_R2.EntityWitch; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class WitchController extends MobEntityController { @@ -38,11 +38,6 @@ public Witch getBukkitEntity() { } public static class EntityWitchNPC extends EntityWitch implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityWitchNPC(World world) { @@ -61,6 +56,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { @@ -70,6 +73,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 8c53d6e69..b62466ff9 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -21,8 +19,10 @@ import net.minecraft.server.v1_13_R2.EntityBoat; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; import net.minecraft.server.v1_13_R2.EntityWither; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class WitherController extends MobEntityController { @@ -36,11 +36,6 @@ public Wither getBukkitEntity() { } public static class EntityWitherNPC extends EntityWither implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityWitherNPC(World world) { @@ -52,6 +47,28 @@ public EntityWitherNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 c0f417309..52b158788 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -12,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -24,9 +22,11 @@ import net.minecraft.server.v1_13_R2.EntityLiving; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; import net.minecraft.server.v1_13_R2.EntityWolf; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class WolfController extends MobEntityController { @@ -40,11 +40,6 @@ public Wolf getBukkitEntity() { } public static class EntityWolfNPC extends EntityWolf implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityWolfNPC(World world) { @@ -74,6 +69,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { @@ -83,6 +86,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 b817f6970..31e0f60c7 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -22,9 +20,11 @@ import net.minecraft.server.v1_13_R2.EntityBoat; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; import net.minecraft.server.v1_13_R2.EntityZombie; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class ZombieController extends MobEntityController { @@ -38,11 +38,6 @@ public Zombie getBukkitEntity() { } public static class EntityZombieNPC extends EntityZombie implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityZombieNPC(World world) { @@ -61,6 +56,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { @@ -70,6 +73,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 d379ee93d..d2a44d4b6 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -22,9 +20,11 @@ import net.minecraft.server.v1_13_R2.EntityBoat; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; import net.minecraft.server.v1_13_R2.EntityZombieHusk; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class ZombieHuskController extends MobEntityController { @@ -38,11 +38,6 @@ public Husk getBukkitEntity() { } public static class EntityZombieHuskNPC extends EntityZombieHusk implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityZombieHuskNPC(World world) { @@ -61,6 +56,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { @@ -70,6 +73,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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 0cfaaf2d1..3d32926f1 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 @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -22,9 +20,11 @@ import net.minecraft.server.v1_13_R2.EntityBoat; import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; import net.minecraft.server.v1_13_R2.EntityZombieVillager; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.SoundEffect; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class ZombieVillagerController extends MobEntityController { @@ -38,11 +38,6 @@ public ZombieVillager getBukkitEntity() { } public static class EntityZombieVillagerNPC extends EntityZombieVillager implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityZombieVillagerNPC(World world) { @@ -61,6 +56,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void a(float f, float f1, float f2) { if (npc == null || !npc.isFlyable()) { @@ -70,6 +73,20 @@ public void a(float f, float f1, float f2) { } } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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/nonliving/AreaEffectCloudController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/AreaEffectCloudController.java index 837050b29..9d80b399c 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/AreaEffectCloudController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/AreaEffectCloudController.java @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity.nonliving; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftAreaEffectCloud; @@ -16,7 +13,9 @@ import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_13_R2.EntityAreaEffectCloud; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class AreaEffectCloudController extends MobEntityController { @@ -44,11 +43,6 @@ public NPC getNPC() { } public static class EntityAreaEffectCloudNPC extends EntityAreaEffectCloud implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityAreaEffectCloudNPC(World world) { @@ -61,12 +55,17 @@ public EntityAreaEffectCloudNPC(World world, NPC npc) { } @Override - public void tick() { - if (npc != null) { - npc.update(); - } else { - super.tick(); + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; } + return res; } @Override @@ -104,5 +103,14 @@ public CraftEntity getBukkitEntity() { public NPC getNPC() { return npc; } + + @Override + public void tick() { + if (npc != null) { + npc.update(); + } else { + super.tick(); + } + } } } \ No newline at end of file diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ArmorStandController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ArmorStandController.java index 6dfd5c9f1..77e848946 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ArmorStandController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ArmorStandController.java @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity.nonliving; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftArmorStand; @@ -21,7 +18,9 @@ import net.minecraft.server.v1_13_R2.EntityHuman; import net.minecraft.server.v1_13_R2.EnumHand; import net.minecraft.server.v1_13_R2.EnumInteractionResult; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.Vec3D; import net.minecraft.server.v1_13_R2.World; @@ -50,11 +49,6 @@ public NPC getNPC() { } public static class EntityArmorStandNPC extends EntityArmorStand implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityArmorStandNPC(World world) { @@ -78,11 +72,17 @@ public EnumInteractionResult a(EntityHuman entityhuman, Vec3D vec3d, EnumHand en } @Override - public void tick() { - super.tick(); - if (npc != null) { - npc.update(); + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; } + return res; } @Override @@ -120,5 +120,13 @@ public CraftEntity getBukkitEntity() { public NPC getNPC() { return npc; } + + @Override + public void tick() { + super.tick(); + if (npc != null) { + npc.update(); + } + } } } \ No newline at end of file diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/BoatController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/BoatController.java index c923fd126..d42709610 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/BoatController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/BoatController.java @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity.nonliving; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftBoat; @@ -17,7 +14,9 @@ import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_13_R2.EntityBoat; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class BoatController extends MobEntityController { @@ -45,11 +44,6 @@ public NPC getNPC() { } public static class EntityBoatNPC extends EntityBoat implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityBoatNPC(World world) { @@ -62,12 +56,17 @@ public EntityBoatNPC(World world, NPC npc) { } @Override - public void tick() { - if (npc != null) { - npc.update(); - } else { - super.tick(); + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; } + return res; } @Override @@ -114,5 +113,14 @@ public void setSize(float f, float f1) { NMSImpl.setSize(this, f, f1, justCreated); } } + + @Override + public void tick() { + if (npc != null) { + npc.update(); + } else { + super.tick(); + } + } } } \ No newline at end of file diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/DragonFireballController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/DragonFireballController.java index bfb5707a6..4f4efbacd 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/DragonFireballController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/DragonFireballController.java @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity.nonliving; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftDragonFireball; @@ -17,7 +14,9 @@ import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_13_R2.EntityDragonFireball; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class DragonFireballController extends MobEntityController { @@ -45,11 +44,6 @@ public NPC getNPC() { } public static class EntityDragonFireballNPC extends EntityDragonFireball implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityDragonFireballNPC(World world) { @@ -61,6 +55,20 @@ public EntityDragonFireballNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @Override public void collide(net.minecraft.server.v1_13_R2.Entity entity) { // this method is called by both the entities involved - cancelling @@ -97,6 +105,15 @@ public NPC getNPC() { return npc; } + @Override + public void setSize(float f, float f1) { + if (npc == null) { + super.setSize(f, f1); + } else { + NMSImpl.setSize(this, f, f1, justCreated); + } + } + @Override public void tick() { if (npc != null) { @@ -108,14 +125,5 @@ public void tick() { super.tick(); } } - - @Override - public void setSize(float f, float f1) { - if (npc == null) { - super.setSize(f, f1); - } else { - NMSImpl.setSize(this, f, f1, justCreated); - } - } } } \ No newline at end of file diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/EggController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/EggController.java index 21a8f95e3..31aa52d6d 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/EggController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/EggController.java @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity.nonliving; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; @@ -19,7 +16,9 @@ import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_13_R2.EntityEgg; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; import net.minecraft.server.v1_13_R2.WorldServer; @@ -55,11 +54,6 @@ public NPC getNPC() { } public static class EntityEggNPC extends EntityEgg implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityEggNPC(World world) { @@ -71,16 +65,25 @@ public EntityEggNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } - @Override - public boolean d(NBTTagCompound save) { - return npc == null ? super.d(save) : false; - } - public EntityEggNPC(World world, NPC npc, double d0, double d1, double d2) { super(world, d0, d1, d2); this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @Override public void collide(net.minecraft.server.v1_13_R2.Entity entity) { // this method is called by both the entities involved - cancelling @@ -91,6 +94,11 @@ public void collide(net.minecraft.server.v1_13_R2.Entity entity) { } } + @Override + public boolean d(NBTTagCompound save) { + return npc == null ? super.d(save) : false; + } + @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/EnderCrystalController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/EnderCrystalController.java index d2b263153..60a6b17d1 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/EnderCrystalController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/EnderCrystalController.java @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity.nonliving; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEnderCrystal; @@ -16,7 +13,9 @@ import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_13_R2.EntityEnderCrystal; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class EnderCrystalController extends MobEntityController { @@ -44,27 +43,31 @@ public NPC getNPC() { } public static class EntityEnderCrystalNPC extends EntityEnderCrystal implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityEnderCrystalNPC(World world) { this(world, null); } - @Override - public boolean d(NBTTagCompound save) { - return npc == null ? super.d(save) : false; - } - public EntityEnderCrystalNPC(World world, NPC npc) { super(world); this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @Override public void collide(net.minecraft.server.v1_13_R2.Entity entity) { // this method is called by both the entities involved - cancelling @@ -75,6 +78,11 @@ public void collide(net.minecraft.server.v1_13_R2.Entity entity) { } } + @Override + public boolean d(NBTTagCompound save) { + return npc == null ? super.d(save) : false; + } + @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/EnderPearlController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/EnderPearlController.java index c4229e480..47f7fa18b 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/EnderPearlController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/EnderPearlController.java @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity.nonliving; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEnderPearl; @@ -16,7 +13,9 @@ import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_13_R2.EntityEnderPearl; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class EnderPearlController extends MobEntityController { @@ -44,11 +43,6 @@ public NPC getNPC() { } public static class EntityEnderPearlNPC extends EntityEnderPearl implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityEnderPearlNPC(World world) { @@ -60,6 +54,20 @@ public EntityEnderPearlNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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/nonliving/EnderSignalController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/EnderSignalController.java index 786083032..e4941de11 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/EnderSignalController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/EnderSignalController.java @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity.nonliving; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEnderSignal; @@ -16,7 +13,9 @@ import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_13_R2.EntityEnderSignal; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class EnderSignalController extends MobEntityController { @@ -44,27 +43,31 @@ public NPC getNPC() { } public static class EntityEnderSignalNPC extends EntityEnderSignal implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityEnderSignalNPC(World world) { this(world, null); } - @Override - public boolean d(NBTTagCompound save) { - return npc == null ? super.d(save) : false; - } - public EntityEnderSignalNPC(World world, NPC npc) { super(world); this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @Override public void collide(net.minecraft.server.v1_13_R2.Entity entity) { // this method is called by both the entities involved - cancelling @@ -75,6 +78,11 @@ public void collide(net.minecraft.server.v1_13_R2.Entity entity) { } } + @Override + public boolean d(NBTTagCompound save) { + return npc == null ? super.d(save) : false; + } + @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/EvokerFangsController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/EvokerFangsController.java index ee8053c07..c89ea774e 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/EvokerFangsController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/EvokerFangsController.java @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity.nonliving; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -21,7 +18,9 @@ import net.minecraft.server.v1_13_R2.EntityHuman; import net.minecraft.server.v1_13_R2.EnumHand; import net.minecraft.server.v1_13_R2.EnumInteractionResult; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.Vec3D; import net.minecraft.server.v1_13_R2.World; @@ -36,11 +35,6 @@ public EvokerFangs getBukkitEntity() { } public static class EntityEvokerFangsNPC extends EntityEvokerFangs implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityEvokerFangsNPC(World world) { @@ -64,11 +58,17 @@ public EnumInteractionResult a(EntityHuman entityhuman, Vec3D vec3d, EnumHand en } @Override - public void tick() { - super.tick(); - if (npc != null) { - npc.update(); + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; } + return res; } @Override @@ -106,6 +106,14 @@ public CraftEntity getBukkitEntity() { public NPC getNPC() { return npc; } + + @Override + public void tick() { + super.tick(); + if (npc != null) { + npc.update(); + } + } } public static class EvokerFangsNPC extends CraftEvokerFangs implements NPCHolder { diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ExperienceOrbController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ExperienceOrbController.java index 9845a1805..9286e9c28 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ExperienceOrbController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ExperienceOrbController.java @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity.nonliving; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -16,7 +13,9 @@ import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_13_R2.EntityExperienceOrb; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class ExperienceOrbController extends MobEntityController { @@ -30,11 +29,6 @@ public ExperienceOrb getBukkitEntity() { } public static class EntityExperienceOrbNPC extends EntityExperienceOrb implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityExperienceOrbNPC(World world) { @@ -46,6 +40,20 @@ public EntityExperienceOrbNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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/nonliving/FallingBlockController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/FallingBlockController.java index 329ca66f1..7d132e524 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/FallingBlockController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/FallingBlockController.java @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity.nonliving; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; @@ -27,8 +24,10 @@ import net.minecraft.server.v1_13_R2.Blocks; import net.minecraft.server.v1_13_R2.EntityFallingBlock; import net.minecraft.server.v1_13_R2.EnumMoveType; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.IBlockData; import net.minecraft.server.v1_13_R2.NBTTagCompound; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; import net.minecraft.server.v1_13_R2.WorldServer; @@ -58,11 +57,6 @@ public FallingBlock getBukkitEntity() { } public static class EntityFallingBlockNPC extends EntityFallingBlock implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityFallingBlockNPC(World world) { @@ -79,6 +73,20 @@ public EntityFallingBlockNPC(World world, NPC npc, double d0, double d1, double this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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/nonliving/FireworkController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/FireworkController.java index a3ffb04b5..555708616 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/FireworkController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/FireworkController.java @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity.nonliving; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -16,7 +13,9 @@ import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_13_R2.EntityFireworks; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class FireworkController extends MobEntityController { @@ -30,11 +29,6 @@ public Firework getBukkitEntity() { } public static class EntityFireworkNPC extends EntityFireworks implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityFireworkNPC(World world) { @@ -47,8 +41,17 @@ public EntityFireworkNPC(World world, NPC npc) { } @Override - public boolean d(NBTTagCompound save) { - return npc == null ? super.d(save) : false; + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; } @Override @@ -61,6 +64,11 @@ public void collide(net.minecraft.server.v1_13_R2.Entity entity) { } } + @Override + public boolean d(NBTTagCompound save) { + return npc == null ? super.d(save) : false; + } + @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/FishingHookController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/FishingHookController.java index 1eef2ab4a..72c1d869a 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/FishingHookController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/FishingHookController.java @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity.nonliving; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import java.util.UUID; import org.bukkit.Bukkit; @@ -21,8 +18,10 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_13_R2.EntityFishingHook; import net.minecraft.server.v1_13_R2.EntityPlayer; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; import net.minecraft.server.v1_13_R2.PlayerInteractManager; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; import net.minecraft.server.v1_13_R2.WorldServer; @@ -37,11 +36,6 @@ public FishHook getBukkitEntity() { } public static class EntityFishingHookNPC extends EntityFishingHook implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityFishingHookNPC(World world) { @@ -55,6 +49,20 @@ public EntityFishingHookNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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/nonliving/ItemController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ItemController.java index a585194db..5f62ee88e 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ItemController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ItemController.java @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity.nonliving; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; @@ -25,8 +22,10 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_13_R2.EntityHuman; import net.minecraft.server.v1_13_R2.EntityItem; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.ItemStack; import net.minecraft.server.v1_13_R2.NBTTagCompound; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; import net.minecraft.server.v1_13_R2.WorldServer; @@ -59,11 +58,6 @@ public Item getBukkitEntity() { } public static class EntityItemNPC extends EntityItem implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityItemNPC(World world) { @@ -76,6 +70,20 @@ public EntityItemNPC(World world, NPC npc, double x, double y, double z, ItemSta this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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/nonliving/ItemFrameController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ItemFrameController.java index 58f0ec012..5500e2cd1 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ItemFrameController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ItemFrameController.java @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity.nonliving; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; @@ -24,7 +21,9 @@ import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.EntityItemFrame; import net.minecraft.server.v1_13_R2.EnumDirection; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class ItemFrameController extends MobEntityController { @@ -47,11 +46,6 @@ public ItemFrame getBukkitEntity() { } public static class EntityItemFrameNPC extends EntityItemFrame implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityItemFrameNPC(World world) { @@ -63,6 +57,20 @@ public EntityItemFrameNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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/nonliving/LargeFireballController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/LargeFireballController.java index 22a4bf6e1..7501cf2e0 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/LargeFireballController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/LargeFireballController.java @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity.nonliving; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -17,7 +14,9 @@ import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_13_R2.EntityLargeFireball; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class LargeFireballController extends MobEntityController { @@ -31,11 +30,6 @@ public LargeFireball getBukkitEntity() { } public static class EntityLargeFireballNPC extends EntityLargeFireball implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityLargeFireballNPC(World world) { @@ -47,6 +41,20 @@ public EntityLargeFireballNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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/nonliving/LeashController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/LeashController.java index 56744614b..492c14f83 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/LeashController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/LeashController.java @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity.nonliving; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -16,7 +13,9 @@ import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_13_R2.EntityLeash; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class LeashController extends MobEntityController { @@ -30,11 +29,6 @@ public LeashHitch getBukkitEntity() { } public static class EntityLeashNPC extends EntityLeash implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityLeashNPC(World world) { @@ -46,6 +40,20 @@ public EntityLeashNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @Override public void collide(net.minecraft.server.v1_13_R2.Entity entity) { // this method is called by both the entities involved - cancelling @@ -82,6 +90,11 @@ public NPC getNPC() { return npc; } + @Override + public boolean survives() { + return npc == null || !npc.isProtected() ? super.survives() : true; + } + @Override public void tick() { if (npc != null) { @@ -90,11 +103,6 @@ public void tick() { super.tick(); } } - - @Override - public boolean survives() { - return npc == null || !npc.isProtected() ? super.survives() : true; - } } public static class LeashNPC extends CraftLeash implements NPCHolder { diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/LlamaSpitController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/LlamaSpitController.java index bf200db15..25b15916e 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/LlamaSpitController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/LlamaSpitController.java @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity.nonliving; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; @@ -20,7 +17,9 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_13_R2.EntityLlama; import net.minecraft.server.v1_13_R2.EntityLlamaSpit; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; import net.minecraft.server.v1_13_R2.WorldServer; @@ -43,11 +42,6 @@ public LlamaSpit getBukkitEntity() { } public static class EntityLlamaSpitNPC extends EntityLlamaSpit implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityLlamaSpitNPC(World world) { @@ -65,15 +59,17 @@ public EntityLlamaSpitNPC(World world, NPC npc, EntityLlama entity) { } @Override - public void tick() { - if (npc != null) { - npc.update(); - if (!npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true)) { - super.tick(); - } - } else { - super.tick(); + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; } + return res; } @Override @@ -111,6 +107,18 @@ public CraftEntity getBukkitEntity() { public NPC getNPC() { return npc; } + + @Override + public void tick() { + if (npc != null) { + npc.update(); + if (!npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true)) { + super.tick(); + } + } else { + super.tick(); + } + } } public static class LlamaSpitNPC extends CraftLlamaSpit implements NPCHolder { diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartChestController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartChestController.java index f933d61ec..442920795 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartChestController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartChestController.java @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity.nonliving; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -17,7 +14,9 @@ import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_13_R2.EntityMinecartChest; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class MinecartChestController extends MobEntityController { @@ -31,11 +30,6 @@ public Minecart getBukkitEntity() { } public static class EntityMinecartChestNPC extends EntityMinecartChest implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityMinecartChestNPC(World world) { @@ -47,6 +41,20 @@ public EntityMinecartChestNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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/nonliving/MinecartCommandController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartCommandController.java index 89614f132..be0fb0ab2 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartCommandController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartCommandController.java @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity.nonliving; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -17,7 +14,9 @@ import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_13_R2.EntityMinecartCommandBlock; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class MinecartCommandController extends MobEntityController { @@ -31,11 +30,6 @@ public Minecart getBukkitEntity() { } public static class EntityMinecartCommandNPC extends EntityMinecartCommandBlock implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityMinecartCommandNPC(World world) { @@ -47,6 +41,20 @@ public EntityMinecartCommandNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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/nonliving/MinecartFurnaceController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartFurnaceController.java index 005edc3a7..5e6dc0668 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartFurnaceController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartFurnaceController.java @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity.nonliving; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -17,7 +14,9 @@ import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_13_R2.EntityMinecartFurnace; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class MinecartFurnaceController extends MobEntityController { @@ -31,11 +30,6 @@ public Minecart getBukkitEntity() { } public static class EntityMinecartFurnaceNPC extends EntityMinecartFurnace implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityMinecartFurnaceNPC(World world) { @@ -47,6 +41,20 @@ public EntityMinecartFurnaceNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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/nonliving/MinecartHopperController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartHopperController.java index 81d7f9f24..9c017ee63 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartHopperController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartHopperController.java @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity.nonliving; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.entity.Minecart; import org.bukkit.util.Vector; @@ -13,7 +10,9 @@ import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_13_R2.EntityMinecartHopper; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class MinecartHopperController extends MobEntityController { @@ -27,11 +26,6 @@ public Minecart getBukkitEntity() { } public static class EntityMinecartHopperNPC extends EntityMinecartHopper implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityMinecartHopperNPC(World world) { @@ -43,6 +37,20 @@ public EntityMinecartHopperNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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/nonliving/MinecartRideableController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartRideableController.java index c0306cf7e..2763eafd8 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartRideableController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartRideableController.java @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity.nonliving; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -17,7 +14,9 @@ import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_13_R2.EntityMinecartRideable; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class MinecartRideableController extends MobEntityController { @@ -31,11 +30,6 @@ public Minecart getBukkitEntity() { } public static class EntityMinecartRideableNPC extends EntityMinecartRideable implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityMinecartRideableNPC(World world) { @@ -47,6 +41,20 @@ public EntityMinecartRideableNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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/nonliving/MinecartSpawnerController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartSpawnerController.java index 30d3bd724..ac84cb68e 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartSpawnerController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartSpawnerController.java @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity.nonliving; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.entity.Minecart; import org.bukkit.util.Vector; @@ -13,7 +10,9 @@ import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_13_R2.EntityMinecartMobSpawner; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class MinecartSpawnerController extends MobEntityController { @@ -27,11 +26,6 @@ public Minecart getBukkitEntity() { } public static class EntityMinecartSpawnerNPC extends EntityMinecartMobSpawner implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityMinecartSpawnerNPC(World world) { @@ -43,6 +37,20 @@ public EntityMinecartSpawnerNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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/nonliving/MinecartTNTController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartTNTController.java index 1b6389009..9ecd140a2 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartTNTController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartTNTController.java @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity.nonliving; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.entity.Minecart; import org.bukkit.util.Vector; @@ -13,7 +10,9 @@ import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_13_R2.EntityMinecartTNT; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class MinecartTNTController extends MobEntityController { @@ -27,11 +26,6 @@ public Minecart getBukkitEntity() { } public static class EntityMinecartTNTNPC extends EntityMinecartTNT implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityMinecartTNTNPC(World world) { @@ -43,6 +37,20 @@ public EntityMinecartTNTNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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/nonliving/PaintingController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/PaintingController.java index 73d917a9c..e2c36bec1 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/PaintingController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/PaintingController.java @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity.nonliving; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -16,7 +13,9 @@ import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_13_R2.EntityPainting; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class PaintingController extends MobEntityController { @@ -30,11 +29,6 @@ public Painting getBukkitEntity() { } public static class EntityPaintingNPC extends EntityPainting implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityPaintingNPC(World world) { @@ -47,8 +41,17 @@ public EntityPaintingNPC(World world, NPC npc) { } @Override - public boolean d(NBTTagCompound save) { - return npc == null ? super.d(save) : false; + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; } @Override @@ -61,6 +64,11 @@ public void collide(net.minecraft.server.v1_13_R2.Entity entity) { } } + @Override + public boolean d(NBTTagCompound save) { + return npc == null ? super.d(save) : false; + } + @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); @@ -82,6 +90,11 @@ public NPC getNPC() { return npc; } + @Override + public boolean survives() { + return npc == null || !npc.isProtected() ? super.survives() : true; + } + @Override public void tick() { if (npc != null) { @@ -90,11 +103,6 @@ public void tick() { super.tick(); } } - - @Override - public boolean survives() { - return npc == null || !npc.isProtected() ? super.survives() : true; - } } public static class PaintingNPC extends CraftPainting implements NPCHolder { diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ShulkerBulletController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ShulkerBulletController.java index ccd286c8e..4258c3524 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ShulkerBulletController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ShulkerBulletController.java @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity.nonliving; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -16,7 +13,9 @@ import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_13_R2.EntityShulkerBullet; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class ShulkerBulletController extends MobEntityController { @@ -30,11 +29,6 @@ public ShulkerBullet getBukkitEntity() { } public static class EntityShulkerBulletNPC extends EntityShulkerBullet implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityShulkerBulletNPC(World world) { @@ -46,6 +40,20 @@ public EntityShulkerBulletNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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/nonliving/SmallFireballController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/SmallFireballController.java index 7d09ec946..d63123b1f 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/SmallFireballController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/SmallFireballController.java @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity.nonliving; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -16,7 +13,9 @@ import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_13_R2.EntitySmallFireball; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class SmallFireballController extends MobEntityController { @@ -30,11 +29,6 @@ public SmallFireball getBukkitEntity() { } public static class EntitySmallFireballNPC extends EntitySmallFireball implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntitySmallFireballNPC(World world) { @@ -46,6 +40,20 @@ public EntitySmallFireballNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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/nonliving/SnowballController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/SnowballController.java index edba8071c..4dbd03146 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/SnowballController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/SnowballController.java @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity.nonliving; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -16,7 +13,9 @@ import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_13_R2.EntitySnowball; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class SnowballController extends MobEntityController { @@ -29,42 +28,32 @@ public Snowball getBukkitEntity() { return (Snowball) super.getBukkitEntity(); } - public static class SnowballNPC extends CraftSnowball implements NPCHolder { - private final CitizensNPC npc; - - public SnowballNPC(EntitySnowballNPC entity) { - super((CraftServer) Bukkit.getServer(), entity); - this.npc = entity.npc; - } - - @Override - public NPC getNPC() { - return npc; - } - } - public static class EntitySnowballNPC extends EntitySnowball implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntitySnowballNPC(World world) { this(world, null); } - @Override - public boolean d(NBTTagCompound save) { - return npc == null ? super.d(save) : false; - } - public EntitySnowballNPC(World world, NPC npc) { super(world); this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @Override public void collide(net.minecraft.server.v1_13_R2.Entity entity) { // this method is called by both the entities involved - cancelling @@ -75,6 +64,11 @@ public void collide(net.minecraft.server.v1_13_R2.Entity entity) { } } + @Override + public boolean d(NBTTagCompound save) { + return npc == null ? super.d(save) : false; + } + @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); @@ -105,4 +99,18 @@ public void tick() { } } } + + public static class SnowballNPC extends CraftSnowball implements NPCHolder { + private final CitizensNPC npc; + + public SnowballNPC(EntitySnowballNPC entity) { + super((CraftServer) Bukkit.getServer(), entity); + this.npc = entity.npc; + } + + @Override + public NPC getNPC() { + return npc; + } + } } \ No newline at end of file diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/SpectralArrowController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/SpectralArrowController.java index 75e0fbe23..b8a1d8cc8 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/SpectralArrowController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/SpectralArrowController.java @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity.nonliving; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftArrow; @@ -16,7 +13,9 @@ import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_13_R2.EntitySpectralArrow; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class SpectralArrowController extends MobEntityController { @@ -30,11 +29,6 @@ public Arrow getBukkitEntity() { } public static class EntitySpectralArrowNPC extends EntitySpectralArrow implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntitySpectralArrowNPC(World world) { @@ -46,6 +40,20 @@ public EntitySpectralArrowNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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/nonliving/TNTPrimedController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/TNTPrimedController.java index 4b914f21b..bc05a48fc 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/TNTPrimedController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/TNTPrimedController.java @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity.nonliving; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -16,7 +13,9 @@ import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_13_R2.EntityTNTPrimed; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class TNTPrimedController extends MobEntityController { @@ -30,27 +29,31 @@ public TNTPrimed getBukkitEntity() { } public static class EntityTNTPrimedNPC extends EntityTNTPrimed implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityTNTPrimedNPC(World world) { this(world, null); } - @Override - public boolean d(NBTTagCompound save) { - return npc == null ? super.d(save) : false; - } - public EntityTNTPrimedNPC(World world, NPC npc) { super(world); this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @Override public void collide(net.minecraft.server.v1_13_R2.Entity entity) { // this method is called by both the entities involved - cancelling @@ -61,6 +64,11 @@ public void collide(net.minecraft.server.v1_13_R2.Entity entity) { } } + @Override + public boolean d(NBTTagCompound save) { + return npc == null ? super.d(save) : false; + } + @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ThrownExpBottleController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ThrownExpBottleController.java index 5e4ef84fe..bedecaa69 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ThrownExpBottleController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ThrownExpBottleController.java @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity.nonliving; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -16,7 +13,9 @@ import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_13_R2.EntityThrownExpBottle; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class ThrownExpBottleController extends MobEntityController { @@ -30,11 +29,6 @@ public ThrownExpBottle getBukkitEntity() { } public static class EntityThrownExpBottleNPC extends EntityThrownExpBottle implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityThrownExpBottleNPC(World world) { @@ -46,6 +40,20 @@ public EntityThrownExpBottleNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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/nonliving/ThrownPotionController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ThrownPotionController.java index b9a8319e6..3aa7ef00c 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ThrownPotionController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ThrownPotionController.java @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity.nonliving; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -16,8 +13,10 @@ import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_13_R2.EntityPotion; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.Items; import net.minecraft.server.v1_13_R2.NBTTagCompound; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class ThrownPotionController extends MobEntityController { @@ -31,11 +30,6 @@ public ThrownPotion getBukkitEntity() { } public static class EntityThrownPotionNPC extends EntityPotion implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityThrownPotionNPC(World world) { @@ -47,6 +41,20 @@ public EntityThrownPotionNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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/nonliving/ThrownTridentController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ThrownTridentController.java index 1b343aaa3..31253441e 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ThrownTridentController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ThrownTridentController.java @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity.nonliving; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -16,7 +13,9 @@ import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_13_R2.EntityThrownTrident; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class ThrownTridentController extends MobEntityController { @@ -30,11 +29,6 @@ public Trident getBukkitEntity() { } public static class EntityThrownTridentNPC extends EntityThrownTrident implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityThrownTridentNPC(World world) { @@ -46,6 +40,20 @@ public EntityThrownTridentNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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/nonliving/TippedArrowController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/TippedArrowController.java index 639c59a97..56a181193 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/TippedArrowController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/TippedArrowController.java @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity.nonliving; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -16,7 +13,9 @@ import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_13_R2.EntityTippedArrow; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class TippedArrowController extends MobEntityController { @@ -30,11 +29,6 @@ public Arrow getBukkitEntity() { } public static class EntityTippedArrowNPC extends EntityTippedArrow implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityTippedArrowNPC(World world) { @@ -46,6 +40,20 @@ public EntityTippedArrowNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @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/nonliving/WitherSkullController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/WitherSkullController.java index d4b4dd0b4..db9c2fd18 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/WitherSkullController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/WitherSkullController.java @@ -1,8 +1,5 @@ package net.citizensnpcs.nms.v1_13_R2.entity.nonliving; -import net.minecraft.server.v1_13_R2.Tag; -import net.minecraft.server.v1_13_R2.FluidType; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; @@ -16,7 +13,9 @@ import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_13_R2.EntityWitherSkull; +import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; +import net.minecraft.server.v1_13_R2.Tag; import net.minecraft.server.v1_13_R2.World; public class WitherSkullController extends MobEntityController { @@ -30,27 +29,31 @@ public WitherSkull getBukkitEntity() { } public static class EntityWitherSkullNPC extends EntityWitherSkull implements NPCHolder { - @Override - public boolean b(Tag tag) { - double mx = motX; double my = motY; double mz = motZ; boolean res = super.b(tag); if (!npc.isPushableByFluids()) { motX = mx; motY = my; motZ = mz; } return res; - } - private final CitizensNPC npc; public EntityWitherSkullNPC(World world) { this(world, null); } - @Override - public boolean d(NBTTagCompound save) { - return npc == null ? super.d(save) : false; - } - public EntityWitherSkullNPC(World world, NPC npc) { super(world); this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + double mx = motX; + double my = motY; + double mz = motZ; + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + motX = mx; + motY = my; + motZ = mz; + } + return res; + } + @Override public void collide(net.minecraft.server.v1_13_R2.Entity entity) { // this method is called by both the entities involved - cancelling @@ -61,6 +64,11 @@ public void collide(net.minecraft.server.v1_13_R2.Entity entity) { } } + @Override + public boolean d(NBTTagCompound save) { + return npc == null ? super.d(save) : false; + } + @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 6ed16bb02..5a6e56951 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 @@ -1466,7 +1466,7 @@ public void stop() { @Override public void update() { updateNavigation(navigation); - }; + } } private static class NavigationIterable implements Iterable { diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/PlayerNavigation.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/PlayerNavigation.java index 2843877bf..ebd0ffdda 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/PlayerNavigation.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/PlayerNavigation.java @@ -1,11 +1,33 @@ package net.citizensnpcs.nms.v1_13_R2.util; +import java.lang.reflect.Method; + import net.citizensnpcs.api.util.BoundingBox; import net.citizensnpcs.nms.v1_13_R2.entity.EntityHumanNPC; import net.citizensnpcs.util.NMS; -import net.minecraft.server.v1_13_R2.*; - -import java.lang.reflect.Method; +import net.minecraft.server.v1_13_R2.AttributeInstance; +import net.minecraft.server.v1_13_R2.Block; +import net.minecraft.server.v1_13_R2.BlockPosition; +import net.minecraft.server.v1_13_R2.Blocks; +import net.minecraft.server.v1_13_R2.ChunkCache; +import net.minecraft.server.v1_13_R2.Entity; +import net.minecraft.server.v1_13_R2.EntityInsentient; +import net.minecraft.server.v1_13_R2.EntityTypes; +import net.minecraft.server.v1_13_R2.GenericAttributes; +import net.minecraft.server.v1_13_R2.IBlockData; +import net.minecraft.server.v1_13_R2.MathHelper; +import net.minecraft.server.v1_13_R2.MethodProfiler; +import net.minecraft.server.v1_13_R2.NavigationAbstract; +import net.minecraft.server.v1_13_R2.PathEntity; +import net.minecraft.server.v1_13_R2.PathMode; +import net.minecraft.server.v1_13_R2.PathPoint; +import net.minecraft.server.v1_13_R2.PathType; +import net.minecraft.server.v1_13_R2.Pathfinder; +import net.minecraft.server.v1_13_R2.PathfinderAbstract; +import net.minecraft.server.v1_13_R2.PathfinderNormal; +import net.minecraft.server.v1_13_R2.SystemUtils; +import net.minecraft.server.v1_13_R2.Vec3D; +import net.minecraft.server.v1_13_R2.World; public class PlayerNavigation extends NavigationAbstract { protected EntityHumanNPC a; @@ -90,13 +112,7 @@ private boolean a(int paramInt1, int paramInt2, int paramInt3, int paramInt4, in if (d1 * paramDouble1 + d2 * paramDouble2 >= 0.0D) { PathType localPathType = this.o.a(this.b, k, paramInt2 - 1, m, this.a, paramInt4, paramInt5, paramInt6, true, true); - if (localPathType == PathType.WATER) { - return false; - } - if (localPathType == PathType.LAVA) { - return false; - } - if (localPathType == PathType.OPEN) { + if ((localPathType == PathType.WATER) || (localPathType == PathType.LAVA) || (localPathType == PathType.OPEN)) { return false; } localPathType = this.o.a(this.b, k, paramInt2, m, this.a, paramInt4, paramInt5, paramInt6, true, @@ -163,21 +179,6 @@ protected void a(Vec3D paramVec3D) { } } - private static long getMonotonicMillis() { - try { - return SystemUtils.getMonotonicMillis(); - } catch (NoSuchMethodError ex) { - try { - return (long) GET_MONOTONIC_MILLIS.invoke(null); - } catch (Throwable ex2) { - ex2.printStackTrace(); - return 0; - } - } - } - - private static final Method GET_MONOTONIC_MILLIS = NMS.getMethod(SystemUtils.class, "b", false); - @Override protected boolean a(Vec3D paramVec3D1, Vec3D paramVec3D2, int paramInt1, int paramInt2, int paramInt3) { int i = MathHelper.floor(paramVec3D1.x); @@ -488,9 +489,6 @@ public PathEntity superb(BlockPosition paramBlockPosition) { return localPathEntity; } - private static final Method PROFILER_ENTER = NMS.getMethod(MethodProfiler.class, "a", false, String.class); - private static final Method PROFILER_EXIT = NMS.getMethod(MethodProfiler.class, "e", false); - protected void superE_() { if (this.c == null) { return; @@ -543,4 +541,23 @@ private static EntityInsentient getDummyInsentient(EntityHumanNPC from, World wo return new EntityInsentient(EntityTypes.PLAYER, world) { }; } + + private static long getMonotonicMillis() { + try { + return SystemUtils.getMonotonicMillis(); + } catch (NoSuchMethodError ex) { + try { + return (long) GET_MONOTONIC_MILLIS.invoke(null); + } catch (Throwable ex2) { + ex2.printStackTrace(); + return 0; + } + } + } + + private static final Method GET_MONOTONIC_MILLIS = NMS.getMethod(SystemUtils.class, "b", false); + + private static final Method PROFILER_ENTER = NMS.getMethod(MethodProfiler.class, "a", false, String.class); + + private static final Method PROFILER_EXIT = NMS.getMethod(MethodProfiler.class, "e", false); } 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 6113292ed..8c523eab5 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 @@ -421,7 +421,7 @@ public PathPoint b() { for (var2 = new BlockPosition( this.b); (this.a.getType(var2).isAir() || this.a.getType(var2).a(this.a, var2, PathMode.LAND)) && var2.getY() > 0; var2 = var2.down()) { - ; + } var1 = var2.up().getY(); 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 7c0d00e0f..919512ab7 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -22,8 +20,11 @@ import net.minecraft.server.v1_14_R1.EntityBoat; import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; +import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; public class BatController extends MobEntityController { @@ -51,11 +52,6 @@ public NPC getNPC() { } public static class EntityBatNPC extends EntityBat implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityBatNPC(EntityTypes types, World world) { @@ -70,6 +66,24 @@ public EntityBatNPC(EntityTypes types, World world, NPC npc } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 56719eb91..3c8351c72 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -22,8 +20,11 @@ import net.minecraft.server.v1_14_R1.EntityBoat; import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; +import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; public class BlazeController extends MobEntityController { @@ -51,11 +52,6 @@ public NPC getNPC() { } public static class EntityBlazeNPC extends EntityBlaze implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityBlazeNPC(EntityTypes types, World world) { @@ -67,6 +63,24 @@ public EntityBlazeNPC(EntityTypes types, World world, NPC this.npc = (CitizensNPC) npc; } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 c96688271..cc1d341c4 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -24,9 +22,11 @@ import net.minecraft.server.v1_14_R1.EntityCat; import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -55,12 +55,8 @@ public NPC getNPC() { } public static class EntityCatNPC extends EntityCat implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityCatNPC(EntityTypes types, World world) { @@ -89,6 +85,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -96,6 +100,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 f03d5aa3c..e852e7dda 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -23,9 +21,11 @@ import net.minecraft.server.v1_14_R1.EntityCaveSpider; import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -54,11 +54,6 @@ public NPC getNPC() { } public static class EntityCaveSpiderNPC extends EntityCaveSpider implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityCaveSpiderNPC(EntityTypes types, World world) { @@ -77,6 +72,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -84,6 +87,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 cfb75d64a..c6a7056db 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -24,9 +22,11 @@ import net.minecraft.server.v1_14_R1.EntityChicken; import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -55,12 +55,8 @@ public NPC getNPC() { } public static class EntityChickenNPC extends EntityChicken implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityChickenNPC(EntityTypes types, World world) { @@ -90,6 +86,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -97,6 +101,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 825884a69..c0e2ae27a 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -26,11 +24,13 @@ import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.EnumHand; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.ItemStack; import net.minecraft.server.v1_14_R1.Items; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -59,11 +59,6 @@ public NPC getNPC() { } public static class EntityCodNPC extends EntityCod implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityCodNPC(EntityTypes types, World world) { @@ -85,6 +80,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean a(EntityHuman entityhuman, EnumHand enumhand) { if (npc == null || !npc.isProtected()) @@ -103,6 +106,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 5fff13b3c..632ec2707 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -26,11 +24,13 @@ import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.EnumHand; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.ItemStack; import net.minecraft.server.v1_14_R1.Items; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -59,12 +59,8 @@ public NPC getNPC() { } public static class EntityCowNPC extends EntityCow implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityCowNPC(EntityTypes types, World world) { @@ -93,6 +89,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean a(EntityHuman entityhuman, EnumHand enumhand) { if (npc == null || !npc.isProtected()) @@ -111,6 +115,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 fd252c608..ac521b5d5 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -24,9 +22,11 @@ import net.minecraft.server.v1_14_R1.EntityLightning; import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -55,12 +55,8 @@ public NPC getNPC() { } public static class EntityCreeperNPC extends EntityCreeper implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private boolean allowPowered; + private final CitizensNPC npc; public EntityCreeperNPC(EntityTypes types, World world) { @@ -79,6 +75,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -86,6 +90,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 42aa12589..996e84450 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -24,10 +22,12 @@ import net.minecraft.server.v1_14_R1.EntityDolphin; import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.GenericAttributes; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -56,11 +56,6 @@ public NPC getNPC() { } public static class EntityDolphinNPC extends EntityDolphin implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityDolphinNPC(EntityTypes types, World world) { @@ -84,6 +79,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -91,6 +94,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 6130b41a3..4892cb3be 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -23,9 +21,11 @@ import net.minecraft.server.v1_14_R1.EntityDrowned; import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -54,11 +54,6 @@ public NPC getNPC() { } public static class EntityDrownedNPC extends EntityDrowned implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityDrownedNPC(EntityTypes types, World world) { @@ -77,6 +72,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -84,6 +87,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 2a096d411..491c6393a 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -22,8 +20,10 @@ import net.minecraft.server.v1_14_R1.EntityEnderDragon; import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -52,11 +52,6 @@ public NPC getNPC() { } public static class EntityEnderDragonNPC extends EntityEnderDragon implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityEnderDragonNPC(EntityTypes types, World world) { @@ -68,6 +63,24 @@ public EntityEnderDragonNPC(EntityTypes types, Worl this.npc = (CitizensNPC) npc; } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 22809ad5e..d1b986830 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -23,9 +21,11 @@ import net.minecraft.server.v1_14_R1.EntityEnderman; import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -54,11 +54,6 @@ public NPC getNPC() { } public static class EntityEndermanNPC extends EntityEnderman implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityEndermanNPC(EntityTypes types, World world) { @@ -85,6 +80,14 @@ public boolean a(double d1, double d2, double d3, boolean b) { return false; } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -92,6 +95,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 a0b004cea..92c7fcdce 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -23,9 +21,11 @@ import net.minecraft.server.v1_14_R1.EntityEndermite; import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -54,11 +54,6 @@ public NPC getNPC() { } public static class EntityEndermiteNPC extends EntityEndermite implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityEndermiteNPC(EntityTypes types, World world) { @@ -77,6 +72,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -84,6 +87,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override protected void checkDespawn() { if (npc == null) { diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/EntityHumanNPC.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/EntityHumanNPC.java index ef12d0bae..8554521f3 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/EntityHumanNPC.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/EntityHumanNPC.java @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import java.io.IOException; import java.net.Socket; @@ -112,11 +109,11 @@ public boolean a(EntityPlayer entityplayer) { } public float a(PathType pathtype) { - return this.bz.containsKey(pathtype) ? this.bz.get(pathtype).floatValue() : pathtype.a(); + return this.bz.containsKey(pathtype) ? this.bz.get(pathtype) : pathtype.a(); } public void a(PathType pathtype, float f) { - this.bz.put(pathtype, Float.valueOf(f)); + this.bz.put(pathtype, f); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/EvokerController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/EvokerController.java index 6b09cd6fa..0b3a7b4a1 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -23,9 +21,11 @@ import net.minecraft.server.v1_14_R1.EntityEvoker; import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -40,11 +40,6 @@ public Evoker getBukkitEntity() { } public static class EntityEvokerNPC extends EntityEvoker implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityEvokerNPC(EntityTypes types, World world) { @@ -63,6 +58,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -70,6 +73,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 3fd7e5334..ecf11098b 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -24,9 +22,11 @@ import net.minecraft.server.v1_14_R1.EntityFox; import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -41,12 +41,8 @@ public Fox getBukkitEntity() { } public static class EntityFoxNPC extends EntityFox implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityFoxNPC(EntityTypes types, World world) { @@ -75,6 +71,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -82,6 +86,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 6a66422ae..b2ffb93a5 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -22,8 +20,11 @@ import net.minecraft.server.v1_14_R1.EntityGhast; import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; +import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; public class GhastController extends MobEntityController { @@ -37,11 +38,6 @@ public Ghast getBukkitEntity() { } public static class EntityGhastNPC extends EntityGhast implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityGhastNPC(EntityTypes types, World world) { @@ -53,6 +49,24 @@ public EntityGhastNPC(EntityTypes types, World world, NPC this.npc = (CitizensNPC) npc; } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 546331e42..596426914 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -23,9 +21,11 @@ import net.minecraft.server.v1_14_R1.EntityGiantZombie; import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -40,11 +40,6 @@ public Giant getBukkitEntity() { } public static class EntityGiantNPC extends EntityGiantZombie implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityGiantNPC(EntityTypes types, World world) { @@ -63,6 +58,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -70,6 +73,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 c21668069..94f1c631a 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -23,9 +21,11 @@ import net.minecraft.server.v1_14_R1.EntityGuardian; import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -40,11 +40,6 @@ public Guardian getBukkitEntity() { } public static class EntityGuardianNPC extends EntityGuardian implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityGuardianNPC(EntityTypes types, World world) { @@ -63,6 +58,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -70,6 +73,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 41abbe8e7..3f95a3ecb 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -23,9 +21,11 @@ import net.minecraft.server.v1_14_R1.EntityGuardianElder; import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -40,11 +40,6 @@ public ElderGuardian getBukkitEntity() { } public static class EntityGuardianElderNPC extends EntityGuardianElder implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityGuardianElderNPC(EntityTypes types, World world) { @@ -63,6 +58,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -70,6 +73,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 052af7542..896edb3fb 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -12,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -28,10 +26,12 @@ import net.minecraft.server.v1_14_R1.EntityHorse; import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.GenericAttributes; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -52,13 +52,10 @@ public void spawn(Location at, NPC npc) { } public static class EntityHorseNPC extends EntityHorse implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private double baseMovementSpeed; + private boolean calledNMSHeight = false; + private final CitizensNPC npc; private boolean riding; @@ -94,6 +91,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -101,6 +106,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 f6297f4fb..8e11d9966 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -12,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -28,10 +26,12 @@ import net.minecraft.server.v1_14_R1.EntityHorseDonkey; import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.GenericAttributes; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -52,13 +52,10 @@ public void spawn(Location at, NPC npc) { } public static class EntityHorseDonkeyNPC extends EntityHorseDonkey implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private double baseMovementSpeed; + boolean calledNMSHeight = false; + private final CitizensNPC npc; private boolean riding; @@ -93,6 +90,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -100,6 +105,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 0ad9daa7d..b8c19d495 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -12,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -28,10 +26,12 @@ import net.minecraft.server.v1_14_R1.EntityHorseMule; import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.GenericAttributes; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -52,13 +52,10 @@ public void spawn(Location at, NPC npc) { } public static class EntityHorseMuleNPC extends EntityHorseMule implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private double baseMovementSpeed; + boolean calledNMSHeight = false; + private final CitizensNPC npc; private boolean riding; @@ -93,6 +90,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -100,6 +105,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 ab134243a..f82937b3b 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -12,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -28,10 +26,12 @@ import net.minecraft.server.v1_14_R1.EntityHorseSkeleton; import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.GenericAttributes; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -52,13 +52,10 @@ public void spawn(Location at, NPC npc) { } public static class EntityHorseSkeletonNPC extends EntityHorseSkeleton implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private double baseMovementSpeed; + boolean calledNMSHeight = false; + private final CitizensNPC npc; private boolean riding; @@ -94,6 +91,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -101,6 +106,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 9409be13c..0749a5a44 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -12,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -28,10 +26,12 @@ import net.minecraft.server.v1_14_R1.EntityHorseZombie; import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.GenericAttributes; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -52,13 +52,10 @@ public void spawn(Location at, NPC npc) { } public static class EntityHorseZombieNPC extends EntityHorseZombie implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private double baseMovementSpeed; + boolean calledNMSHeight = false; + private final CitizensNPC npc; private boolean riding; @@ -94,6 +91,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -101,6 +106,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean ca() { if (npc != null && riding) { diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/HumanController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/HumanController.java index ec4a74e46..fcb1c3b8a 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/HumanController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/HumanController.java @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import java.util.UUID; 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 7a174163d..c7a35a66c 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -23,9 +21,11 @@ import net.minecraft.server.v1_14_R1.EntityIllagerIllusioner; import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -40,11 +40,6 @@ public Illusioner getBukkitEntity() { } public static class EntityIllusionerNPC extends EntityIllagerIllusioner implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityIllusionerNPC(EntityTypes types, World world) { @@ -63,6 +58,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -70,6 +73,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 88a82b60b..76770aed6 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -23,9 +21,11 @@ import net.minecraft.server.v1_14_R1.EntityIronGolem; import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -40,11 +40,6 @@ public IronGolem getBukkitEntity() { } public static class EntityIronGolemNPC extends EntityIronGolem implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityIronGolemNPC(EntityTypes types, World world) { @@ -63,6 +58,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -70,6 +73,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 8dd53b31d..37d7a746f 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -12,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -27,9 +25,11 @@ import net.minecraft.server.v1_14_R1.EntityLlama; import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -50,12 +50,8 @@ public void spawn(Location at, NPC npc) { } public static class EntityLlamaNPC extends EntityLlama implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityLlamaNPC(EntityTypes types, World world) { @@ -88,6 +84,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -95,6 +99,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 037fc2504..9776cd836 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_14_R1.util.PlayerControllerMove; @@ -25,9 +23,11 @@ import net.minecraft.server.v1_14_R1.EntityMagmaCube; import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -42,11 +42,6 @@ public MagmaCube getBukkitEntity() { } public static class EntityMagmaCubeNPC extends EntityMagmaCube implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityMagmaCubeNPC(EntityTypes types, World world) { @@ -69,6 +64,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -76,6 +79,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override protected void checkDespawn() { if (npc == null) { diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/MobEntityController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/MobEntityController.java index caefefb50..a152fb79e 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/MobEntityController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/MobEntityController.java @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import java.lang.invoke.MethodHandle; import java.lang.reflect.Constructor; 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 26c54456a..6dd7d6659 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -26,9 +24,11 @@ import net.minecraft.server.v1_14_R1.EntityMushroomCow; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.EnumHand; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -44,12 +44,8 @@ public MushroomCow getBukkitEntity() { } public static class EntityMushroomCowNPC extends EntityMushroomCow implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityMushroomCowNPC(EntityTypes types, World world) { @@ -79,6 +75,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean a(EntityHuman entityhuman, EnumHand enumhand) { if (npc == null || !npc.isProtected()) @@ -93,6 +97,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 88cfbbd5f..5d28a8b14 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -24,9 +22,11 @@ import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityOcelot; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -41,12 +41,8 @@ public Ocelot getBukkitEntity() { } public static class EntityOcelotNPC extends EntityOcelot implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityOcelotNPC(EntityTypes types, World world) { @@ -76,6 +72,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -83,6 +87,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 739c113a6..301abcbf7 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -24,9 +22,11 @@ import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityPanda; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -41,12 +41,8 @@ public Panda getBukkitEntity() { } public static class EntityPandaNPC extends EntityPanda implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityPandaNPC(EntityTypes types, World world) { @@ -75,6 +71,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -82,6 +86,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 11fbccba6..20ccb48c4 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -24,8 +22,11 @@ import net.minecraft.server.v1_14_R1.EntityParrot; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.EnumHand; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; +import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; public class ParrotController extends MobEntityController { @@ -39,11 +40,6 @@ public Parrot getBukkitEntity() { } public static class EntityParrotNPC extends EntityParrot implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityParrotNPC(EntityTypes types, World world) { @@ -55,6 +51,14 @@ public EntityParrotNPC(EntityTypes types, World world, N this.npc = (CitizensNPC) npc; } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean a(EntityHuman paramEntityHuman, EnumHand paramEnumHand) { // block feeding @@ -64,6 +68,16 @@ public boolean a(EntityHuman paramEntityHuman, EnumHand paramEnumHand) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 1e41300d4..ec87457c0 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -26,9 +24,11 @@ import net.minecraft.server.v1_14_R1.EntityPhantom; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.EnumDifficulty; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -43,11 +43,6 @@ public Phantom getBukkitEntity() { } public static class EntityPhantomNPC extends EntityPhantom implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityPhantomNPC(EntityTypes types, World world) { @@ -72,6 +67,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -79,6 +82,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 9221202f4..5a6a9b212 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -25,9 +23,11 @@ import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityPig; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -42,12 +42,8 @@ public Pig getBukkitEntity() { } public static class EntityPigNPC extends EntityPig implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityPigNPC(EntityTypes types, World world) { @@ -77,6 +73,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -84,6 +88,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 dc2532fa8..1f9e4f115 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -23,9 +21,11 @@ import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityPigZombie; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -41,11 +41,6 @@ public PigZombie getBukkitEntity() { } public static class EntityPigZombieNPC extends EntityPigZombie implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityPigZombieNPC(EntityTypes types, World world) { @@ -64,6 +59,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -71,6 +74,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 28024d01c..fbe4ed3af 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -24,9 +22,11 @@ import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityPillager; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -41,12 +41,8 @@ public Pillager getBukkitEntity() { } public static class EntityPillagerNPC extends EntityPillager implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityPillagerNPC(EntityTypes types, World world) { @@ -75,6 +71,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -82,6 +86,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 8315b85da..c31cb1b5c 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -23,8 +21,11 @@ import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityPolarBear; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; +import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; public class PolarBearController extends MobEntityController { @@ -38,11 +39,6 @@ public PolarBear getBukkitEntity() { } public static class EntityPolarBearNPC extends EntityPolarBear implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - boolean calledNMSHeight = false; private final CitizensNPC npc; @@ -67,6 +63,24 @@ public void a(DataWatcherObject datawatcherobject) { super.a(datawatcherobject); } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 ba17dd042..b02d34ce7 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -29,11 +27,13 @@ import net.minecraft.server.v1_14_R1.EntitySize; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.EnumHand; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.ItemStack; import net.minecraft.server.v1_14_R1.Items; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -48,11 +48,6 @@ public PufferFish getBukkitEntity() { } public static class EntityPufferFishNPC extends EntityPufferFish implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityPufferFishNPC(EntityTypes types, World world) { @@ -74,6 +69,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean a(EntityHuman entityhuman, EnumHand enumhand) { if (npc == null || !npc.isProtected()) @@ -100,6 +103,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 cea180aca..2711d3cc7 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -26,9 +24,11 @@ import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityRabbit; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -43,11 +43,6 @@ public Rabbit getBukkitEntity() { } public static class EntityRabbitNPC extends EntityRabbit implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - boolean calledNMSHeight = false; private final CitizensNPC npc; @@ -79,6 +74,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -86,6 +89,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 229b3e9c0..8935a0e47 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -24,9 +22,11 @@ import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityRavager; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -41,12 +41,8 @@ public Ravager getBukkitEntity() { } public static class EntityRavagerNPC extends EntityRavager implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityRavagerNPC(EntityTypes types, World world) { @@ -75,6 +71,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -82,6 +86,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 5c05ec270..ca9338bd4 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -26,11 +24,13 @@ import net.minecraft.server.v1_14_R1.EntitySalmon; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.EnumHand; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.ItemStack; import net.minecraft.server.v1_14_R1.Items; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -45,11 +45,6 @@ public Salmon getBukkitEntity() { } public static class EntitySalmonNPC extends EntitySalmon implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntitySalmonNPC(EntityTypes types, World world) { @@ -71,6 +66,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean a(EntityHuman entityhuman, EnumHand enumhand) { if (npc == null || !npc.isProtected()) @@ -89,6 +92,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 398a13795..7cb8167b2 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -24,9 +22,11 @@ import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntitySheep; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -41,11 +41,6 @@ public Sheep getBukkitEntity() { } public static class EntitySheepNPC extends EntitySheep implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - boolean calledNMSHeight = false; private final CitizensNPC npc; @@ -77,6 +72,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -84,6 +87,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 7268cc459..fa8876f08 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -24,9 +22,11 @@ import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityShulker; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -41,11 +41,6 @@ public Shulker getBukkitEntity() { } public static class EntityShulkerNPC extends EntityShulker implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityShulkerNPC(EntityTypes types, World world) { @@ -64,6 +59,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -71,6 +74,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 92e4f25be..a4ed0ba52 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -23,9 +21,11 @@ import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntitySilverfish; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -40,11 +40,6 @@ public Silverfish getBukkitEntity() { } public static class EntitySilverfishNPC extends EntitySilverfish implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntitySilverfishNPC(EntityTypes types, World world) { @@ -63,6 +58,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -70,6 +73,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 dfe2bb9ef..ae97f42c0 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -23,9 +21,11 @@ import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntitySkeleton; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -40,11 +40,6 @@ public Skeleton getBukkitEntity() { } public static class EntitySkeletonNPC extends EntitySkeleton implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntitySkeletonNPC(EntityTypes types, World world) { @@ -63,6 +58,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -70,6 +73,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 f5db03990..f10912320 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -23,9 +21,11 @@ import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntitySkeletonStray; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -40,11 +40,6 @@ public Stray getBukkitEntity() { } public static class EntityStrayNPC extends EntitySkeletonStray implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityStrayNPC(EntityTypes types, World world) { @@ -63,6 +58,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -70,6 +73,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 d907cef10..aa7050bde 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -23,9 +21,11 @@ import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntitySkeletonWither; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -40,11 +40,6 @@ public WitherSkeleton getBukkitEntity() { } public static class EntitySkeletonWitherNPC extends EntitySkeletonWither implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntitySkeletonWitherNPC(EntityTypes types, World world) { @@ -63,6 +58,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -70,6 +73,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 325438aca..b1f6871f5 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_14_R1.util.PlayerControllerMove; @@ -25,9 +23,11 @@ import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntitySlime; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -42,11 +42,6 @@ public Slime getBukkitEntity() { } public static class EntitySlimeNPC extends EntitySlime implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntitySlimeNPC(EntityTypes types, World world) { @@ -69,6 +64,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -76,6 +79,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 1a325db50..8aea4e962 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -23,10 +21,12 @@ import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntitySnowman; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.GameRules; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -41,11 +41,6 @@ public Snowman getBukkitEntity() { } public static class EntitySnowmanNPC extends EntitySnowman implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntitySnowmanNPC(EntityTypes types, World world) { @@ -64,6 +59,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -71,6 +74,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 71d3286bd..1eb31a2d0 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -23,9 +21,11 @@ import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntitySpider; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -40,11 +40,6 @@ public Spider getBukkitEntity() { } public static class EntitySpiderNPC extends EntitySpider implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntitySpiderNPC(EntityTypes types, World world) { @@ -63,6 +58,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -70,6 +73,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 58de1691e..9f0fd9d98 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -23,9 +21,11 @@ import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntitySquid; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -40,11 +40,6 @@ public Squid getBukkitEntity() { } public static class EntitySquidNPC extends EntitySquid implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntitySquidNPC(EntityTypes types, World world) { @@ -63,6 +58,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -70,6 +73,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 92e355415..79b46722c 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import java.lang.invoke.MethodHandle; @@ -14,6 +11,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -29,9 +27,11 @@ import net.minecraft.server.v1_14_R1.EntityLlamaTrader; import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -52,12 +52,8 @@ public void spawn(Location at, NPC npc) { } public static class EntityTraderLlamaNPC extends EntityLlamaTrader implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityTraderLlamaNPC(EntityTypes types, World world) { @@ -91,6 +87,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -98,6 +102,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 47191260f..57a11dc2f 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -26,11 +24,13 @@ import net.minecraft.server.v1_14_R1.EntityTropicalFish; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.EnumHand; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.ItemStack; import net.minecraft.server.v1_14_R1.Items; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -45,11 +45,6 @@ public TropicalFish getBukkitEntity() { } public static class EntityTropicalFishNPC extends EntityTropicalFish implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityTropicalFishNPC(EntityTypes types, World world) { @@ -71,6 +66,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean a(EntityHuman entityhuman, EnumHand enumhand) { if (npc == null || !npc.isProtected()) @@ -89,6 +92,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 ac2f73610..b19826ea8 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -26,9 +24,11 @@ import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityTurtle; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -43,11 +43,6 @@ public Turtle getBukkitEntity() { } public static class EntityTurtleNPC extends EntityTurtle implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityTurtleNPC(EntityTypes types, World world) { @@ -70,6 +65,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -77,6 +80,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 12a23f326..a9b902d03 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -22,8 +20,11 @@ import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.EntityVex; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; +import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; public class VexController extends MobEntityController { @@ -37,11 +38,6 @@ public Vex getBukkitEntity() { } public static class EntityVexNPC extends EntityVex implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityVexNPC(EntityTypes types, World world) { @@ -56,6 +52,24 @@ public EntityVexNPC(EntityTypes types, World world, NPC npc } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 4133aac1b..c01ff2583 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import java.util.List; import java.util.TreeMap; @@ -14,6 +11,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -31,10 +29,12 @@ import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.EntityVillager; import net.minecraft.server.v1_14_R1.EnumHand; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.MerchantRecipe; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -49,13 +49,10 @@ public Villager getBukkitEntity() { } public static class EntityVillagerNPC extends EntityVillager implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private TreeMap behaviorMap; + private boolean blockingATrade; + boolean calledNMSHeight = false; private final CitizensNPC npc; private BehaviorController previousBehaviorController; @@ -87,6 +84,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean a(EntityHuman entityhuman, EnumHand enumhand) { if (npc != null && npc.data().get(NPC.VILLAGER_BLOCK_TRADES, true)) { @@ -106,6 +111,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 102137ac3..d05fca462 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -24,9 +22,11 @@ import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.EntityVindicator; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -41,11 +41,6 @@ public Vindicator getBukkitEntity() { } public static class EntityVindicatorNPC extends EntityVindicator implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - boolean calledNMSHeight = false; private final CitizensNPC npc; @@ -77,6 +72,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -84,6 +87,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 89d758d41..f96860a25 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import java.util.List; import java.util.TreeMap; @@ -14,6 +11,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -30,10 +28,12 @@ import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.EntityVillagerTrader; import net.minecraft.server.v1_14_R1.EnumHand; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.MerchantRecipe; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -48,13 +48,10 @@ public WanderingTrader getBukkitEntity() { } public static class EntityWanderingTraderNPC extends EntityVillagerTrader implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private TreeMap behaviorMap; + private boolean blockingATrade; + private boolean blockTrades = true; boolean calledNMSHeight = false; private final CitizensNPC npc; @@ -86,6 +83,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean a(EntityHuman entityhuman, EnumHand enumhand) { if (npc != null && blockTrades) { @@ -105,6 +110,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 0dd72c506..30a4e22b3 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -23,9 +21,11 @@ import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.EntityWitch; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -40,11 +40,6 @@ public Witch getBukkitEntity() { } public static class EntityWitchNPC extends EntityWitch implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityWitchNPC(EntityTypes types, World world) { @@ -63,6 +58,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -70,6 +73,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 c5540ec3c..b2450cea6 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -22,8 +20,11 @@ import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.EntityWither; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; +import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; public class WitherController extends MobEntityController { @@ -37,11 +38,6 @@ public Wither getBukkitEntity() { } public static class EntityWitherNPC extends EntityWither implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityWitherNPC(EntityTypes types, World world) { @@ -53,6 +49,24 @@ public EntityWitherNPC(EntityTypes types, World world, N this.npc = (CitizensNPC) npc; } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 f012848ae..15504c179 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -12,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -26,9 +24,11 @@ import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.EntityWolf; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -43,11 +43,6 @@ public Wolf getBukkitEntity() { } public static class EntityWolfNPC extends EntityWolf implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - boolean calledNMSHeight = false; private final CitizensNPC npc; @@ -79,6 +74,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -86,6 +89,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 ea84be313..0b8e730de 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -23,9 +21,11 @@ import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.EntityZombie; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -40,11 +40,6 @@ public Zombie getBukkitEntity() { } public static class EntityZombieNPC extends EntityZombie implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityZombieNPC(EntityTypes types, World world) { @@ -63,6 +58,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -70,6 +73,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 97bb719a5..2c21866b2 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -23,9 +21,11 @@ import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.EntityZombieHusk; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -40,11 +40,6 @@ public Husk getBukkitEntity() { } public static class EntityZombieHuskNPC extends EntityZombieHusk implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityZombieHuskNPC(EntityTypes types, World world) { @@ -63,6 +58,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -70,6 +73,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 b09dd3449..7da6a883e 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 @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -11,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -23,9 +21,11 @@ import net.minecraft.server.v1_14_R1.EntityMinecartAbstract; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.EntityZombieVillager; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.SoundEffect; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -40,11 +40,6 @@ public ZombieVillager getBukkitEntity() { } public static class EntityZombieVillagerNPC extends EntityZombieVillager implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityZombieVillagerNPC(EntityTypes types, World world) { @@ -63,6 +58,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -70,6 +73,16 @@ public void b(float f, float f1) { } } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override protected void checkDespawn() { if (npc == null) { diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/AreaEffectCloudController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/AreaEffectCloudController.java index b500fdac9..a2d7211f5 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/AreaEffectCloudController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/AreaEffectCloudController.java @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity.nonliving;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -18,7 +15,10 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_14_R1.EntityAreaEffectCloud; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.NBTTagCompound; +import net.minecraft.server.v1_14_R1.Tag; +import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; public class AreaEffectCloudController extends MobEntityController { @@ -46,11 +46,6 @@ public NPC getNPC() { } public static class EntityAreaEffectCloudNPC extends EntityAreaEffectCloud implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityAreaEffectCloudNPC(EntityTypes types, World world) { @@ -62,6 +57,16 @@ public EntityAreaEffectCloudNPC(EntityTypes typ this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_14_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ArmorStandController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ArmorStandController.java index 29e4134c3..741413c35 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ArmorStandController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ArmorStandController.java @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity.nonliving;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -23,7 +20,9 @@ import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.EnumHand; import net.minecraft.server.v1_14_R1.EnumInteractionResult; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.NBTTagCompound; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -52,11 +51,6 @@ public NPC getNPC() { } public static class EntityArmorStandNPC extends EntityArmorStand implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityArmorStandNPC(EntityTypes types, World world) { @@ -79,6 +73,16 @@ public EnumInteractionResult a(EntityHuman entityhuman, Vec3D vec3d, EnumHand en return event.isCancelled() ? EnumInteractionResult.FAIL : EnumInteractionResult.SUCCESS; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_14_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/BoatController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/BoatController.java index a00e4758d..f4ed48d72 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/BoatController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/BoatController.java @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity.nonliving;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -18,7 +15,10 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_14_R1.EntityBoat; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.NBTTagCompound; +import net.minecraft.server.v1_14_R1.Tag; +import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; public class BoatController extends MobEntityController { @@ -46,11 +46,6 @@ public NPC getNPC() { } public static class EntityBoatNPC extends EntityBoat implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityBoatNPC(EntityTypes types, World world) { @@ -62,6 +57,16 @@ public EntityBoatNPC(EntityTypes types, World world, NPC n this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_14_R1.Entity entity) { // this method is called by both the entities involved - cancelling @@ -99,20 +104,20 @@ public NPC getNPC() { } @Override - public void updateSize() { - if (npc == null) { - super.updateSize(); + public void tick() { + if (npc != null) { + npc.update(); } else { - NMSImpl.setSize(this, justCreated); + super.tick(); } } @Override - public void tick() { - if (npc != null) { - npc.update(); + public void updateSize() { + if (npc == null) { + super.updateSize(); } else { - super.tick(); + NMSImpl.setSize(this, justCreated); } } } diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/DragonFireballController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/DragonFireballController.java index 17ef6dd1c..66754d858 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/DragonFireballController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/DragonFireballController.java @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity.nonliving;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -18,7 +15,10 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_14_R1.EntityDragonFireball; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.NBTTagCompound; +import net.minecraft.server.v1_14_R1.Tag; +import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; public class DragonFireballController extends MobEntityController { @@ -46,11 +46,6 @@ public NPC getNPC() { } public static class EntityDragonFireballNPC extends EntityDragonFireball implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityDragonFireballNPC(EntityTypes types, World world) { @@ -62,6 +57,16 @@ public EntityDragonFireballNPC(EntityTypes types this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_14_R1.Entity entity) { // this method is called by both the entities involved - cancelling @@ -98,15 +103,6 @@ public NPC getNPC() { return npc; } - @Override - public void updateSize() { - if (npc == null) { - super.updateSize(); - } else { - NMSImpl.setSize(this, justCreated); - } - } - @Override public void tick() { if (npc != null) { @@ -118,5 +114,14 @@ public void tick() { super.tick(); } } + + @Override + public void updateSize() { + if (npc == null) { + super.updateSize(); + } else { + NMSImpl.setSize(this, justCreated); + } + } } } diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/EggController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/EggController.java index a02860528..a999196ce 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/EggController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/EggController.java @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity.nonliving;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -21,7 +18,10 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_14_R1.EntityEgg; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.NBTTagCompound; +import net.minecraft.server.v1_14_R1.Tag; +import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; import net.minecraft.server.v1_14_R1.WorldServer; @@ -57,11 +57,6 @@ public NPC getNPC() { } public static class EntityEggNPC extends EntityEgg implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityEggNPC(EntityTypes types, World world) { @@ -78,6 +73,16 @@ public EntityEggNPC(World world, NPC npc, double d0, double d1, double d2) { this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_14_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/EnderCrystalController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/EnderCrystalController.java index 4ce9f004b..0d785e0bf 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/EnderCrystalController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/EnderCrystalController.java @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity.nonliving;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -18,7 +15,10 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_14_R1.EntityEnderCrystal; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.NBTTagCompound; +import net.minecraft.server.v1_14_R1.Tag; +import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; public class EnderCrystalController extends MobEntityController { @@ -46,11 +46,6 @@ public NPC getNPC() { } public static class EntityEnderCrystalNPC extends EntityEnderCrystal implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityEnderCrystalNPC(EntityTypes types, World world) { @@ -62,6 +57,16 @@ public EntityEnderCrystalNPC(EntityTypes types, Wo this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_14_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/EnderPearlController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/EnderPearlController.java index 2a95ab7e5..0a6a25625 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/EnderPearlController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/EnderPearlController.java @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity.nonliving;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -18,7 +15,10 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_14_R1.EntityEnderPearl; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.NBTTagCompound; +import net.minecraft.server.v1_14_R1.Tag; +import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; public class EnderPearlController extends MobEntityController { @@ -46,11 +46,6 @@ public NPC getNPC() { } public static class EntityEnderPearlNPC extends EntityEnderPearl implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityEnderPearlNPC(EntityTypes types, World world) { @@ -62,6 +57,16 @@ public EntityEnderPearlNPC(EntityTypes types, World this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_14_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/EnderSignalController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/EnderSignalController.java index c2ebfcd3d..674e9d04c 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/EnderSignalController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/EnderSignalController.java @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity.nonliving;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -18,7 +15,10 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_14_R1.EntityEnderSignal; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.NBTTagCompound; +import net.minecraft.server.v1_14_R1.Tag; +import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; public class EnderSignalController extends MobEntityController { @@ -46,11 +46,6 @@ public NPC getNPC() { } public static class EntityEnderSignalNPC extends EntityEnderSignal implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityEnderSignalNPC(EntityTypes types, World world) { @@ -62,6 +57,16 @@ public EntityEnderSignalNPC(EntityTypes types, Worl this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_14_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/EvokerFangsController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/EvokerFangsController.java index d120f4233..6722cab63 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/EvokerFangsController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/EvokerFangsController.java @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity.nonliving;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -23,7 +20,9 @@ import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.EnumHand; import net.minecraft.server.v1_14_R1.EnumInteractionResult; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.NBTTagCompound; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; @@ -38,11 +37,6 @@ public EvokerFangs getBukkitEntity() { } public static class EntityEvokerFangsNPC extends EntityEvokerFangs implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityEvokerFangsNPC(EntityTypes types, World world) { @@ -65,6 +59,16 @@ public EnumInteractionResult a(EntityHuman entityhuman, Vec3D vec3d, EnumHand en return event.isCancelled() ? EnumInteractionResult.FAIL : EnumInteractionResult.SUCCESS; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_14_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ExperienceOrbController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ExperienceOrbController.java index 9de7db271..e6a92d1cf 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ExperienceOrbController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ExperienceOrbController.java @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity.nonliving;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -18,7 +15,10 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_14_R1.EntityExperienceOrb; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.NBTTagCompound; +import net.minecraft.server.v1_14_R1.Tag; +import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; public class ExperienceOrbController extends MobEntityController { @@ -32,11 +32,6 @@ public ExperienceOrb getBukkitEntity() { } public static class EntityExperienceOrbNPC extends EntityExperienceOrb implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityExperienceOrbNPC(EntityTypes types, World world) { @@ -48,6 +43,16 @@ public EntityExperienceOrbNPC(EntityTypes types, this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_14_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/FallingBlockController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/FallingBlockController.java index 1cbb1cb17..c89397e5f 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/FallingBlockController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/FallingBlockController.java @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity.nonliving;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -28,8 +25,10 @@ import net.minecraft.server.v1_14_R1.EntityFallingBlock; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.EnumMoveType; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.NBTTagCompound; +import net.minecraft.server.v1_14_R1.Tag; import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; import net.minecraft.server.v1_14_R1.WorldServer; @@ -60,11 +59,6 @@ public FallingBlock getBukkitEntity() { } public static class EntityFallingBlockNPC extends EntityFallingBlock implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityFallingBlockNPC(EntityTypes types, World world) { @@ -81,6 +75,16 @@ public EntityFallingBlockNPC(World world, NPC npc, double d0, double d1, double this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_14_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/FireworkController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/FireworkController.java index ad7e50d57..e30d56300 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/FireworkController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/FireworkController.java @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity.nonliving;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -18,7 +15,10 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_14_R1.EntityFireworks; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.NBTTagCompound; +import net.minecraft.server.v1_14_R1.Tag; +import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; public class FireworkController extends MobEntityController { @@ -32,11 +32,6 @@ public Firework getBukkitEntity() { } public static class EntityFireworkNPC extends EntityFireworks implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityFireworkNPC(EntityTypes types, World world) { @@ -48,6 +43,16 @@ public EntityFireworkNPC(EntityTypes types, World wor this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_14_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/FishingHookController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/FishingHookController.java index 40406e819..6b371bd2f 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/FishingHookController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/FishingHookController.java @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity.nonliving;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity.nonliving; import java.util.UUID; @@ -25,10 +22,13 @@ import net.minecraft.server.v1_14_R1.EntityFishingHook; import net.minecraft.server.v1_14_R1.EntityPlayer; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.ItemStack; import net.minecraft.server.v1_14_R1.Items; import net.minecraft.server.v1_14_R1.NBTTagCompound; import net.minecraft.server.v1_14_R1.PlayerInteractManager; +import net.minecraft.server.v1_14_R1.Tag; +import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; import net.minecraft.server.v1_14_R1.WorldServer; @@ -43,11 +43,6 @@ public FishHook getBukkitEntity() { } public static class EntityFishingHookNPC extends EntityFishingHook implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityFishingHookNPC(EntityTypes types, World world) { @@ -62,6 +57,16 @@ public EntityFishingHookNPC(EntityTypes types, Worl this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_14_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ItemController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ItemController.java index 34f4ff9a0..a71e3f72e 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ItemController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ItemController.java @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity.nonliving;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -27,8 +24,11 @@ import net.minecraft.server.v1_14_R1.EntityHuman; import net.minecraft.server.v1_14_R1.EntityItem; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.ItemStack; import net.minecraft.server.v1_14_R1.NBTTagCompound; +import net.minecraft.server.v1_14_R1.Tag; +import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; import net.minecraft.server.v1_14_R1.WorldServer; @@ -61,11 +61,6 @@ public Item getBukkitEntity() { } public static class EntityItemNPC extends EntityItem implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityItemNPC(EntityTypes types, World world) { @@ -78,6 +73,16 @@ public EntityItemNPC(World world, NPC npc, double x, double y, double z, ItemSta this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_14_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ItemFrameController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ItemFrameController.java index b5c6eff28..b8b457228 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ItemFrameController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ItemFrameController.java @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity.nonliving;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -26,7 +23,10 @@ import net.minecraft.server.v1_14_R1.EntityItemFrame; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.EnumDirection; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.NBTTagCompound; +import net.minecraft.server.v1_14_R1.Tag; +import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; public class ItemFrameController extends MobEntityController { @@ -49,11 +49,6 @@ public ItemFrame getBukkitEntity() { } public static class EntityItemFrameNPC extends EntityItemFrame implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityItemFrameNPC(EntityTypes types, World world) { @@ -65,6 +60,16 @@ public EntityItemFrameNPC(EntityTypes types, World wo this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_14_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/LargeFireballController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/LargeFireballController.java index 5491a3abd..d18470e25 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/LargeFireballController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/LargeFireballController.java @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity.nonliving;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -18,7 +15,10 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_14_R1.EntityLargeFireball; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.NBTTagCompound; +import net.minecraft.server.v1_14_R1.Tag; +import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; public class LargeFireballController extends MobEntityController { @@ -32,11 +32,6 @@ public LargeFireball getBukkitEntity() { } public static class EntityLargeFireballNPC extends EntityLargeFireball implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityLargeFireballNPC(EntityTypes types, World world) { @@ -48,6 +43,16 @@ public EntityLargeFireballNPC(EntityTypes types, this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_14_R1.Entity entity) { // this method is called by both the entities involved - cancelling @@ -84,15 +89,6 @@ public NPC getNPC() { return npc; } - @Override - public void updateSize() { - if (npc == null) { - super.updateSize(); - } else { - NMSImpl.setSize(this, justCreated); - } - } - @Override public void tick() { if (npc != null) { @@ -104,6 +100,15 @@ public void tick() { super.tick(); } } + + @Override + public void updateSize() { + if (npc == null) { + super.updateSize(); + } else { + NMSImpl.setSize(this, justCreated); + } + } } public static class LargeFireballNPC extends CraftLargeFireball implements NPCHolder { diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/LeashController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/LeashController.java index 7b1dd377b..c7bcc8d30 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/LeashController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/LeashController.java @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity.nonliving;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -18,7 +15,10 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_14_R1.EntityLeash; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.NBTTagCompound; +import net.minecraft.server.v1_14_R1.Tag; +import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; public class LeashController extends MobEntityController { @@ -32,11 +32,6 @@ public LeashHitch getBukkitEntity() { } public static class EntityLeashNPC extends EntityLeash implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityLeashNPC(EntityTypes types, World world) { @@ -48,6 +43,16 @@ public EntityLeashNPC(EntityTypes types, World world, NPC this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_14_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/LlamaSpitController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/LlamaSpitController.java index df1e5ff4a..0efd5b8e5 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/LlamaSpitController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/LlamaSpitController.java @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity.nonliving;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -22,7 +19,10 @@ import net.minecraft.server.v1_14_R1.EntityLlama; import net.minecraft.server.v1_14_R1.EntityLlamaSpit; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.NBTTagCompound; +import net.minecraft.server.v1_14_R1.Tag; +import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; import net.minecraft.server.v1_14_R1.WorldServer; @@ -46,11 +46,6 @@ public LlamaSpit getBukkitEntity() { } public static class EntityLlamaSpitNPC extends EntityLlamaSpit implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityLlamaSpitNPC(EntityTypes types, World world) { @@ -67,6 +62,16 @@ public EntityLlamaSpitNPC(World world, NPC npc, EntityLlama entity) { this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_14_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartChestController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartChestController.java index 7829221e8..1d6a15426 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartChestController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartChestController.java @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity.nonliving;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -18,7 +15,10 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_14_R1.EntityMinecartChest; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.NBTTagCompound; +import net.minecraft.server.v1_14_R1.Tag; +import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; public class MinecartChestController extends MobEntityController { @@ -32,11 +32,6 @@ public Minecart getBukkitEntity() { } public static class EntityMinecartChestNPC extends EntityMinecartChest implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityMinecartChestNPC(EntityTypes types, World world) { @@ -48,6 +43,16 @@ public EntityMinecartChestNPC(EntityTypes types, this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_14_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartCommandController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartCommandController.java index 5edfb1dca..26b665591 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartCommandController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartCommandController.java @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity.nonliving;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -18,7 +15,10 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_14_R1.EntityMinecartCommandBlock; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.NBTTagCompound; +import net.minecraft.server.v1_14_R1.Tag; +import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; public class MinecartCommandController extends MobEntityController { @@ -32,11 +32,6 @@ public Minecart getBukkitEntity() { } public static class EntityMinecartCommandNPC extends EntityMinecartCommandBlock implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityMinecartCommandNPC(EntityTypes types, World world) { @@ -48,6 +43,16 @@ public EntityMinecartCommandNPC(EntityTypes tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_14_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartFurnaceController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartFurnaceController.java index 597b5b963..9931abd59 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartFurnaceController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartFurnaceController.java @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity.nonliving;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -18,7 +15,10 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_14_R1.EntityMinecartFurnace; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.NBTTagCompound; +import net.minecraft.server.v1_14_R1.Tag; +import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; public class MinecartFurnaceController extends MobEntityController { @@ -32,11 +32,6 @@ public Minecart getBukkitEntity() { } public static class EntityMinecartFurnaceNPC extends EntityMinecartFurnace implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityMinecartFurnaceNPC(EntityTypes types, World world) { @@ -48,6 +43,16 @@ public EntityMinecartFurnaceNPC(EntityTypes typ this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_14_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartHopperController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartHopperController.java index 688c27fb5..5c8ac37a9 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartHopperController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartHopperController.java @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity.nonliving;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity.nonliving; import org.bukkit.entity.Minecart; import org.bukkit.util.Vector; @@ -14,7 +11,10 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_14_R1.EntityMinecartHopper; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.NBTTagCompound; +import net.minecraft.server.v1_14_R1.Tag; +import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; public class MinecartHopperController extends MobEntityController { @@ -28,11 +28,6 @@ public Minecart getBukkitEntity() { } public static class EntityMinecartHopperNPC extends EntityMinecartHopper implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityMinecartHopperNPC(EntityTypes types, World world) { @@ -44,6 +39,16 @@ public EntityMinecartHopperNPC(EntityTypes types this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_14_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartRideableController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartRideableController.java index 38967151e..2ad5d5809 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartRideableController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartRideableController.java @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity.nonliving;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -18,7 +15,10 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_14_R1.EntityMinecartRideable; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.NBTTagCompound; +import net.minecraft.server.v1_14_R1.Tag; +import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; public class MinecartRideableController extends MobEntityController { @@ -32,11 +32,6 @@ public Minecart getBukkitEntity() { } public static class EntityMinecartRideableNPC extends EntityMinecartRideable implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityMinecartRideableNPC(EntityTypes types, World world) { @@ -48,6 +43,16 @@ public EntityMinecartRideableNPC(EntityTypes t this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_14_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartSpawnerController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartSpawnerController.java index 33d02fed1..2b3b357b1 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartSpawnerController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartSpawnerController.java @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity.nonliving;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity.nonliving; import org.bukkit.entity.Minecart; import org.bukkit.util.Vector; @@ -14,7 +11,10 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_14_R1.EntityMinecartMobSpawner; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.NBTTagCompound; +import net.minecraft.server.v1_14_R1.Tag; +import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; public class MinecartSpawnerController extends MobEntityController { @@ -28,11 +28,6 @@ public Minecart getBukkitEntity() { } public static class EntityMinecartSpawnerNPC extends EntityMinecartMobSpawner implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityMinecartSpawnerNPC(EntityTypes types, World world) { @@ -44,6 +39,16 @@ public EntityMinecartSpawnerNPC(EntityTypes this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_14_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartTNTController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartTNTController.java index 98a650148..780b8753a 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartTNTController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartTNTController.java @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity.nonliving;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity.nonliving; import org.bukkit.entity.Minecart; import org.bukkit.util.Vector; @@ -14,7 +11,10 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_14_R1.EntityMinecartTNT; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.NBTTagCompound; +import net.minecraft.server.v1_14_R1.Tag; +import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; public class MinecartTNTController extends MobEntityController { @@ -28,11 +28,6 @@ public Minecart getBukkitEntity() { } public static class EntityMinecartTNTNPC extends EntityMinecartTNT implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityMinecartTNTNPC(EntityTypes types, World world) { @@ -44,6 +39,16 @@ public EntityMinecartTNTNPC(EntityTypes types, Worl this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_14_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/PaintingController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/PaintingController.java index 903e6cfad..b169fca04 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/PaintingController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/PaintingController.java @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity.nonliving;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -18,7 +15,10 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_14_R1.EntityPainting; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.NBTTagCompound; +import net.minecraft.server.v1_14_R1.Tag; +import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; public class PaintingController extends MobEntityController { @@ -32,11 +32,6 @@ public Painting getBukkitEntity() { } public static class EntityPaintingNPC extends EntityPainting implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityPaintingNPC(EntityTypes types, World world) { @@ -48,6 +43,16 @@ public EntityPaintingNPC(EntityTypes types, World worl this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_14_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ShulkerBulletController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ShulkerBulletController.java index c6892f705..415435e83 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ShulkerBulletController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ShulkerBulletController.java @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity.nonliving;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -18,7 +15,10 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_14_R1.EntityShulkerBullet; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.NBTTagCompound; +import net.minecraft.server.v1_14_R1.Tag; +import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; public class ShulkerBulletController extends MobEntityController { @@ -32,11 +32,6 @@ public ShulkerBullet getBukkitEntity() { } public static class EntityShulkerBulletNPC extends EntityShulkerBullet implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityShulkerBulletNPC(EntityTypes types, World world) { @@ -48,6 +43,16 @@ public EntityShulkerBulletNPC(EntityTypes types, this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_14_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/SmallFireballController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/SmallFireballController.java index aa9089014..19791fd30 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/SmallFireballController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/SmallFireballController.java @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity.nonliving;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -18,7 +15,10 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_14_R1.EntitySmallFireball; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.NBTTagCompound; +import net.minecraft.server.v1_14_R1.Tag; +import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; public class SmallFireballController extends MobEntityController { @@ -32,11 +32,6 @@ public SmallFireball getBukkitEntity() { } public static class EntitySmallFireballNPC extends EntitySmallFireball implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntitySmallFireballNPC(EntityTypes types, World world) { @@ -48,6 +43,16 @@ public EntitySmallFireballNPC(EntityTypes types, this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_14_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/SnowballController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/SnowballController.java index 4748c11b6..377980efb 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/SnowballController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/SnowballController.java @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity.nonliving;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -18,7 +15,10 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_14_R1.EntitySnowball; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.NBTTagCompound; +import net.minecraft.server.v1_14_R1.Tag; +import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; public class SnowballController extends MobEntityController { @@ -32,11 +32,6 @@ public Snowball getBukkitEntity() { } public static class EntitySnowballNPC extends EntitySnowball implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntitySnowballNPC(EntityTypes types, World world) { @@ -48,6 +43,16 @@ public EntitySnowballNPC(EntityTypes types, World worl this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_14_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/SpectralArrowController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/SpectralArrowController.java index d85042b78..d8a8fb3b2 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/SpectralArrowController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/SpectralArrowController.java @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity.nonliving;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -18,7 +15,10 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_14_R1.EntitySpectralArrow; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.NBTTagCompound; +import net.minecraft.server.v1_14_R1.Tag; +import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; public class SpectralArrowController extends MobEntityController { @@ -32,11 +32,6 @@ public Arrow getBukkitEntity() { } public static class EntitySpectralArrowNPC extends EntitySpectralArrow implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntitySpectralArrowNPC(EntityTypes types, World world) { @@ -48,6 +43,16 @@ public EntitySpectralArrowNPC(EntityTypes types, this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_14_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/TNTPrimedController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/TNTPrimedController.java index 0782c683f..42dd9646c 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/TNTPrimedController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/TNTPrimedController.java @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity.nonliving;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -18,7 +15,10 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_14_R1.EntityTNTPrimed; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.NBTTagCompound; +import net.minecraft.server.v1_14_R1.Tag; +import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; public class TNTPrimedController extends MobEntityController { @@ -32,11 +32,6 @@ public TNTPrimed getBukkitEntity() { } public static class EntityTNTPrimedNPC extends EntityTNTPrimed implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityTNTPrimedNPC(EntityTypes types, World world) { @@ -48,6 +43,16 @@ public EntityTNTPrimedNPC(EntityTypes types, World wo this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_14_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ThrownExpBottleController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ThrownExpBottleController.java index cec06966d..950fbe653 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ThrownExpBottleController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ThrownExpBottleController.java @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity.nonliving;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -18,7 +15,10 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_14_R1.EntityThrownExpBottle; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.NBTTagCompound; +import net.minecraft.server.v1_14_R1.Tag; +import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; public class ThrownExpBottleController extends MobEntityController { @@ -32,11 +32,6 @@ public ThrownExpBottle getBukkitEntity() { } public static class EntityThrownExpBottleNPC extends EntityThrownExpBottle implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityThrownExpBottleNPC(EntityTypes types, World world) { @@ -48,6 +43,16 @@ public EntityThrownExpBottleNPC(EntityTypes typ this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_14_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ThrownPotionController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ThrownPotionController.java index ae5918f15..b4638f993 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ThrownPotionController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ThrownPotionController.java @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity.nonliving;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -18,8 +15,11 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_14_R1.EntityPotion; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.Items; import net.minecraft.server.v1_14_R1.NBTTagCompound; +import net.minecraft.server.v1_14_R1.Tag; +import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; public class ThrownPotionController extends MobEntityController { @@ -33,11 +33,6 @@ public ThrownPotion getBukkitEntity() { } public static class EntityThrownPotionNPC extends EntityPotion implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityThrownPotionNPC(EntityTypes types, World world) { @@ -49,6 +44,16 @@ public EntityThrownPotionNPC(EntityTypes types, World wo this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_14_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ThrownTridentController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ThrownTridentController.java index c741add36..adf024020 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ThrownTridentController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ThrownTridentController.java @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity.nonliving;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -18,7 +15,10 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_14_R1.EntityThrownTrident; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.NBTTagCompound; +import net.minecraft.server.v1_14_R1.Tag; +import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; public class ThrownTridentController extends MobEntityController { @@ -32,11 +32,6 @@ public Trident getBukkitEntity() { } public static class EntityThrownTridentNPC extends EntityThrownTrident implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityThrownTridentNPC(EntityTypes types, World world) { @@ -48,6 +43,16 @@ public EntityThrownTridentNPC(EntityTypes types, this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_14_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/TippedArrowController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/TippedArrowController.java index 0fbb5a23b..bdf485b92 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/TippedArrowController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/TippedArrowController.java @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity.nonliving;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -18,7 +15,10 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_14_R1.EntityTippedArrow; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.NBTTagCompound; +import net.minecraft.server.v1_14_R1.Tag; +import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; public class TippedArrowController extends MobEntityController { @@ -32,11 +32,6 @@ public Arrow getBukkitEntity() { } public static class EntityTippedArrowNPC extends EntityTippedArrow implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityTippedArrowNPC(EntityTypes types, World world) { @@ -48,6 +43,16 @@ public EntityTippedArrowNPC(EntityTypes types, Worl this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_14_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/WitherSkullController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/WitherSkullController.java index 642d416b8..10a0c60de 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/WitherSkullController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/WitherSkullController.java @@ -1,7 +1,4 @@ -package net.citizensnpcs.nms.v1_14_R1.entity.nonliving;import net.minecraft.server.v1_14_R1.Vec3D; - -import net.minecraft.server.v1_14_R1.Tag; -import net.minecraft.server.v1_14_R1.FluidType; +package net.citizensnpcs.nms.v1_14_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; @@ -18,7 +15,10 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.EntityWitherSkull; +import net.minecraft.server.v1_14_R1.FluidType; import net.minecraft.server.v1_14_R1.NBTTagCompound; +import net.minecraft.server.v1_14_R1.Tag; +import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; public class WitherSkullController extends MobEntityController { @@ -32,11 +32,6 @@ public WitherSkull getBukkitEntity() { } public static class EntityWitherSkullNPC extends EntityWitherSkull implements NPCHolder { - @Override - public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; - } - private final CitizensNPC npc; public EntityWitherSkullNPC(EntityTypes types, World world) { @@ -48,6 +43,16 @@ public EntityWitherSkullNPC(EntityTypes types, Worl this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_14_R1.Entity entity) { // this method is called by both the entities involved - cancelling 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 1e24d76df..0ebb82c52 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 @@ -1599,7 +1599,7 @@ public void stop() { @Override public void update() { updateNavigation(navigation); - }; + } } private static class NavigationIterable implements Iterable { diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/PlayerNavigation.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/PlayerNavigation.java index d3265252e..9dd0a1389 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/PlayerNavigation.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/PlayerNavigation.java @@ -154,15 +154,7 @@ private boolean a(int var0, int var1, int var2, int var3, int var4, int var5, Ve double var17 = var14 + 0.5D - var6.z; if (var15 * var7 + var17 * var9 >= 0.0D) { PathType var19 = this.o.a(this.b, var13, var1 - 1, var14, this.a, var3, var4, var5, true, true); - if (var19 == PathType.WATER) { - return false; - } - - if (var19 == PathType.LAVA) { - return false; - } - - if (var19 == PathType.OPEN) { + if ((var19 == PathType.WATER) || (var19 == PathType.LAVA) || (var19 == PathType.OPEN)) { return false; } 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 b893fc147..7f0bf665c 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -20,8 +21,11 @@ import net.minecraft.server.v1_15_R1.EntityBoat; import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; +import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; public class BatController extends MobEntityController { @@ -40,7 +44,7 @@ public BatNPC(EntityBatNPC entity) { } } - public static class EntityBatNPC extends EntityBat implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityBatNPC extends EntityBat implements NPCHolder { private final CitizensNPC npc; public EntityBatNPC(EntityTypes types, World world) { @@ -55,6 +59,24 @@ public EntityBatNPC(EntityTypes types, World world, NPC npc } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 378dbbd38..a10b2a251 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -20,8 +21,11 @@ import net.minecraft.server.v1_15_R1.EntityBoat; import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; +import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; public class BeeController extends MobEntityController { @@ -40,7 +44,7 @@ public BeeNPC(EntityBeeNPC entity) { } } - public static class EntityBeeNPC extends EntityBee implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityBeeNPC extends EntityBee implements NPCHolder { private final CitizensNPC npc; public EntityBeeNPC(EntityTypes types, World world) { @@ -52,6 +56,24 @@ public EntityBeeNPC(EntityTypes types, World world, NPC npc this.npc = (CitizensNPC) npc; } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 fa23b2bce..e42f270d1 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -20,8 +21,11 @@ import net.minecraft.server.v1_15_R1.EntityBoat; import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; +import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; public class BlazeController extends MobEntityController { @@ -40,7 +44,7 @@ public BlazeNPC(EntityBlazeNPC entity) { } } - public static class EntityBlazeNPC extends EntityBlaze implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityBlazeNPC extends EntityBlaze implements NPCHolder { private final CitizensNPC npc; public EntityBlazeNPC(EntityTypes types, World world) { @@ -52,6 +56,24 @@ public EntityBlazeNPC(EntityTypes types, World world, NPC this.npc = (CitizensNPC) npc; } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 160c59fe6..6f1c1c760 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -22,9 +23,11 @@ import net.minecraft.server.v1_15_R1.EntityCat; import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -44,8 +47,9 @@ public CatNPC(EntityCatNPC entity) { } } - public static class EntityCatNPC extends EntityCat implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityCatNPC extends EntityCat implements NPCHolder { boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityCatNPC(EntityTypes types, World world) { @@ -74,6 +78,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -82,6 +94,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 d0e777049..fc12ebeeb 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -21,9 +22,11 @@ import net.minecraft.server.v1_15_R1.EntityCaveSpider; import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -43,7 +46,7 @@ public CaveSpiderNPC(EntityCaveSpiderNPC entity) { } } - public static class EntityCaveSpiderNPC extends EntityCaveSpider implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityCaveSpiderNPC extends EntityCaveSpider implements NPCHolder { private final CitizensNPC npc; public EntityCaveSpiderNPC(EntityTypes types, World world) { @@ -62,6 +65,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -70,6 +81,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 950c8b1e3..e3d7827e8 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -22,9 +23,11 @@ import net.minecraft.server.v1_15_R1.EntityChicken; import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -44,8 +47,9 @@ public ChickenNPC(EntityChickenNPC entity) { } } - public static class EntityChickenNPC extends EntityChicken implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityChickenNPC extends EntityChicken implements NPCHolder { boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityChickenNPC(EntityTypes types, World world) { @@ -75,6 +79,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -83,6 +95,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 4bf137041..9784ccaad 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -25,11 +26,13 @@ import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.EnumHand; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.ItemStack; import net.minecraft.server.v1_15_R1.Items; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -49,8 +52,9 @@ public CodNPC(EntityCodNPC entity) { } } - public static class EntityCodNPC extends EntityCod implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityCodNPC extends EntityCod implements NPCHolder { private final CitizensNPC npc; + private ControllerMove oldMoveController; public EntityCodNPC(EntityTypes types, World world) { @@ -73,6 +77,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean a(EntityHuman entityhuman, EnumHand enumhand) { if (npc == null || !npc.isProtected()) @@ -92,6 +104,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 a4ec2108f..e7742e570 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -24,11 +25,13 @@ import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.EnumHand; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.ItemStack; import net.minecraft.server.v1_15_R1.Items; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -48,8 +51,9 @@ public CowNPC(EntityCowNPC entity) { } } - public static class EntityCowNPC extends EntityCow implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityCowNPC extends EntityCow implements NPCHolder { boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityCowNPC(EntityTypes types, World world) { @@ -78,6 +82,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean a(EntityHuman entityhuman, EnumHand enumhand) { if (npc == null || !npc.isProtected()) @@ -97,6 +109,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 697ffd32f..f3aad91a9 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -22,9 +23,11 @@ import net.minecraft.server.v1_15_R1.EntityLightning; import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -44,8 +47,9 @@ public CreeperNPC(EntityCreeperNPC entity) { } } - public static class EntityCreeperNPC extends EntityCreeper implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityCreeperNPC extends EntityCreeper implements NPCHolder { private boolean allowPowered; + private final CitizensNPC npc; public EntityCreeperNPC(EntityTypes types, World world) { @@ -64,6 +68,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -72,6 +84,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 7873b8aae..e6ab8f549 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -23,10 +24,12 @@ import net.minecraft.server.v1_15_R1.EntityDolphin; import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.GenericAttributes; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -46,8 +49,9 @@ public DolphinNPC(EntityDolphinNPC entity) { } } - public static class EntityDolphinNPC extends EntityDolphin implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityDolphinNPC extends EntityDolphin implements NPCHolder { private final CitizensNPC npc; + private ControllerMove oldMoveController; public EntityDolphinNPC(EntityTypes types, World world) { @@ -72,6 +76,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -80,6 +92,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 404186362..1100224da 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -21,9 +22,11 @@ import net.minecraft.server.v1_15_R1.EntityDrowned; import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -43,7 +46,7 @@ public DrownedNPC(EntityDrownedNPC entity) { } } - public static class EntityDrownedNPC extends EntityDrowned implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityDrownedNPC extends EntityDrowned implements NPCHolder { private final CitizensNPC npc; public EntityDrownedNPC(EntityTypes types, World world) { @@ -62,6 +65,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -70,6 +81,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 b27ebece2..bd2314b64 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -20,8 +21,10 @@ import net.minecraft.server.v1_15_R1.EntityEnderDragon; import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -41,7 +44,7 @@ public EnderDragonNPC(EntityEnderDragonNPC entity) { } } - public static class EntityEnderDragonNPC extends EntityEnderDragon implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityEnderDragonNPC extends EntityEnderDragon implements NPCHolder { private final CitizensNPC npc; public EntityEnderDragonNPC(EntityTypes types, World world) { @@ -53,6 +56,24 @@ public EntityEnderDragonNPC(EntityTypes types, Worl this.npc = (CitizensNPC) npc; } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 227bcbc8a..3b0a60c70 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -21,9 +22,11 @@ import net.minecraft.server.v1_15_R1.EntityEnderman; import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -43,7 +46,7 @@ public EndermanNPC(EntityEndermanNPC entity) { } } - public static class EntityEndermanNPC extends EntityEnderman implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityEndermanNPC extends EntityEnderman implements NPCHolder { private final CitizensNPC npc; public EntityEndermanNPC(EntityTypes types, World world) { @@ -70,6 +73,14 @@ public boolean a(double d1, double d2, double d3, boolean b) { return false; } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -78,6 +89,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 612d4f8b8..2ccf46ecb 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -21,9 +22,11 @@ import net.minecraft.server.v1_15_R1.EntityEndermite; import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -43,7 +46,7 @@ public EndermiteNPC(EntityEndermiteNPC entity) { } } - public static class EntityEndermiteNPC extends EntityEndermite implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityEndermiteNPC extends EntityEndermite implements NPCHolder { private final CitizensNPC npc; public EntityEndermiteNPC(EntityTypes types, World world) { @@ -62,6 +65,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -70,6 +81,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void checkDespawn() { if (npc == null) { diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/EntityHumanNPC.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/EntityHumanNPC.java index 8eef57e66..de5c4f449 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/EntityHumanNPC.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/EntityHumanNPC.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import java.io.IOException; import java.net.Socket; @@ -109,11 +109,11 @@ public boolean a(EntityPlayer entityplayer) { } public float a(PathType pathtype) { - return this.bz.containsKey(pathtype) ? this.bz.get(pathtype).floatValue() : pathtype.a(); + return this.bz.containsKey(pathtype) ? this.bz.get(pathtype) : pathtype.a(); } public void a(PathType pathtype, float f) { - this.bz.put(pathtype, Float.valueOf(f)); + this.bz.put(pathtype, f); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/EvokerController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/EvokerController.java index 6004947cb..f64a300f7 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -21,9 +22,11 @@ import net.minecraft.server.v1_15_R1.EntityEvoker; import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -37,7 +40,7 @@ public Evoker getBukkitEntity() { return (Evoker) super.getBukkitEntity(); } - public static class EntityEvokerNPC extends EntityEvoker implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityEvokerNPC extends EntityEvoker implements NPCHolder { private final CitizensNPC npc; public EntityEvokerNPC(EntityTypes types, World world) { @@ -56,6 +59,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -64,6 +75,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 0c05186d2..3b5757fff 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -22,9 +23,11 @@ import net.minecraft.server.v1_15_R1.EntityFox; import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -38,8 +41,9 @@ public Fox getBukkitEntity() { return (Fox) super.getBukkitEntity(); } - public static class EntityFoxNPC extends EntityFox implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityFoxNPC extends EntityFox implements NPCHolder { boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityFoxNPC(EntityTypes types, World world) { @@ -68,6 +72,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -76,6 +88,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 74c69e910..af2fc07f2 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -20,8 +21,11 @@ import net.minecraft.server.v1_15_R1.EntityGhast; import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; +import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; public class GhastController extends MobEntityController { @@ -34,7 +38,7 @@ public Ghast getBukkitEntity() { return (Ghast) super.getBukkitEntity(); } - public static class EntityGhastNPC extends EntityGhast implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityGhastNPC extends EntityGhast implements NPCHolder { private final CitizensNPC npc; public EntityGhastNPC(EntityTypes types, World world) { @@ -46,6 +50,24 @@ public EntityGhastNPC(EntityTypes types, World world, NPC this.npc = (CitizensNPC) npc; } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 a10587136..89f060336 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -21,9 +22,11 @@ import net.minecraft.server.v1_15_R1.EntityGiantZombie; import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -37,7 +40,7 @@ public Giant getBukkitEntity() { return (Giant) super.getBukkitEntity(); } - public static class EntityGiantNPC extends EntityGiantZombie implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityGiantNPC extends EntityGiantZombie implements NPCHolder { private final CitizensNPC npc; public EntityGiantNPC(EntityTypes types, World world) { @@ -56,6 +59,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -64,6 +75,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 b2afb1aff..6c17aa23e 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -21,9 +22,11 @@ import net.minecraft.server.v1_15_R1.EntityGuardian; import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -37,7 +40,7 @@ public Guardian getBukkitEntity() { return (Guardian) super.getBukkitEntity(); } - public static class EntityGuardianNPC extends EntityGuardian implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityGuardianNPC extends EntityGuardian implements NPCHolder { private final CitizensNPC npc; public EntityGuardianNPC(EntityTypes types, World world) { @@ -56,6 +59,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -64,6 +75,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 733ce7704..b994d4d9a 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -21,9 +22,11 @@ import net.minecraft.server.v1_15_R1.EntityGuardianElder; import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -37,7 +40,7 @@ public ElderGuardian getBukkitEntity() { return (ElderGuardian) super.getBukkitEntity(); } - public static class EntityGuardianElderNPC extends EntityGuardianElder implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityGuardianElderNPC extends EntityGuardianElder implements NPCHolder { private final CitizensNPC npc; public EntityGuardianElderNPC(EntityTypes types, World world) { @@ -56,6 +59,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -64,6 +75,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 53ba43c86..1dc658761 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -26,10 +27,12 @@ import net.minecraft.server.v1_15_R1.EntityHorse; import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.GenericAttributes; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -49,9 +52,11 @@ public void spawn(Location at, NPC npc) { super.spawn(at, npc); } - public static class EntityHorseNPC extends EntityHorse implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityHorseNPC extends EntityHorse implements NPCHolder { private double baseMovementSpeed; + private boolean calledNMSHeight = false; + private final CitizensNPC npc; private boolean riding; @@ -87,6 +92,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -95,6 +108,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 0cf01422e..e7c5b0c83 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -26,10 +27,12 @@ import net.minecraft.server.v1_15_R1.EntityHorseDonkey; import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.GenericAttributes; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -49,9 +52,11 @@ public void spawn(Location at, NPC npc) { super.spawn(at, npc); } - public static class EntityHorseDonkeyNPC extends EntityHorseDonkey implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityHorseDonkeyNPC extends EntityHorseDonkey implements NPCHolder { private double baseMovementSpeed; + boolean calledNMSHeight = false; + private final CitizensNPC npc; private boolean riding; @@ -86,6 +91,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -94,6 +107,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 34d12a477..571c790e5 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -26,10 +27,12 @@ import net.minecraft.server.v1_15_R1.EntityHorseMule; import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.GenericAttributes; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -49,9 +52,11 @@ public void spawn(Location at, NPC npc) { super.spawn(at, npc); } - public static class EntityHorseMuleNPC extends EntityHorseMule implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityHorseMuleNPC extends EntityHorseMule implements NPCHolder { private double baseMovementSpeed; + boolean calledNMSHeight = false; + private final CitizensNPC npc; private boolean riding; @@ -86,6 +91,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -94,6 +107,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 ed53c247a..8faeae362 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -26,10 +27,12 @@ import net.minecraft.server.v1_15_R1.EntityHorseSkeleton; import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.GenericAttributes; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -49,9 +52,11 @@ public void spawn(Location at, NPC npc) { super.spawn(at, npc); } - public static class EntityHorseSkeletonNPC extends EntityHorseSkeleton implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityHorseSkeletonNPC extends EntityHorseSkeleton implements NPCHolder { private double baseMovementSpeed; + boolean calledNMSHeight = false; + private final CitizensNPC npc; private boolean riding; @@ -87,6 +92,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -95,6 +108,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 30247cba0..4777fce79 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -26,10 +27,12 @@ import net.minecraft.server.v1_15_R1.EntityHorseZombie; import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.GenericAttributes; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -49,9 +52,11 @@ public void spawn(Location at, NPC npc) { super.spawn(at, npc); } - public static class EntityHorseZombieNPC extends EntityHorseZombie implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityHorseZombieNPC extends EntityHorseZombie implements NPCHolder { private double baseMovementSpeed; + boolean calledNMSHeight = false; + private final CitizensNPC npc; private boolean riding; @@ -87,6 +92,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -95,6 +108,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void checkDespawn() { if (npc == null) { diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/HumanController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/HumanController.java index a164e6a45..0f4b821d9 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/HumanController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/HumanController.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import java.util.UUID; 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 1a84562d8..bcafed270 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -21,9 +22,11 @@ import net.minecraft.server.v1_15_R1.EntityIllagerIllusioner; import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -37,7 +40,7 @@ public Illusioner getBukkitEntity() { return (Illusioner) super.getBukkitEntity(); } - public static class EntityIllusionerNPC extends EntityIllagerIllusioner implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityIllusionerNPC extends EntityIllagerIllusioner implements NPCHolder { private final CitizensNPC npc; public EntityIllusionerNPC(EntityTypes types, World world) { @@ -56,6 +59,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -64,6 +75,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 1db43f5e1..846ad69f1 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -21,9 +22,11 @@ import net.minecraft.server.v1_15_R1.EntityIronGolem; import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -37,7 +40,7 @@ public IronGolem getBukkitEntity() { return (IronGolem) super.getBukkitEntity(); } - public static class EntityIronGolemNPC extends EntityIronGolem implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityIronGolemNPC extends EntityIronGolem implements NPCHolder { private final CitizensNPC npc; public EntityIronGolemNPC(EntityTypes types, World world) { @@ -56,6 +59,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -64,6 +75,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 7499ca21b..4c180d0d7 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -25,9 +26,11 @@ import net.minecraft.server.v1_15_R1.EntityLlama; import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -47,8 +50,9 @@ public void spawn(Location at, NPC npc) { super.spawn(at, npc); } - public static class EntityLlamaNPC extends EntityLlama implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityLlamaNPC extends EntityLlama implements NPCHolder { boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityLlamaNPC(EntityTypes types, World world) { @@ -81,6 +85,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -89,6 +101,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 413f9947b..fc107e38e 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -24,9 +25,11 @@ import net.minecraft.server.v1_15_R1.EntityMagmaCube; import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -40,8 +43,9 @@ public MagmaCube getBukkitEntity() { return (MagmaCube) super.getBukkitEntity(); } - public static class EntityMagmaCubeNPC extends EntityMagmaCube implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityMagmaCubeNPC extends EntityMagmaCube implements NPCHolder { private final CitizensNPC npc; + private ControllerMove oldMoveController; public EntityMagmaCubeNPC(EntityTypes types, World world) { @@ -65,6 +69,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -73,6 +85,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void checkDespawn() { if (npc == null) { diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/MobEntityController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/MobEntityController.java index 23d1bac3c..cbf98cb50 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/MobEntityController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/MobEntityController.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import java.lang.invoke.MethodHandle; import java.lang.reflect.Constructor; 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 c2cb43554..30ca1bc78 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -24,9 +25,11 @@ import net.minecraft.server.v1_15_R1.EntityMushroomCow; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.EnumHand; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -41,8 +44,9 @@ public MushroomCow getBukkitEntity() { return (MushroomCow) super.getBukkitEntity(); } - public static class EntityMushroomCowNPC extends EntityMushroomCow implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityMushroomCowNPC extends EntityMushroomCow implements NPCHolder { boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityMushroomCowNPC(EntityTypes types, World world) { @@ -72,6 +76,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean a(EntityHuman entityhuman, EnumHand enumhand) { if (npc == null || !npc.isProtected()) @@ -87,6 +99,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 76e1c14e7..13b9aebc2 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -23,9 +24,11 @@ import net.minecraft.server.v1_15_R1.EntityOcelot; import net.minecraft.server.v1_15_R1.EntityPose; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -39,8 +42,9 @@ public Ocelot getBukkitEntity() { return (Ocelot) super.getBukkitEntity(); } - public static class EntityOcelotNPC extends EntityOcelot implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityOcelotNPC extends EntityOcelot implements NPCHolder { boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityOcelotNPC(EntityTypes types, World world) { @@ -70,6 +74,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -78,6 +90,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 a0ba56b2e..d95016ecb 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -22,9 +23,11 @@ import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityPanda; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -38,8 +41,9 @@ public Panda getBukkitEntity() { return (Panda) super.getBukkitEntity(); } - public static class EntityPandaNPC extends EntityPanda implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityPandaNPC extends EntityPanda implements NPCHolder { boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityPandaNPC(EntityTypes types, World world) { @@ -68,6 +72,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -76,6 +88,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 887310561..585b3c27e 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -22,8 +23,11 @@ import net.minecraft.server.v1_15_R1.EntityParrot; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.EnumHand; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; +import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; public class ParrotController extends MobEntityController { @@ -36,7 +40,7 @@ public Parrot getBukkitEntity() { return (Parrot) super.getBukkitEntity(); } - public static class EntityParrotNPC extends EntityParrot implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityParrotNPC extends EntityParrot implements NPCHolder { private final CitizensNPC npc; public EntityParrotNPC(EntityTypes types, World world) { @@ -48,6 +52,14 @@ public EntityParrotNPC(EntityTypes types, World world, N this.npc = (CitizensNPC) npc; } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean a(EntityHuman paramEntityHuman, EnumHand paramEnumHand) { // block feeding @@ -57,6 +69,16 @@ public boolean a(EntityHuman paramEntityHuman, EnumHand paramEnumHand) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 11c7728b7..c697be8bb 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -25,9 +26,11 @@ import net.minecraft.server.v1_15_R1.EntityPhantom; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.EnumDifficulty; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -41,9 +44,11 @@ public Phantom getBukkitEntity() { return (Phantom) super.getBukkitEntity(); } - public static class EntityPhantomNPC extends EntityPhantom implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityPhantomNPC extends EntityPhantom implements NPCHolder { private final CitizensNPC npc; + private ControllerLook oldLookController; + private ControllerMove oldMoveController; public EntityPhantomNPC(EntityTypes types, World world) { @@ -70,6 +75,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -78,6 +91,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 3df20c758..dc70e1b11 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -23,9 +24,11 @@ import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityPig; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -39,8 +42,9 @@ public Pig getBukkitEntity() { return (Pig) super.getBukkitEntity(); } - public static class EntityPigNPC extends EntityPig implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityPigNPC extends EntityPig implements NPCHolder { boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityPigNPC(EntityTypes types, World world) { @@ -70,6 +74,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -78,6 +90,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 06fde1216..058c6dae6 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -21,9 +22,11 @@ import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityPigZombie; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -38,7 +41,7 @@ public PigZombie getBukkitEntity() { return (PigZombie) super.getBukkitEntity(); } - public static class EntityPigZombieNPC extends EntityPigZombie implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityPigZombieNPC extends EntityPigZombie implements NPCHolder { private final CitizensNPC npc; public EntityPigZombieNPC(EntityTypes types, World world) { @@ -57,6 +60,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -65,6 +76,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 50667ac93..447f07755 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -22,9 +23,11 @@ import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityPillager; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -38,8 +41,9 @@ public Pillager getBukkitEntity() { return (Pillager) super.getBukkitEntity(); } - public static class EntityPillagerNPC extends EntityPillager implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityPillagerNPC extends EntityPillager implements NPCHolder { boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityPillagerNPC(EntityTypes types, World world) { @@ -68,6 +72,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -76,6 +88,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 9a0f91f25..3bf7c3913 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -21,8 +22,11 @@ import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityPolarBear; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; +import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; public class PolarBearController extends MobEntityController { @@ -35,7 +39,7 @@ public PolarBear getBukkitEntity() { return (PolarBear) super.getBukkitEntity(); } - public static class EntityPolarBearNPC extends EntityPolarBear implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityPolarBearNPC extends EntityPolarBear implements NPCHolder { boolean calledNMSHeight = false; private final CitizensNPC npc; @@ -60,6 +64,24 @@ public void a(DataWatcherObject datawatcherobject) { super.a(datawatcherobject); } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 b9105499e..27b0cfdaa 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -28,11 +29,13 @@ import net.minecraft.server.v1_15_R1.EntitySize; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.EnumHand; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.ItemStack; import net.minecraft.server.v1_15_R1.Items; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -46,8 +49,9 @@ public PufferFish getBukkitEntity() { return (PufferFish) super.getBukkitEntity(); } - public static class EntityPufferFishNPC extends EntityPufferFish implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityPufferFishNPC extends EntityPufferFish implements NPCHolder { private final CitizensNPC npc; + private ControllerMove oldMoveController; public EntityPufferFishNPC(EntityTypes types, World world) { @@ -70,6 +74,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean a(EntityHuman entityhuman, EnumHand enumhand) { if (npc == null || !npc.isProtected()) @@ -97,6 +109,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 56ce155bf..4c05f7739 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -24,9 +25,11 @@ import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityRabbit; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -40,7 +43,7 @@ public Rabbit getBukkitEntity() { return (Rabbit) super.getBukkitEntity(); } - public static class EntityRabbitNPC extends EntityRabbit implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityRabbitNPC extends EntityRabbit implements NPCHolder { boolean calledNMSHeight = false; private final CitizensNPC npc; @@ -72,6 +75,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -80,6 +91,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 e2e2f89e2..ba43b34e4 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -22,9 +23,11 @@ import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityRavager; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -38,8 +41,9 @@ public Ravager getBukkitEntity() { return (Ravager) super.getBukkitEntity(); } - public static class EntityRavagerNPC extends EntityRavager implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityRavagerNPC extends EntityRavager implements NPCHolder { boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityRavagerNPC(EntityTypes types, World world) { @@ -68,6 +72,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -76,6 +88,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 b3017068f..09b479b17 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -25,11 +26,13 @@ import net.minecraft.server.v1_15_R1.EntitySalmon; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.EnumHand; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.ItemStack; import net.minecraft.server.v1_15_R1.Items; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -43,8 +46,9 @@ public Salmon getBukkitEntity() { return (Salmon) super.getBukkitEntity(); } - public static class EntitySalmonNPC extends EntitySalmon implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntitySalmonNPC extends EntitySalmon implements NPCHolder { private final CitizensNPC npc; + private ControllerMove oldMoveController; public EntitySalmonNPC(EntityTypes types, World world) { @@ -67,6 +71,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean a(EntityHuman entityhuman, EnumHand enumhand) { if (npc == null || !npc.isProtected()) @@ -86,6 +98,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 452f4b876..8c6c9c54a 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -22,9 +23,11 @@ import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntitySheep; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -38,7 +41,7 @@ public Sheep getBukkitEntity() { return (Sheep) super.getBukkitEntity(); } - public static class EntitySheepNPC extends EntitySheep implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntitySheepNPC extends EntitySheep implements NPCHolder { boolean calledNMSHeight = false; private final CitizensNPC npc; @@ -70,6 +73,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -78,6 +89,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 e1ae72c4f..36cc1198e 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -22,9 +23,11 @@ import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityShulker; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -38,7 +41,7 @@ public Shulker getBukkitEntity() { return (Shulker) super.getBukkitEntity(); } - public static class EntityShulkerNPC extends EntityShulker implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityShulkerNPC extends EntityShulker implements NPCHolder { private final CitizensNPC npc; public EntityShulkerNPC(EntityTypes types, World world) { @@ -57,6 +60,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -65,6 +76,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 c93fc81d0..19e951e56 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -21,9 +22,11 @@ import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntitySilverfish; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -37,7 +40,7 @@ public Silverfish getBukkitEntity() { return (Silverfish) super.getBukkitEntity(); } - public static class EntitySilverfishNPC extends EntitySilverfish implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntitySilverfishNPC extends EntitySilverfish implements NPCHolder { private final CitizensNPC npc; public EntitySilverfishNPC(EntityTypes types, World world) { @@ -56,6 +59,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -64,6 +75,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 7a9f0b372..9e20a9818 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -21,9 +22,11 @@ import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntitySkeleton; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -37,7 +40,7 @@ public Skeleton getBukkitEntity() { return (Skeleton) super.getBukkitEntity(); } - public static class EntitySkeletonNPC extends EntitySkeleton implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntitySkeletonNPC extends EntitySkeleton implements NPCHolder { private final CitizensNPC npc; public EntitySkeletonNPC(EntityTypes types, World world) { @@ -56,6 +59,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -64,6 +75,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 e77791d4f..b6662994f 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -21,9 +22,11 @@ import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntitySkeletonStray; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -37,7 +40,7 @@ public Stray getBukkitEntity() { return (Stray) super.getBukkitEntity(); } - public static class EntityStrayNPC extends EntitySkeletonStray implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityStrayNPC extends EntitySkeletonStray implements NPCHolder { private final CitizensNPC npc; public EntityStrayNPC(EntityTypes types, World world) { @@ -56,6 +59,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -64,6 +75,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 f21cd4abc..76bd624b6 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -21,9 +22,11 @@ import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntitySkeletonWither; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -37,7 +40,7 @@ public WitherSkeleton getBukkitEntity() { return (WitherSkeleton) super.getBukkitEntity(); } - public static class EntitySkeletonWitherNPC extends EntitySkeletonWither implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntitySkeletonWitherNPC extends EntitySkeletonWither implements NPCHolder { private final CitizensNPC npc; public EntitySkeletonWitherNPC(EntityTypes types, World world) { @@ -56,6 +59,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -64,6 +75,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 234c110f8..0c68c6c45 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -24,9 +25,11 @@ import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntitySlime; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -40,8 +43,9 @@ public Slime getBukkitEntity() { return (Slime) super.getBukkitEntity(); } - public static class EntitySlimeNPC extends EntitySlime implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntitySlimeNPC extends EntitySlime implements NPCHolder { private final CitizensNPC npc; + private ControllerMove oldMoveController; public EntitySlimeNPC(EntityTypes types, World world) { @@ -65,6 +69,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -73,6 +85,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 1ce79dcb8..49cf9cd7f 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -21,10 +22,12 @@ import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntitySnowman; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.GameRules; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -38,7 +41,7 @@ public Snowman getBukkitEntity() { return (Snowman) super.getBukkitEntity(); } - public static class EntitySnowmanNPC extends EntitySnowman implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntitySnowmanNPC extends EntitySnowman implements NPCHolder { private final CitizensNPC npc; public EntitySnowmanNPC(EntityTypes types, World world) { @@ -57,6 +60,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -65,6 +76,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 3feb43547..57d408f0d 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -21,9 +22,11 @@ import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntitySpider; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -37,7 +40,7 @@ public Spider getBukkitEntity() { return (Spider) super.getBukkitEntity(); } - public static class EntitySpiderNPC extends EntitySpider implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntitySpiderNPC extends EntitySpider implements NPCHolder { private final CitizensNPC npc; public EntitySpiderNPC(EntityTypes types, World world) { @@ -56,6 +59,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -64,6 +75,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 fc342ab85..f93b6fa93 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -21,9 +22,11 @@ import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntitySquid; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -37,7 +40,7 @@ public Squid getBukkitEntity() { return (Squid) super.getBukkitEntity(); } - public static class EntitySquidNPC extends EntitySquid implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntitySquidNPC extends EntitySquid implements NPCHolder { private final CitizensNPC npc; public EntitySquidNPC(EntityTypes types, World world) { @@ -56,6 +59,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -64,6 +75,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 85cdefb90..78dcff883 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import java.lang.invoke.MethodHandle; @@ -11,6 +11,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -27,9 +28,11 @@ import net.minecraft.server.v1_15_R1.EntityLlamaTrader; import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -49,8 +52,9 @@ public void spawn(Location at, NPC npc) { super.spawn(at, npc); } - public static class EntityTraderLlamaNPC extends EntityLlamaTrader implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityTraderLlamaNPC extends EntityLlamaTrader implements NPCHolder { boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityTraderLlamaNPC(EntityTypes types, World world) { @@ -84,6 +88,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -92,6 +104,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 4ccbaeaf7..0dd3d3050 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -25,11 +26,13 @@ import net.minecraft.server.v1_15_R1.EntityTropicalFish; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.EnumHand; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.ItemStack; import net.minecraft.server.v1_15_R1.Items; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -43,8 +46,9 @@ public TropicalFish getBukkitEntity() { return (TropicalFish) super.getBukkitEntity(); } - public static class EntityTropicalFishNPC extends EntityTropicalFish implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityTropicalFishNPC extends EntityTropicalFish implements NPCHolder { private final CitizensNPC npc; + private ControllerMove oldMoveController; public EntityTropicalFishNPC(EntityTypes types, World world) { @@ -67,6 +71,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean a(EntityHuman entityhuman, EnumHand enumhand) { if (npc == null || !npc.isProtected()) @@ -86,6 +98,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 bb3408396..a51059c61 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -25,9 +26,11 @@ import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityTurtle; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -41,9 +44,11 @@ public Turtle getBukkitEntity() { return (Turtle) super.getBukkitEntity(); } - public static class EntityTurtleNPC extends EntityTurtle implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityTurtleNPC extends EntityTurtle implements NPCHolder { private final CitizensNPC npc; + private ControllerJump oldJumpController; + private ControllerMove oldMoveController; public EntityTurtleNPC(EntityTypes types, World world) { @@ -68,6 +73,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -76,6 +89,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 c3d0557b9..6d7693335 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -20,8 +21,11 @@ import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.EntityVex; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; +import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; public class VexController extends MobEntityController { @@ -34,7 +38,7 @@ public Vex getBukkitEntity() { return (Vex) super.getBukkitEntity(); } - public static class EntityVexNPC extends EntityVex implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityVexNPC extends EntityVex implements NPCHolder { private final CitizensNPC npc; public EntityVexNPC(EntityTypes types, World world) { @@ -49,6 +53,24 @@ public EntityVexNPC(EntityTypes types, World world, NPC npc } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 c1f30445d..0ffa4bb66 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import java.util.List; @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -27,11 +28,13 @@ import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.EntityVillager; import net.minecraft.server.v1_15_R1.EnumHand; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.GenericAttributes; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.MerchantRecipe; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -45,9 +48,11 @@ public Villager getBukkitEntity() { return (Villager) super.getBukkitEntity(); } - public static class EntityVillagerNPC extends EntityVillager implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityVillagerNPC extends EntityVillager implements NPCHolder { private boolean blockingATrade; + boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityVillagerNPC(EntityTypes types, World world) { @@ -80,6 +85,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean a(EntityHuman entityhuman, EnumHand enumhand) { if (npc != null && npc.data().get(NPC.VILLAGER_BLOCK_TRADES, true)) { @@ -100,6 +113,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 8ecaff8ad..9a0ee09bc 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -22,9 +23,11 @@ import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.EntityVindicator; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -38,7 +41,7 @@ public Vindicator getBukkitEntity() { return (Vindicator) super.getBukkitEntity(); } - public static class EntityVindicatorNPC extends EntityVindicator implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityVindicatorNPC extends EntityVindicator implements NPCHolder { boolean calledNMSHeight = false; private final CitizensNPC npc; @@ -70,6 +73,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -78,6 +89,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 ad91299d5..ececf0e70 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import java.util.List; @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -27,10 +28,12 @@ import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.EntityVillagerTrader; import net.minecraft.server.v1_15_R1.EnumHand; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.MerchantRecipe; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -44,9 +47,11 @@ public WanderingTrader getBukkitEntity() { return (WanderingTrader) super.getBukkitEntity(); } - public static class EntityWanderingTraderNPC extends EntityVillagerTrader implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityWanderingTraderNPC extends EntityVillagerTrader implements NPCHolder { private boolean blockingATrade; + private boolean blockTrades = true; + boolean calledNMSHeight = false; private final CitizensNPC npc; @@ -77,6 +82,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean a(EntityHuman entityhuman, EnumHand enumhand) { if (npc != null && blockTrades) { @@ -97,6 +110,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 5f33a8998..c871845d3 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -20,9 +21,11 @@ import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.EntityWitch; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -36,7 +39,7 @@ public org.bukkit.entity.Witch getBukkitEntity() { return (org.bukkit.entity.Witch) super.getBukkitEntity(); } - public static class EntityWitchNPC extends EntityWitch implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityWitchNPC extends EntityWitch implements NPCHolder { private final CitizensNPC npc; public EntityWitchNPC(EntityTypes types, World world) { @@ -55,6 +58,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -63,6 +74,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 e557e9873..8aebc44f4 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -20,8 +21,11 @@ import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.EntityWither; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; +import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; public class WitherController extends MobEntityController { @@ -34,7 +38,7 @@ public Wither getBukkitEntity() { return (Wither) super.getBukkitEntity(); } - public static class EntityWitherNPC extends EntityWither implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityWitherNPC extends EntityWither implements NPCHolder { private final CitizensNPC npc; public EntityWitherNPC(EntityTypes types, World world) { @@ -46,6 +50,24 @@ public EntityWitherNPC(EntityTypes types, World world, N this.npc = (CitizensNPC) npc; } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 dd790ff23..276ed96c3 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -24,9 +25,11 @@ import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.EntityWolf; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -40,7 +43,7 @@ public Wolf getBukkitEntity() { return (Wolf) super.getBukkitEntity(); } - public static class EntityWolfNPC extends EntityWolf implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityWolfNPC extends EntityWolf implements NPCHolder { boolean calledNMSHeight = false; private final CitizensNPC npc; @@ -72,6 +75,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -80,6 +91,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 67d1fe25a..6cdfa6f04 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -21,9 +22,11 @@ import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.EntityZombie; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -37,7 +40,7 @@ public Zombie getBukkitEntity() { return (Zombie) super.getBukkitEntity(); } - public static class EntityZombieNPC extends EntityZombie implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityZombieNPC extends EntityZombie implements NPCHolder { private final CitizensNPC npc; public EntityZombieNPC(EntityTypes types, World world) { @@ -56,6 +59,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -64,6 +75,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 c5ebd0abc..b650afaaa 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -21,9 +22,11 @@ import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.EntityZombieHusk; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -37,7 +40,7 @@ public Husk getBukkitEntity() { return (Husk) super.getBukkitEntity(); } - public static class EntityZombieHuskNPC extends EntityZombieHusk implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityZombieHuskNPC extends EntityZombieHusk implements NPCHolder { private final CitizensNPC npc; public EntityZombieHuskNPC(EntityTypes types, World world) { @@ -56,6 +59,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -64,6 +75,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 1a2969acf..7088334ff 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 @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; @@ -21,9 +22,11 @@ import net.minecraft.server.v1_15_R1.EntityMinecartAbstract; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.EntityZombieVillager; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.SoundEffect; +import net.minecraft.server.v1_15_R1.Tag; import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; @@ -37,7 +40,7 @@ public ZombieVillager getBukkitEntity() { return (ZombieVillager) super.getBukkitEntity(); } - public static class EntityZombieVillagerNPC extends EntityZombieVillager implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityZombieVillagerNPC extends EntityZombieVillager implements NPCHolder { private final CitizensNPC npc; public EntityZombieVillagerNPC(EntityTypes types, World world) { @@ -56,6 +59,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { @@ -64,6 +75,16 @@ public boolean b(float f, float f1) { return false; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void checkDespawn() { if (npc == null) { diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ArmorStandController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ArmorStandController.java index c131f837d..99c0fb585 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ArmorStandController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ArmorStandController.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity.nonliving;import net.minecraft.server.v1_15_R1.Vec3D; +package net.citizensnpcs.nms.v1_15_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -68,7 +68,12 @@ public EnumInteractionResult a(EntityHuman entityhuman, Vec3D vec3d, EnumHand en @Override public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/BoatController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/BoatController.java index 30d4bb557..351efd07d 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/BoatController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/BoatController.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity.nonliving;import net.minecraft.server.v1_15_R1.Vec3D; +package net.citizensnpcs.nms.v1_15_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -65,7 +65,12 @@ public EntityBoatNPC(EntityTypes types, World world, NPC n @Override public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/DragonFireballController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/DragonFireballController.java index 934619283..93559ee32 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/DragonFireballController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/DragonFireballController.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity.nonliving;import net.minecraft.server.v1_15_R1.Vec3D; +package net.citizensnpcs.nms.v1_15_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -19,6 +19,7 @@ import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.Tag; +import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; public class DragonFireballController extends MobEntityController { @@ -51,7 +52,12 @@ public EntityDragonFireballNPC(EntityTypes types @Override public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/EggController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/EggController.java index 6edbb404b..c15c632ac 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/EggController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/EggController.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity.nonliving;import net.minecraft.server.v1_15_R1.Vec3D; +package net.citizensnpcs.nms.v1_15_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -22,6 +22,7 @@ import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.Tag; +import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; import net.minecraft.server.v1_15_R1.WorldServer; @@ -67,7 +68,12 @@ public EntityEggNPC(World world, NPC npc, double d0, double d1, double d2) { @Override public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/EnderCrystalController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/EnderCrystalController.java index 4fe58458e..bc54b4aa2 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/EnderCrystalController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/EnderCrystalController.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity.nonliving;import net.minecraft.server.v1_15_R1.Vec3D; +package net.citizensnpcs.nms.v1_15_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -19,6 +19,7 @@ import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.Tag; +import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; public class EnderCrystalController extends MobEntityController { @@ -51,7 +52,12 @@ public EntityEnderCrystalNPC(EntityTypes types, Wo @Override public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/EnderPearlController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/EnderPearlController.java index 4c8f6a191..79a515fe8 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/EnderPearlController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/EnderPearlController.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity.nonliving;import net.minecraft.server.v1_15_R1.Vec3D; +package net.citizensnpcs.nms.v1_15_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -19,6 +19,7 @@ import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.Tag; +import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; public class EnderPearlController extends MobEntityController { @@ -51,7 +52,12 @@ public EntityEnderPearlNPC(EntityTypes types, World @Override public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/EnderSignalController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/EnderSignalController.java index 0f0e23427..4e19779ba 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/EnderSignalController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/EnderSignalController.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity.nonliving;import net.minecraft.server.v1_15_R1.Vec3D; +package net.citizensnpcs.nms.v1_15_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -19,6 +19,7 @@ import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.Tag; +import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; public class EnderSignalController extends MobEntityController { @@ -51,7 +52,12 @@ public EntityEnderSignalNPC(EntityTypes types, Worl @Override public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/EvokerFangsController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/EvokerFangsController.java index 18f10bf20..3a2606f4f 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/EvokerFangsController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/EvokerFangsController.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity.nonliving;import net.minecraft.server.v1_15_R1.Vec3D; +package net.citizensnpcs.nms.v1_15_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -62,7 +62,12 @@ public EnumInteractionResult a(EntityHuman entityhuman, Vec3D vec3d, EnumHand en @Override public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ExperienceOrbController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ExperienceOrbController.java index 973a6cba8..b01c29790 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ExperienceOrbController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ExperienceOrbController.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity.nonliving;import net.minecraft.server.v1_15_R1.Vec3D; +package net.citizensnpcs.nms.v1_15_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -19,6 +19,7 @@ import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.Tag; +import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; public class ExperienceOrbController extends MobEntityController { @@ -45,7 +46,12 @@ public EntityExperienceOrbNPC(EntityTypes types, @Override public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/FallingBlockController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/FallingBlockController.java index 3525dc0e6..42110ba23 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/FallingBlockController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/FallingBlockController.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity.nonliving;import net.minecraft.server.v1_15_R1.Vec3D; +package net.citizensnpcs.nms.v1_15_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -77,7 +77,12 @@ public EntityFallingBlockNPC(World world, NPC npc, double d0, double d1, double @Override public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/FireworkController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/FireworkController.java index 1c95bbe9f..358f137f5 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/FireworkController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/FireworkController.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity.nonliving;import net.minecraft.server.v1_15_R1.Vec3D; +package net.citizensnpcs.nms.v1_15_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -19,6 +19,7 @@ import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.Tag; +import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; public class FireworkController extends MobEntityController { @@ -45,7 +46,12 @@ public EntityFireworkNPC(EntityTypes types, World wor @Override public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/FishingHookController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/FishingHookController.java index e387565a9..396ed2e36 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/FishingHookController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/FishingHookController.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity.nonliving;import net.minecraft.server.v1_15_R1.Vec3D; +package net.citizensnpcs.nms.v1_15_R1.entity.nonliving; import java.util.UUID; @@ -29,6 +29,7 @@ import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.PlayerInteractManager; import net.minecraft.server.v1_15_R1.Tag; +import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; import net.minecraft.server.v1_15_R1.WorldServer; @@ -59,7 +60,12 @@ public EntityFishingHookNPC(EntityTypes types, Worl @Override public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ItemController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ItemController.java index d8639fea7..7a21e9b01 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ItemController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ItemController.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity.nonliving;import net.minecraft.server.v1_15_R1.Vec3D; +package net.citizensnpcs.nms.v1_15_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -28,6 +28,7 @@ import net.minecraft.server.v1_15_R1.ItemStack; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.Tag; +import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; import net.minecraft.server.v1_15_R1.WorldServer; @@ -74,7 +75,12 @@ public EntityItemNPC(World world, NPC npc, double x, double y, double z, ItemSta @Override public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ItemFrameController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ItemFrameController.java index 50f5cbf03..d16685c46 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ItemFrameController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ItemFrameController.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity.nonliving;import net.minecraft.server.v1_15_R1.Vec3D; +package net.citizensnpcs.nms.v1_15_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -26,6 +26,7 @@ import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.Tag; +import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; public class ItemFrameController extends MobEntityController { @@ -61,7 +62,12 @@ public EntityItemFrameNPC(EntityTypes types, World wo @Override public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/LargeFireballController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/LargeFireballController.java index b04582b58..4de92f1d4 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/LargeFireballController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/LargeFireballController.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity.nonliving;import net.minecraft.server.v1_15_R1.Vec3D; +package net.citizensnpcs.nms.v1_15_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -19,6 +19,7 @@ import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.Tag; +import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; public class LargeFireballController extends MobEntityController { @@ -45,7 +46,12 @@ public EntityLargeFireballNPC(EntityTypes types, @Override public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/LeashController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/LeashController.java index 29f22402f..d9bc170f4 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/LeashController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/LeashController.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity.nonliving;import net.minecraft.server.v1_15_R1.Vec3D; +package net.citizensnpcs.nms.v1_15_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -19,6 +19,7 @@ import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.Tag; +import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; public class LeashController extends MobEntityController { @@ -45,7 +46,12 @@ public EntityLeashNPC(EntityTypes types, World world, NPC @Override public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/LlamaSpitController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/LlamaSpitController.java index 90595d59d..36f0b4158 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/LlamaSpitController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/LlamaSpitController.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity.nonliving;import net.minecraft.server.v1_15_R1.Vec3D; +package net.citizensnpcs.nms.v1_15_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -23,6 +23,7 @@ import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.Tag; +import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; import net.minecraft.server.v1_15_R1.WorldServer; @@ -64,7 +65,12 @@ public EntityLlamaSpitNPC(World world, NPC npc, EntityLlama entity) { @Override public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartChestController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartChestController.java index 6d184b211..72f7af501 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartChestController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartChestController.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity.nonliving;import net.minecraft.server.v1_15_R1.Vec3D; +package net.citizensnpcs.nms.v1_15_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -19,6 +19,7 @@ import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.Tag; +import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; public class MinecartChestController extends MobEntityController { @@ -45,7 +46,12 @@ public EntityMinecartChestNPC(EntityTypes types, @Override public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartCommandController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartCommandController.java index 0a5c8f799..a6c89b084 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartCommandController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartCommandController.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity.nonliving;import net.minecraft.server.v1_15_R1.Vec3D; +package net.citizensnpcs.nms.v1_15_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -19,6 +19,7 @@ import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.Tag; +import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; public class MinecartCommandController extends MobEntityController { @@ -45,7 +46,12 @@ public EntityMinecartCommandNPC(EntityTypes tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartFurnaceController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartFurnaceController.java index 7d2763555..4749ee0c2 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartFurnaceController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartFurnaceController.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity.nonliving;import net.minecraft.server.v1_15_R1.Vec3D; +package net.citizensnpcs.nms.v1_15_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -19,6 +19,7 @@ import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.Tag; +import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; public class MinecartFurnaceController extends MobEntityController { @@ -45,7 +46,12 @@ public EntityMinecartFurnaceNPC(EntityTypes typ @Override public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartHopperController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartHopperController.java index 4b0c1c0f5..99a6eeb7f 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartHopperController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartHopperController.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity.nonliving;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity.nonliving; import org.bukkit.entity.Minecart; import org.bukkit.util.Vector; @@ -11,7 +11,10 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_15_R1.EntityMinecartHopper; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.NBTTagCompound; +import net.minecraft.server.v1_15_R1.Tag; +import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; public class MinecartHopperController extends MobEntityController { @@ -24,7 +27,7 @@ public Minecart getBukkitEntity() { return (Minecart) super.getBukkitEntity(); } - public static class EntityMinecartHopperNPC extends EntityMinecartHopper implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityMinecartHopperNPC extends EntityMinecartHopper implements NPCHolder { private final CitizensNPC npc; public EntityMinecartHopperNPC(EntityTypes types, World world) { @@ -36,6 +39,16 @@ public EntityMinecartHopperNPC(EntityTypes types this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_15_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartRideableController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartRideableController.java index b3321d9c5..85438424e 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartRideableController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartRideableController.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity.nonliving;import net.minecraft.server.v1_15_R1.Vec3D; +package net.citizensnpcs.nms.v1_15_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -19,6 +19,7 @@ import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.Tag; +import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; public class MinecartRideableController extends MobEntityController { @@ -45,7 +46,12 @@ public EntityMinecartRideableNPC(EntityTypes t @Override public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartSpawnerController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartSpawnerController.java index 00284aabc..6de33bc2a 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartSpawnerController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartSpawnerController.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity.nonliving;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity.nonliving; import org.bukkit.entity.Minecart; import org.bukkit.util.Vector; @@ -11,7 +11,10 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_15_R1.EntityMinecartMobSpawner; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.NBTTagCompound; +import net.minecraft.server.v1_15_R1.Tag; +import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; public class MinecartSpawnerController extends MobEntityController { @@ -24,7 +27,7 @@ public Minecart getBukkitEntity() { return (Minecart) super.getBukkitEntity(); } - public static class EntityMinecartSpawnerNPC extends EntityMinecartMobSpawner implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityMinecartSpawnerNPC extends EntityMinecartMobSpawner implements NPCHolder { private final CitizensNPC npc; public EntityMinecartSpawnerNPC(EntityTypes types, World world) { @@ -36,6 +39,16 @@ public EntityMinecartSpawnerNPC(EntityTypes this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_15_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartTNTController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartTNTController.java index 7863c207e..a28f386bb 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartTNTController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartTNTController.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity.nonliving;import net.minecraft.server.v1_15_R1.Vec3D;import net.minecraft.server.v1_15_R1.Tag;import net.minecraft.server.v1_15_R1.FluidType; +package net.citizensnpcs.nms.v1_15_R1.entity.nonliving; import org.bukkit.entity.Minecart; import org.bukkit.util.Vector; @@ -11,7 +11,10 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_15_R1.EntityMinecartTNT; import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.NBTTagCompound; +import net.minecraft.server.v1_15_R1.Tag; +import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; public class MinecartTNTController extends MobEntityController { @@ -24,7 +27,7 @@ public Minecart getBukkitEntity() { return (Minecart) super.getBukkitEntity(); } - public static class EntityMinecartTNTNPC extends EntityMinecartTNT implements NPCHolder {@Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; } + public static class EntityMinecartTNTNPC extends EntityMinecartTNT implements NPCHolder { private final CitizensNPC npc; public EntityMinecartTNTNPC(EntityTypes types, World world) { @@ -36,6 +39,16 @@ public EntityMinecartTNTNPC(EntityTypes types, Worl this.npc = (CitizensNPC) npc; } + @Override + public boolean b(Tag tag) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_15_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/PaintingController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/PaintingController.java index f432c74a5..bfd68c536 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/PaintingController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/PaintingController.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity.nonliving;import net.minecraft.server.v1_15_R1.Vec3D; +package net.citizensnpcs.nms.v1_15_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -19,6 +19,7 @@ import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.Tag; +import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; public class PaintingController extends MobEntityController { @@ -45,7 +46,12 @@ public EntityPaintingNPC(EntityTypes types, World worl @Override public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ShulkerBulletController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ShulkerBulletController.java index 7a657be20..61d8c04da 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ShulkerBulletController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ShulkerBulletController.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity.nonliving;import net.minecraft.server.v1_15_R1.Vec3D; +package net.citizensnpcs.nms.v1_15_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -19,6 +19,7 @@ import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.Tag; +import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; public class ShulkerBulletController extends MobEntityController { @@ -45,7 +46,12 @@ public EntityShulkerBulletNPC(EntityTypes types, @Override public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/SmallFireballController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/SmallFireballController.java index f13f0ec97..95f88e81e 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/SmallFireballController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/SmallFireballController.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity.nonliving;import net.minecraft.server.v1_15_R1.Vec3D; +package net.citizensnpcs.nms.v1_15_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -19,6 +19,7 @@ import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.Tag; +import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; public class SmallFireballController extends MobEntityController { @@ -45,7 +46,12 @@ public EntitySmallFireballNPC(EntityTypes types, @Override public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/SnowballController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/SnowballController.java index a6379a23c..970f2371f 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/SnowballController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/SnowballController.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity.nonliving;import net.minecraft.server.v1_15_R1.Vec3D; +package net.citizensnpcs.nms.v1_15_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -19,6 +19,7 @@ import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.Tag; +import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; public class SnowballController extends MobEntityController { @@ -45,7 +46,12 @@ public EntitySnowballNPC(EntityTypes types, World worl @Override public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/SpectralArrowController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/SpectralArrowController.java index cc4652c1b..0b711e314 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/SpectralArrowController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/SpectralArrowController.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity.nonliving;import net.minecraft.server.v1_15_R1.Vec3D; +package net.citizensnpcs.nms.v1_15_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -19,6 +19,7 @@ import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.Tag; +import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; public class SpectralArrowController extends MobEntityController { @@ -45,7 +46,12 @@ public EntitySpectralArrowNPC(EntityTypes types, @Override public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/TNTPrimedController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/TNTPrimedController.java index 2af3d3d76..ba45243ec 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/TNTPrimedController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/TNTPrimedController.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity.nonliving;import net.minecraft.server.v1_15_R1.Vec3D; +package net.citizensnpcs.nms.v1_15_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -19,6 +19,7 @@ import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.Tag; +import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; public class TNTPrimedController extends MobEntityController { @@ -45,7 +46,12 @@ public EntityTNTPrimedNPC(EntityTypes types, World wo @Override public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ThrownExpBottleController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ThrownExpBottleController.java index 3cf2c4fa0..18d20b9f7 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ThrownExpBottleController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ThrownExpBottleController.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity.nonliving;import net.minecraft.server.v1_15_R1.Vec3D; +package net.citizensnpcs.nms.v1_15_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -19,6 +19,7 @@ import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.Tag; +import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; public class ThrownExpBottleController extends MobEntityController { @@ -45,7 +46,12 @@ public EntityThrownExpBottleNPC(EntityTypes typ @Override public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ThrownPotionController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ThrownPotionController.java index 2e95ea66d..b6323f1b8 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ThrownPotionController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ThrownPotionController.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity.nonliving;import net.minecraft.server.v1_15_R1.Vec3D; +package net.citizensnpcs.nms.v1_15_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -20,6 +20,7 @@ import net.minecraft.server.v1_15_R1.Items; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.Tag; +import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; public class ThrownPotionController extends MobEntityController { @@ -46,7 +47,12 @@ public EntityThrownPotionNPC(EntityTypes types, World wo @Override public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ThrownTridentController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ThrownTridentController.java index 872d114e4..226f6e2b4 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ThrownTridentController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ThrownTridentController.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity.nonliving;import net.minecraft.server.v1_15_R1.Vec3D; +package net.citizensnpcs.nms.v1_15_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -19,6 +19,7 @@ import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.Tag; +import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; public class ThrownTridentController extends MobEntityController { @@ -45,7 +46,12 @@ public EntityThrownTridentNPC(EntityTypes types, @Override public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/TippedArrowController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/TippedArrowController.java index 391ddcf4d..d67623880 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/TippedArrowController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/TippedArrowController.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity.nonliving;import net.minecraft.server.v1_15_R1.Vec3D; +package net.citizensnpcs.nms.v1_15_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -19,6 +19,7 @@ import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.Tag; +import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; public class TippedArrowController extends MobEntityController { @@ -45,7 +46,12 @@ public EntityTippedArrowNPC(EntityTypes types, Worl @Override public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/WitherSkullController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/WitherSkullController.java index 4382029ba..f2d732aca 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/WitherSkullController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/WitherSkullController.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_15_R1.entity.nonliving;import net.minecraft.server.v1_15_R1.Vec3D; +package net.citizensnpcs.nms.v1_15_R1.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_15_R1.CraftServer; @@ -19,6 +19,7 @@ import net.minecraft.server.v1_15_R1.FluidType; import net.minecraft.server.v1_15_R1.NBTTagCompound; import net.minecraft.server.v1_15_R1.Tag; +import net.minecraft.server.v1_15_R1.Vec3D; import net.minecraft.server.v1_15_R1.World; public class WitherSkullController extends MobEntityController { @@ -45,7 +46,12 @@ public EntityWitherSkullNPC(EntityTypes types, Worl @Override public boolean b(Tag tag) { - Vec3D old = getMot().add(0, 0, 0); boolean res = super.b(tag); if (!npc.isPushableByFluids()) { this.setMot(old); } return res; + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; } @Override 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 18f9e62ee..1e0819603 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 @@ -1638,7 +1638,7 @@ public void stop() { @Override public void update() { updateNavigation(navigation); - }; + } } private static class NavigationIterable implements Iterable { diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/PlayerNavigation.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/PlayerNavigation.java index 6567b9016..ecf6a3844 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/PlayerNavigation.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/PlayerNavigation.java @@ -159,15 +159,7 @@ private boolean a(int var0, int var1, int var2, int var3, int var4, int var5, Ve double var17 = var14 + 0.5D - var6.z; if (var15 * var7 + var17 * var9 >= 0.0D) { PathType var19 = this.o.a(this.b, var13, var1 - 1, var14, this.a, var3, var4, var5, true, true); - if (var19 == PathType.WATER) { - return false; - } - - if (var19 == PathType.LAVA) { - return false; - } - - if (var19 == PathType.OPEN) { + if ((var19 == PathType.WATER) || (var19 == PathType.LAVA) || (var19 == PathType.OPEN)) { return false; } 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 13885e71b..2cdf79bd9 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftBat; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -26,6 +25,7 @@ import net.minecraft.server.v1_16_R3.NBTTagCompound; import net.minecraft.server.v1_16_R3.SoundEffect; import net.minecraft.server.v1_16_R3.Tag; +import net.minecraft.server.v1_16_R3.Vec3D; import net.minecraft.server.v1_16_R3.World; public class BatController extends MobEntityController { @@ -59,6 +59,14 @@ public EntityBatNPC(EntityTypes types, World world, NPC npc } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean a(Tag tag, double d0) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/BeeController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/BeeController.java index b53df85d1..719c40159 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftBee; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -26,6 +25,7 @@ import net.minecraft.server.v1_16_R3.NBTTagCompound; import net.minecraft.server.v1_16_R3.SoundEffect; import net.minecraft.server.v1_16_R3.Tag; +import net.minecraft.server.v1_16_R3.Vec3D; import net.minecraft.server.v1_16_R3.World; public class BeeController extends MobEntityController { @@ -45,16 +45,6 @@ public BeeNPC(EntityBeeNPC entity) { } public static class EntityBeeNPC extends EntityBee implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityBeeNPC(EntityTypes types, World world) { @@ -66,6 +56,24 @@ public EntityBeeNPC(EntityTypes types, World world, NPC npc this.npc = (CitizensNPC) npc; } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 674e1d228..561d64d80 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftBlaze; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -26,6 +25,7 @@ import net.minecraft.server.v1_16_R3.NBTTagCompound; import net.minecraft.server.v1_16_R3.SoundEffect; import net.minecraft.server.v1_16_R3.Tag; +import net.minecraft.server.v1_16_R3.Vec3D; import net.minecraft.server.v1_16_R3.World; public class BlazeController extends MobEntityController { @@ -45,16 +45,6 @@ public BlazeNPC(EntityBlazeNPC entity) { } public static class EntityBlazeNPC extends EntityBlaze implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityBlazeNPC(EntityTypes types, World world) { @@ -66,6 +56,24 @@ public EntityBlazeNPC(EntityTypes types, World world, NPC this.npc = (CitizensNPC) npc; } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 d2cb95f44..28e20fde4 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftCat; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -49,16 +48,6 @@ public CatNPC(EntityCatNPC entity) { } public static class EntityCatNPC extends EntityCat implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - boolean calledNMSHeight = false; private final CitizensNPC npc; @@ -89,6 +78,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 98caddb6a..e77676bc2 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftCaveSpider; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -48,16 +47,6 @@ public CaveSpiderNPC(EntityCaveSpiderNPC entity) { } public static class EntityCaveSpiderNPC extends EntityCaveSpider implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityCaveSpiderNPC(EntityTypes types, World world) { @@ -76,6 +65,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 1f1b50874..ae9844c51 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftChicken; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -49,16 +48,6 @@ public ChickenNPC(EntityChickenNPC entity) { } public static class EntityChickenNPC extends EntityChicken implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - boolean calledNMSHeight = false; private final CitizensNPC npc; @@ -90,6 +79,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 68a027dc3..22198c8e9 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftCod; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -55,17 +54,8 @@ public CodNPC(EntityCodNPC entity) { } public static class EntityCodNPC extends EntityCod implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; + private ControllerMove oldMoveController; public EntityCodNPC(EntityTypes types, World world) { @@ -88,6 +78,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public EnumInteractionResult b(EntityHuman entityhuman, EnumHand enumhand) { if (npc == null || !npc.isProtected()) 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 90ce49963..5e3297098 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftCow; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -54,16 +53,6 @@ public CowNPC(EntityCowNPC entity) { } public static class EntityCowNPC extends EntityCow implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - boolean calledNMSHeight = false; private final CitizensNPC npc; @@ -94,6 +83,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public EnumInteractionResult b(EntityHuman entityhuman, EnumHand enumhand) { if (npc == null || !npc.isProtected()) 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 06de316a4..21c2c58ca 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftCreeper; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -50,17 +49,8 @@ public CreeperNPC(EntityCreeperNPC entity) { } public static class EntityCreeperNPC extends EntityCreeper implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private boolean allowPowered; + private final CitizensNPC npc; public EntityCreeperNPC(EntityTypes types, World world) { @@ -79,6 +69,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 d6ef31dd1..cb1bc4e5c 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftDolphin; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -77,6 +76,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean a(Tag tag, double d0) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/DrownedController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/DrownedController.java index d1ce3e36d..a20ccaef3 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftDrowned; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -66,6 +65,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean a(Tag tag, double d0) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/EnderDragonController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/EnderDragonController.java index 35d365a7a..45d969cec 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEnderDragon; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -46,16 +45,6 @@ public EnderDragonNPC(EntityEnderDragonNPC entity) { } public static class EntityEnderDragonNPC extends EntityEnderDragon implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityEnderDragonNPC(EntityTypes types, World world) { @@ -67,6 +56,24 @@ public EntityEnderDragonNPC(EntityTypes types, Worl this.npc = (CitizensNPC) npc; } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 6ef94aa50..b0b91490e 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEnderman; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -48,16 +47,6 @@ public EndermanNPC(EntityEndermanNPC entity) { } public static class EntityEndermanNPC extends EntityEnderman implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityEndermanNPC(EntityTypes types, World world) { @@ -84,6 +73,24 @@ public boolean a(double d1, double d2, double d3, boolean b) { return false; } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 726d8f1a0..3a0588f71 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEndermite; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -48,16 +47,6 @@ public EndermiteNPC(EntityEndermiteNPC entity) { } public static class EntityEndermiteNPC extends EntityEndermite implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityEndermiteNPC(EntityTypes types, World world) { @@ -76,6 +65,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/EntityHumanNPC.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/EntityHumanNPC.java index d2a7968f8..8b0e0e425 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/EntityHumanNPC.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/EntityHumanNPC.java @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import java.io.IOException; import java.lang.invoke.MethodHandle; import java.net.Socket; @@ -119,11 +117,11 @@ public boolean a(EntityPlayer entityplayer) { } public float a(PathType pathtype) { - return this.bz.containsKey(pathtype) ? this.bz.get(pathtype).floatValue() : pathtype.a(); + return this.bz.containsKey(pathtype) ? this.bz.get(pathtype) : pathtype.a(); } public void a(PathType pathtype, float f) { - this.bz.put(pathtype, Float.valueOf(f)); + this.bz.put(pathtype, f); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/EvokerController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/EvokerController.java index 74b1975ad..cb67bf80e 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -42,16 +41,6 @@ public Evoker getBukkitEntity() { } public static class EntityEvokerNPC extends EntityEvoker implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityEvokerNPC(EntityTypes types, World world) { @@ -70,6 +59,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 1872b5a25..7211a5076 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -43,16 +42,6 @@ public Fox getBukkitEntity() { } public static class EntityFoxNPC extends EntityFox implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - boolean calledNMSHeight = false; private final CitizensNPC npc; @@ -83,6 +72,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 f9245821d..3138de8d4 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -26,6 +25,7 @@ import net.minecraft.server.v1_16_R3.NBTTagCompound; import net.minecraft.server.v1_16_R3.SoundEffect; import net.minecraft.server.v1_16_R3.Tag; +import net.minecraft.server.v1_16_R3.Vec3D; import net.minecraft.server.v1_16_R3.World; public class GhastController extends MobEntityController { @@ -39,16 +39,6 @@ public Ghast getBukkitEntity() { } public static class EntityGhastNPC extends EntityGhast implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityGhastNPC(EntityTypes types, World world) { @@ -60,6 +50,24 @@ public EntityGhastNPC(EntityTypes types, World world, NPC this.npc = (CitizensNPC) npc; } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 64df9200f..4a4e5d925 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -42,16 +41,6 @@ public Giant getBukkitEntity() { } public static class EntityGiantNPC extends EntityGiantZombie implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityGiantNPC(EntityTypes types, World world) { @@ -70,6 +59,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 d997c11d5..0d0a51ba3 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -42,16 +41,6 @@ public Guardian getBukkitEntity() { } public static class EntityGuardianNPC extends EntityGuardian implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityGuardianNPC(EntityTypes types, World world) { @@ -70,6 +59,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 52ca188e5..1e40b02e3 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftElderGuardian; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -42,16 +41,6 @@ public ElderGuardian getBukkitEntity() { } public static class EntityGuardianElderNPC extends EntityGuardianElder implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityGuardianElderNPC(EntityTypes types, World world) { @@ -70,6 +59,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 1663d7b69..2bba9631a 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -42,16 +41,6 @@ public Hoglin getBukkitEntity() { } public static class EntityHoglinNPC extends EntityHoglin implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityHoglinNPC(EntityTypes types, World world) { @@ -70,6 +59,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 ede6f5f4f..82b359aa0 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; @@ -11,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -54,18 +53,10 @@ public void spawn(Location at, NPC npc) { } public static class EntityHorseNPC extends EntityHorse implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private double baseMovementSpeed; + private boolean calledNMSHeight = false; + private final CitizensNPC npc; private boolean riding; @@ -101,6 +92,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 f054a8789..8ca5f5d47 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; @@ -11,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -55,6 +54,7 @@ public void spawn(Location at, NPC npc) { public static class EntityHorseDonkeyNPC extends EntityHorseDonkey implements NPCHolder { private double baseMovementSpeed; + boolean calledNMSHeight = false; private final CitizensNPC npc; private boolean riding; @@ -90,6 +90,14 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean a(Tag tag, double d0) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/HorseMuleController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/HorseMuleController.java index 4d05647a9..4f9398f8f 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; @@ -11,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -54,18 +53,10 @@ public void spawn(Location at, NPC npc) { } public static class EntityHorseMuleNPC extends EntityHorseMule implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private double baseMovementSpeed; + boolean calledNMSHeight = false; + private final CitizensNPC npc; private boolean riding; @@ -100,6 +91,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 9e725b0cd..1b4216ac6 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; @@ -11,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -54,18 +53,10 @@ public void spawn(Location at, NPC npc) { } public static class EntityHorseSkeletonNPC extends EntityHorseSkeleton implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private double baseMovementSpeed; + boolean calledNMSHeight = false; + private final CitizensNPC npc; private boolean riding; @@ -101,6 +92,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 2e04aad9c..47d88bb38 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; @@ -11,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -54,18 +53,10 @@ public void spawn(Location at, NPC npc) { } public static class EntityHorseZombieNPC extends EntityHorseZombie implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private double baseMovementSpeed; + boolean calledNMSHeight = false; + private final CitizensNPC npc; private boolean riding; @@ -101,6 +92,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/HumanController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/HumanController.java index 83b934804..5e10f9f53 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/HumanController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/HumanController.java @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import java.util.UUID; import org.bukkit.Bukkit; 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 7754a008b..faeed0ec7 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -42,16 +41,6 @@ public Illusioner getBukkitEntity() { } public static class EntityIllusionerNPC extends EntityIllagerIllusioner implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityIllusionerNPC(EntityTypes types, World world) { @@ -70,6 +59,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 8841ae3f8..736dcf5c3 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -42,16 +41,6 @@ public IronGolem getBukkitEntity() { } public static class EntityIronGolemNPC extends EntityIronGolem implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityIronGolemNPC(EntityTypes types, World world) { @@ -70,6 +59,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 00a82e388..258cf0cff 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; @@ -11,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -52,16 +51,6 @@ public void spawn(Location at, NPC npc) { } public static class EntityLlamaNPC extends EntityLlama implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - boolean calledNMSHeight = false; private final CitizensNPC npc; @@ -96,6 +85,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 6b58d9e75..3dfa53ebb 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -45,17 +44,8 @@ public MagmaCube getBukkitEntity() { } public static class EntityMagmaCubeNPC extends EntityMagmaCube implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; + private ControllerMove oldMoveController; public EntityMagmaCubeNPC(EntityTypes types, World world) { @@ -79,6 +69,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/MobEntityController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/MobEntityController.java index 156ff81bb..12d1332ba 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/MobEntityController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/MobEntityController.java @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import java.lang.invoke.MethodHandle; import java.lang.reflect.Constructor; import java.util.Map; 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 a4a14833e..ad1503e75 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -47,16 +46,6 @@ public MushroomCow getBukkitEntity() { } public static class EntityMushroomCowNPC extends EntityMushroomCow implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - boolean calledNMSHeight = false; private final CitizensNPC npc; @@ -88,6 +77,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public EnumInteractionResult b(EntityHuman entityhuman, EnumHand enumhand) { if (npc == null || !npc.isProtected()) 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 f908e0c08..79b96c999 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -44,16 +43,6 @@ public Ocelot getBukkitEntity() { } public static class EntityOcelotNPC extends EntityOcelot implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - boolean calledNMSHeight = false; private final CitizensNPC npc; @@ -85,6 +74,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 43fd0782a..38332ff77 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -43,16 +42,6 @@ public Panda getBukkitEntity() { } public static class EntityPandaNPC extends EntityPanda implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - boolean calledNMSHeight = false; private final CitizensNPC npc; @@ -83,6 +72,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 c70ee22b8..7961b986c 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -29,6 +28,7 @@ import net.minecraft.server.v1_16_R3.NBTTagCompound; import net.minecraft.server.v1_16_R3.SoundEffect; import net.minecraft.server.v1_16_R3.Tag; +import net.minecraft.server.v1_16_R3.Vec3D; import net.minecraft.server.v1_16_R3.World; public class ParrotController extends MobEntityController { @@ -42,16 +42,6 @@ public Parrot getBukkitEntity() { } public static class EntityParrotNPC extends EntityParrot implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityParrotNPC(EntityTypes types, World world) { @@ -63,6 +53,24 @@ public EntityParrotNPC(EntityTypes types, World world, N this.npc = (CitizensNPC) npc; } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public EnumInteractionResult b(EntityHuman paramEntityHuman, EnumHand paramEnumHand) { // block feeding 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 de4772702..988a2753b 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -48,20 +47,12 @@ public Phantom getBukkitEntity() { } public static class EntityPhantomNPC extends EntityPhantom implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - boolean calledNMSHeight = false; private final CitizensNPC npc; + private ControllerLook oldLookController; + private ControllerMove oldMoveController; public EntityPhantomNPC(EntityTypes types, World world) { @@ -99,6 +90,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 61abf6df7..a20e00e0a 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -45,16 +44,6 @@ public Pig getBukkitEntity() { } public static class EntityPigNPC extends EntityPig implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - boolean calledNMSHeight = false; private final CitizensNPC npc; @@ -86,6 +75,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 be07a08da..71b09fe77 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -43,16 +42,6 @@ public PigZombie getBukkitEntity() { } public static class EntityPigZombieNPC extends EntityPigZombie implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityPigZombieNPC(EntityTypes types, World world) { @@ -71,6 +60,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 bb478018c..8fefb02c6 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -42,16 +41,6 @@ public PiglinBrute getBukkitEntity() { } public static class EntityPiglinBruteNPC extends EntityPiglinBrute implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityPiglinBruteNPC(EntityTypes types, World world) { @@ -70,6 +59,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 ce95ca0e4..f3eb71e91 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -42,16 +41,6 @@ public Piglin getBukkitEntity() { } public static class EntityPiglinNPC extends EntityPiglin implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityPiglinNPC(EntityTypes types, World world) { @@ -70,6 +59,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 9ac5493cd..94a56db6c 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -43,16 +42,6 @@ public Pillager getBukkitEntity() { } public static class EntityPillagerNPC extends EntityPillager implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - boolean calledNMSHeight = false; private final CitizensNPC npc; @@ -83,6 +72,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 5b2578fb2..979ecc09a 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -27,6 +26,7 @@ import net.minecraft.server.v1_16_R3.NBTTagCompound; import net.minecraft.server.v1_16_R3.SoundEffect; import net.minecraft.server.v1_16_R3.Tag; +import net.minecraft.server.v1_16_R3.Vec3D; import net.minecraft.server.v1_16_R3.World; public class PolarBearController extends MobEntityController { @@ -40,16 +40,6 @@ public PolarBear getBukkitEntity() { } public static class EntityPolarBearNPC extends EntityPolarBear implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - boolean calledNMSHeight = false; private final CitizensNPC npc; @@ -74,6 +64,24 @@ public void a(DataWatcherObject datawatcherobject) { super.a(datawatcherobject); } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 3441bccc2..55f7dcba8 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -52,17 +51,8 @@ public PufferFish getBukkitEntity() { } public static class EntityPufferFishNPC extends EntityPufferFish implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; + private ControllerMove oldMoveController; public EntityPufferFishNPC(EntityTypes types, World world) { @@ -93,6 +83,24 @@ public EntitySize a(EntityPose entitypose) { return super.a(entitypose).a(1 / s(getPuffState())).a(0.5F); } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public EnumInteractionResult b(EntityHuman entityhuman, EnumHand enumhand) { if (npc == null || !npc.isProtected()) 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 0cdba89a3..f12567121 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -45,16 +44,6 @@ public Rabbit getBukkitEntity() { } public static class EntityRabbitNPC extends EntityRabbit implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - boolean calledNMSHeight = false; private final CitizensNPC npc; @@ -86,6 +75,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 ff3dd508a..8a0a1943e 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -43,16 +42,6 @@ public Ravager getBukkitEntity() { } public static class EntityRavagerNPC extends EntityRavager implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - boolean calledNMSHeight = false; private final CitizensNPC npc; @@ -83,6 +72,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 7c62bb2e4..6d29e1b75 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -49,17 +48,8 @@ public Salmon getBukkitEntity() { } public static class EntitySalmonNPC extends EntitySalmon implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; + private ControllerMove oldMoveController; public EntitySalmonNPC(EntityTypes types, World world) { @@ -82,6 +72,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public EnumInteractionResult b(EntityHuman entityhuman, EnumHand enumhand) { if (npc == null || !npc.isProtected()) 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 2209c039b..def9a030c 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -43,16 +42,6 @@ public Sheep getBukkitEntity() { } public static class EntitySheepNPC extends EntitySheep implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - boolean calledNMSHeight = false; private final CitizensNPC npc; @@ -84,6 +73,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 76a836b56..13a294d5d 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -43,16 +42,6 @@ public Shulker getBukkitEntity() { } public static class EntityShulkerNPC extends EntityShulker implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityShulkerNPC(EntityTypes types, World world) { @@ -71,6 +60,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 f8f7f76f4..487d95d06 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -42,16 +41,6 @@ public Silverfish getBukkitEntity() { } public static class EntitySilverfishNPC extends EntitySilverfish implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntitySilverfishNPC(EntityTypes types, World world) { @@ -70,6 +59,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 d2b3a5bf0..a596ebd72 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -42,16 +41,6 @@ public Skeleton getBukkitEntity() { } public static class EntitySkeletonNPC extends EntitySkeleton implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntitySkeletonNPC(EntityTypes types, World world) { @@ -70,6 +59,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 0fced3f09..a06b1e054 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -42,16 +41,6 @@ public Stray getBukkitEntity() { } public static class EntityStrayNPC extends EntitySkeletonStray implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityStrayNPC(EntityTypes types, World world) { @@ -70,6 +59,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 884a83a41..d7f63c86b 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -42,16 +41,6 @@ public WitherSkeleton getBukkitEntity() { } public static class EntitySkeletonWitherNPC extends EntitySkeletonWither implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntitySkeletonWitherNPC(EntityTypes types, World world) { @@ -70,6 +59,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 9ac5cb624..f56d93a6b 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -45,17 +44,8 @@ public Slime getBukkitEntity() { } public static class EntitySlimeNPC extends EntitySlime implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; + private ControllerMove oldMoveController; public EntitySlimeNPC(EntityTypes types, World world) { @@ -79,6 +69,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 938effcd7..6d7c70e9e 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -43,16 +42,6 @@ public Snowman getBukkitEntity() { } public static class EntitySnowmanNPC extends EntitySnowman implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntitySnowmanNPC(EntityTypes types, World world) { @@ -71,6 +60,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 c6c887522..f9791e0e7 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -42,16 +41,6 @@ public Spider getBukkitEntity() { } public static class EntitySpiderNPC extends EntitySpider implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntitySpiderNPC(EntityTypes types, World world) { @@ -70,6 +59,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 9f41d8243..3e7de5e0d 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -42,16 +41,6 @@ public Squid getBukkitEntity() { } public static class EntitySquidNPC extends EntitySquid implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntitySquidNPC(EntityTypes types, World world) { @@ -70,6 +59,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 50b2dc8a1..e12d16eed 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -42,16 +41,6 @@ public Strider getBukkitEntity() { } public static class EntityStriderNPC extends EntityStrider implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityStriderNPC(EntityTypes types, World world) { @@ -70,6 +59,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 42507b2e7..95a54a87b 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import java.lang.invoke.MethodHandle; import org.bukkit.Bukkit; @@ -13,6 +11,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -54,16 +53,6 @@ public void spawn(Location at, NPC npc) { } public static class EntityTraderLlamaNPC extends EntityLlamaTrader implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - boolean calledNMSHeight = false; private final CitizensNPC npc; @@ -99,6 +88,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 27ef54b4b..d0ac6b3e1 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -49,17 +48,8 @@ public TropicalFish getBukkitEntity() { } public static class EntityTropicalFishNPC extends EntityTropicalFish implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; + private ControllerMove oldMoveController; public EntityTropicalFishNPC(EntityTypes types, World world) { @@ -82,6 +72,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public EnumInteractionResult b(EntityHuman entityhuman, EnumHand enumhand) { if (npc == null || !npc.isProtected()) 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 a790d1a33..df1c70441 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -46,18 +45,10 @@ public Turtle getBukkitEntity() { } public static class EntityTurtleNPC extends EntityTurtle implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; + private ControllerJump oldJumpController; + private ControllerMove oldMoveController; public EntityTurtleNPC(EntityTypes types, World world) { @@ -82,6 +73,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 cf64d7267..1e10f847a 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -26,6 +25,7 @@ import net.minecraft.server.v1_16_R3.NBTTagCompound; import net.minecraft.server.v1_16_R3.SoundEffect; import net.minecraft.server.v1_16_R3.Tag; +import net.minecraft.server.v1_16_R3.Vec3D; import net.minecraft.server.v1_16_R3.World; public class VexController extends MobEntityController { @@ -39,16 +39,6 @@ public Vex getBukkitEntity() { } public static class EntityVexNPC extends EntityVex implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityVexNPC(EntityTypes types, World world) { @@ -63,6 +53,24 @@ public EntityVexNPC(EntityTypes types, World world, NPC npc } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 040c5f348..af02e98c4 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import java.util.List; import org.bukkit.Bukkit; @@ -12,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -52,18 +51,10 @@ public Villager getBukkitEntity() { } public static class EntityVillagerNPC extends EntityVillager implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private boolean blockingATrade; + boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityVillagerNPC(EntityTypes types, World world) { @@ -96,6 +87,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public EnumInteractionResult b(EntityHuman entityhuman, EnumHand enumhand) { if (npc != null && npc.data().get(NPC.VILLAGER_BLOCK_TRADES, true)) { 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 290d7f282..5ab5dfdf6 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -43,16 +42,6 @@ public Vindicator getBukkitEntity() { } public static class EntityVindicatorNPC extends EntityVindicator implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - boolean calledNMSHeight = false; private final CitizensNPC npc; @@ -84,6 +73,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 ab1384288..0746217ae 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import java.util.List; import org.bukkit.Bukkit; @@ -12,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -51,18 +50,10 @@ public WanderingTrader getBukkitEntity() { } public static class EntityWanderingTraderNPC extends EntityVillagerTrader implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private boolean blockingATrade; + private boolean blockTrades = true; + boolean calledNMSHeight = false; private final CitizensNPC npc; @@ -93,6 +84,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public EnumInteractionResult b(EntityHuman entityhuman, EnumHand enumhand) { if (npc != null && blockTrades) { 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 55a6628b2..dc7968aa3 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -42,16 +41,6 @@ public Witch getBukkitEntity() { } public static class EntityWitchNPC extends EntityWitch implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityWitchNPC(EntityTypes types, World world) { @@ -70,6 +59,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 83170f4f0..e1849bc76 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -26,6 +25,7 @@ import net.minecraft.server.v1_16_R3.NBTTagCompound; import net.minecraft.server.v1_16_R3.SoundEffect; import net.minecraft.server.v1_16_R3.Tag; +import net.minecraft.server.v1_16_R3.Vec3D; import net.minecraft.server.v1_16_R3.World; public class WitherController extends MobEntityController { @@ -39,16 +39,6 @@ public Wither getBukkitEntity() { } public static class EntityWitherNPC extends EntityWither implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityWitherNPC(EntityTypes types, World world) { @@ -60,6 +50,24 @@ public EntityWitherNPC(EntityTypes types, World world, N this.npc = (CitizensNPC) npc; } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @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 770ebfc1e..cfa22bc58 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -11,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -45,16 +44,6 @@ public Wolf getBukkitEntity() { } public static class EntityWolfNPC extends EntityWolf implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - boolean calledNMSHeight = false; private final CitizensNPC npc; @@ -86,6 +75,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 d1ff5be57..fea34091d 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -42,16 +41,6 @@ public Zoglin getBukkitEntity() { } public static class EntityZoglinNPC extends EntityZoglin implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityZoglinNPC(EntityTypes types, World world) { @@ -70,6 +59,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 6055ba1c7..d57744476 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -42,16 +41,6 @@ public Zombie getBukkitEntity() { } public static class EntityZombieNPC extends EntityZombie implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityZombieNPC(EntityTypes types, World world) { @@ -70,6 +59,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 195f96876..14436ea02 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -42,16 +41,6 @@ public Husk getBukkitEntity() { } public static class EntityZombieHuskNPC extends EntityZombieHusk implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityZombieHuskNPC(EntityTypes types, World world) { @@ -70,6 +59,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 143bd7630..2d7950e0a 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 @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -10,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; @@ -42,16 +41,6 @@ public ZombieVillager getBukkitEntity() { } public static class EntityZombieVillagerNPC extends EntityZombieVillager implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityZombieVillagerNPC(EntityTypes types, World world) { @@ -70,6 +59,24 @@ protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockp } } + @Override + public void a(float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a((float)event.getStrength(), kb.getX(), kb.getZ()); + } + + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public boolean b(float f, float f1) { if (npc == null || !npc.isFlyable()) { diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/AreaEffectCloudController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/AreaEffectCloudController.java index 5ea8e3bf0..2e738a6ed 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/AreaEffectCloudController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/AreaEffectCloudController.java @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity.nonliving; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftAreaEffectCloud; @@ -21,6 +19,7 @@ import net.minecraft.server.v1_16_R3.FluidType; import net.minecraft.server.v1_16_R3.NBTTagCompound; import net.minecraft.server.v1_16_R3.Tag; +import net.minecraft.server.v1_16_R3.Vec3D; import net.minecraft.server.v1_16_R3.World; public class AreaEffectCloudController extends MobEntityController { @@ -40,16 +39,6 @@ public AreaEffectCloudNPC(EntityAreaEffectCloudNPC entity) { } public static class EntityAreaEffectCloudNPC extends EntityAreaEffectCloud implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityAreaEffectCloudNPC(EntityTypes types, World world) { @@ -61,6 +50,16 @@ public EntityAreaEffectCloudNPC(EntityTypes typ this.npc = (CitizensNPC) npc; } + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_16_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ArmorStandController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ArmorStandController.java index 69cab9519..2f1f781bd 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ArmorStandController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ArmorStandController.java @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity.nonliving; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftArmorStand; @@ -46,16 +44,6 @@ public ArmorStandNPC(EntityArmorStandNPC entity) { } public static class EntityArmorStandNPC extends EntityArmorStand implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityArmorStandNPC(EntityTypes types, World world) { @@ -78,6 +66,16 @@ public EnumInteractionResult a(EntityHuman entityhuman, Vec3D vec3d, EnumHand en return event.isCancelled() ? EnumInteractionResult.FAIL : EnumInteractionResult.SUCCESS; } + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_16_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/BoatController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/BoatController.java index de5dd85bf..006cee499 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/BoatController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/BoatController.java @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity.nonliving; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftBoat; @@ -48,17 +46,8 @@ public BoatNPC(EntityBoatNPC entity) { } public static class EntityBoatNPC extends EntityBoat implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private double aC; + private float aD; private EnumStatus aE; private EnumStatus aF; @@ -75,6 +64,16 @@ public EntityBoatNPC(EntityTypes types, World world, NPC n this.npc = (CitizensNPC) npc; } + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_16_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/DragonFireballController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/DragonFireballController.java index a6545e4ea..7ca9530d6 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/DragonFireballController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/DragonFireballController.java @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity.nonliving; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftDragonFireball; @@ -21,6 +19,7 @@ import net.minecraft.server.v1_16_R3.FluidType; import net.minecraft.server.v1_16_R3.NBTTagCompound; import net.minecraft.server.v1_16_R3.Tag; +import net.minecraft.server.v1_16_R3.Vec3D; import net.minecraft.server.v1_16_R3.World; public class DragonFireballController extends MobEntityController { @@ -40,16 +39,6 @@ public DragonFireballNPC(EntityDragonFireballNPC entity) { } public static class EntityDragonFireballNPC extends EntityDragonFireball implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityDragonFireballNPC(EntityTypes types, World world) { @@ -61,6 +50,16 @@ public EntityDragonFireballNPC(EntityTypes types this.npc = (CitizensNPC) npc; } + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_16_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/EggController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/EggController.java index 387e00732..1633872e8 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/EggController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/EggController.java @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity.nonliving; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; @@ -24,6 +22,7 @@ import net.minecraft.server.v1_16_R3.FluidType; import net.minecraft.server.v1_16_R3.NBTTagCompound; import net.minecraft.server.v1_16_R3.Tag; +import net.minecraft.server.v1_16_R3.Vec3D; import net.minecraft.server.v1_16_R3.World; import net.minecraft.server.v1_16_R3.WorldServer; @@ -51,16 +50,6 @@ public EggNPC(EntityEggNPC entity) { } public static class EntityEggNPC extends EntityEgg implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityEggNPC(EntityTypes types, World world) { @@ -77,6 +66,16 @@ public EntityEggNPC(World world, NPC npc, double d0, double d1, double d2) { this.npc = (CitizensNPC) npc; } + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_16_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/EnderCrystalController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/EnderCrystalController.java index 33cedcbaa..cc499c211 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/EnderCrystalController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/EnderCrystalController.java @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity.nonliving; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEnderCrystal; @@ -21,6 +19,7 @@ import net.minecraft.server.v1_16_R3.FluidType; import net.minecraft.server.v1_16_R3.NBTTagCompound; import net.minecraft.server.v1_16_R3.Tag; +import net.minecraft.server.v1_16_R3.Vec3D; import net.minecraft.server.v1_16_R3.World; public class EnderCrystalController extends MobEntityController { @@ -40,16 +39,6 @@ public EnderCrystalNPC(EntityEnderCrystalNPC entity) { } public static class EntityEnderCrystalNPC extends EntityEnderCrystal implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityEnderCrystalNPC(EntityTypes types, World world) { @@ -61,6 +50,16 @@ public EntityEnderCrystalNPC(EntityTypes types, Wo this.npc = (CitizensNPC) npc; } + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_16_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/EnderPearlController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/EnderPearlController.java index fdf812427..7340dd094 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/EnderPearlController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/EnderPearlController.java @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity.nonliving; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEnderPearl; @@ -21,6 +19,7 @@ import net.minecraft.server.v1_16_R3.FluidType; import net.minecraft.server.v1_16_R3.NBTTagCompound; import net.minecraft.server.v1_16_R3.Tag; +import net.minecraft.server.v1_16_R3.Vec3D; import net.minecraft.server.v1_16_R3.World; public class EnderPearlController extends MobEntityController { @@ -40,16 +39,6 @@ public EnderPearlNPC(EntityEnderPearlNPC entity) { } public static class EntityEnderPearlNPC extends EntityEnderPearl implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityEnderPearlNPC(EntityTypes types, World world) { @@ -61,6 +50,16 @@ public EntityEnderPearlNPC(EntityTypes types, World this.npc = (CitizensNPC) npc; } + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_16_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/EnderSignalController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/EnderSignalController.java index 88809487d..3fb57984b 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/EnderSignalController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/EnderSignalController.java @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity.nonliving; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEnderSignal; @@ -21,6 +19,7 @@ import net.minecraft.server.v1_16_R3.FluidType; import net.minecraft.server.v1_16_R3.NBTTagCompound; import net.minecraft.server.v1_16_R3.Tag; +import net.minecraft.server.v1_16_R3.Vec3D; import net.minecraft.server.v1_16_R3.World; public class EnderSignalController extends MobEntityController { @@ -40,16 +39,6 @@ public EnderSignalNPC(EntityEnderSignalNPC entity) { } public static class EntityEnderSignalNPC extends EntityEnderSignal implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityEnderSignalNPC(EntityTypes types, World world) { @@ -61,6 +50,16 @@ public EntityEnderSignalNPC(EntityTypes types, Worl this.npc = (CitizensNPC) npc; } + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_16_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/EvokerFangsController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/EvokerFangsController.java index d70598091..019fbfd4e 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/EvokerFangsController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/EvokerFangsController.java @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity.nonliving; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -40,16 +38,6 @@ public EvokerFangs getBukkitEntity() { } public static class EntityEvokerFangsNPC extends EntityEvokerFangs implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityEvokerFangsNPC(EntityTypes types, World world) { @@ -72,6 +60,16 @@ public EnumInteractionResult a(EntityHuman entityhuman, Vec3D vec3d, EnumHand en return event.isCancelled() ? EnumInteractionResult.FAIL : EnumInteractionResult.SUCCESS; } + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_16_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ExperienceOrbController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ExperienceOrbController.java index fa2c8b451..8c92015ee 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ExperienceOrbController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ExperienceOrbController.java @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity.nonliving; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -21,6 +19,7 @@ import net.minecraft.server.v1_16_R3.FluidType; import net.minecraft.server.v1_16_R3.NBTTagCompound; import net.minecraft.server.v1_16_R3.Tag; +import net.minecraft.server.v1_16_R3.Vec3D; import net.minecraft.server.v1_16_R3.World; public class ExperienceOrbController extends MobEntityController { @@ -34,16 +33,6 @@ public ExperienceOrb getBukkitEntity() { } public static class EntityExperienceOrbNPC extends EntityExperienceOrb implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityExperienceOrbNPC(EntityTypes types, World world) { @@ -55,6 +44,16 @@ public EntityExperienceOrbNPC(EntityTypes types, this.npc = (CitizensNPC) npc; } + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_16_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/FallingBlockController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/FallingBlockController.java index 691e57db8..f2e2bdb4b 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/FallingBlockController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/FallingBlockController.java @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity.nonliving; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/FireworkController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/FireworkController.java index 27ad589c5..9b9e74b9a 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/FireworkController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/FireworkController.java @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity.nonliving; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -21,6 +19,7 @@ import net.minecraft.server.v1_16_R3.FluidType; import net.minecraft.server.v1_16_R3.NBTTagCompound; import net.minecraft.server.v1_16_R3.Tag; +import net.minecraft.server.v1_16_R3.Vec3D; import net.minecraft.server.v1_16_R3.World; public class FireworkController extends MobEntityController { @@ -34,16 +33,6 @@ public Firework getBukkitEntity() { } public static class EntityFireworkNPC extends EntityFireworks implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityFireworkNPC(EntityTypes types, World world) { @@ -55,6 +44,16 @@ public EntityFireworkNPC(EntityTypes types, World wor this.npc = (CitizensNPC) npc; } + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_16_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/FishingHookController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/FishingHookController.java index 81196c1a9..6646e3536 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/FishingHookController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/FishingHookController.java @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity.nonliving; -import net.minecraft.server.v1_16_R3.Vec3D; - import java.lang.invoke.MethodHandle; import java.util.UUID; diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ItemController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ItemController.java index 9c7544f4b..f11bace8d 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ItemController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ItemController.java @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity.nonliving; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; @@ -30,6 +28,7 @@ import net.minecraft.server.v1_16_R3.ItemStack; import net.minecraft.server.v1_16_R3.NBTTagCompound; import net.minecraft.server.v1_16_R3.Tag; +import net.minecraft.server.v1_16_R3.Vec3D; import net.minecraft.server.v1_16_R3.World; import net.minecraft.server.v1_16_R3.WorldServer; diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ItemFrameController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ItemFrameController.java index 0e5eb7494..b8ad360e3 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ItemFrameController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ItemFrameController.java @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity.nonliving; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; @@ -28,6 +26,7 @@ import net.minecraft.server.v1_16_R3.FluidType; import net.minecraft.server.v1_16_R3.NBTTagCompound; import net.minecraft.server.v1_16_R3.Tag; +import net.minecraft.server.v1_16_R3.Vec3D; import net.minecraft.server.v1_16_R3.World; public class ItemFrameController extends MobEntityController { diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/LargeFireballController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/LargeFireballController.java index 542d03888..0e6c97f81 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/LargeFireballController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/LargeFireballController.java @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity.nonliving; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -21,6 +19,7 @@ import net.minecraft.server.v1_16_R3.FluidType; import net.minecraft.server.v1_16_R3.NBTTagCompound; import net.minecraft.server.v1_16_R3.Tag; +import net.minecraft.server.v1_16_R3.Vec3D; import net.minecraft.server.v1_16_R3.World; public class LargeFireballController extends MobEntityController { @@ -34,16 +33,6 @@ public LargeFireball getBukkitEntity() { } public static class EntityLargeFireballNPC extends EntityLargeFireball implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityLargeFireballNPC(EntityTypes types, World world) { @@ -55,6 +44,16 @@ public EntityLargeFireballNPC(EntityTypes types, this.npc = (CitizensNPC) npc; } + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_16_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/LeashController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/LeashController.java index 4c28ee2cc..3a824b598 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/LeashController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/LeashController.java @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity.nonliving; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -21,6 +19,7 @@ import net.minecraft.server.v1_16_R3.FluidType; import net.minecraft.server.v1_16_R3.NBTTagCompound; import net.minecraft.server.v1_16_R3.Tag; +import net.minecraft.server.v1_16_R3.Vec3D; import net.minecraft.server.v1_16_R3.World; public class LeashController extends MobEntityController { @@ -34,16 +33,6 @@ public LeashHitch getBukkitEntity() { } public static class EntityLeashNPC extends EntityLeash implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityLeashNPC(EntityTypes types, World world) { @@ -55,6 +44,16 @@ public EntityLeashNPC(EntityTypes types, World world, NPC this.npc = (CitizensNPC) npc; } + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_16_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/LlamaSpitController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/LlamaSpitController.java index 93e336714..cb9116733 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/LlamaSpitController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/LlamaSpitController.java @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity.nonliving; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; @@ -25,6 +23,7 @@ import net.minecraft.server.v1_16_R3.FluidType; import net.minecraft.server.v1_16_R3.NBTTagCompound; import net.minecraft.server.v1_16_R3.Tag; +import net.minecraft.server.v1_16_R3.Vec3D; import net.minecraft.server.v1_16_R3.World; import net.minecraft.server.v1_16_R3.WorldServer; @@ -48,16 +47,6 @@ public LlamaSpit getBukkitEntity() { } public static class EntityLlamaSpitNPC extends EntityLlamaSpit implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityLlamaSpitNPC(EntityTypes types, World world) { @@ -74,6 +63,16 @@ public EntityLlamaSpitNPC(World world, NPC npc, EntityLlama entity) { this.npc = (CitizensNPC) npc; } + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_16_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartChestController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartChestController.java index 7af9162ab..95752beb0 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartChestController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartChestController.java @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity.nonliving; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -21,6 +19,7 @@ import net.minecraft.server.v1_16_R3.FluidType; import net.minecraft.server.v1_16_R3.NBTTagCompound; import net.minecraft.server.v1_16_R3.Tag; +import net.minecraft.server.v1_16_R3.Vec3D; import net.minecraft.server.v1_16_R3.World; public class MinecartChestController extends MobEntityController { @@ -34,16 +33,6 @@ public Minecart getBukkitEntity() { } public static class EntityMinecartChestNPC extends EntityMinecartChest implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityMinecartChestNPC(EntityTypes types, World world) { @@ -55,6 +44,16 @@ public EntityMinecartChestNPC(EntityTypes types, this.npc = (CitizensNPC) npc; } + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_16_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartCommandController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartCommandController.java index e2d8025a7..6f2f8ce90 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartCommandController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartCommandController.java @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity.nonliving; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -21,6 +19,7 @@ import net.minecraft.server.v1_16_R3.FluidType; import net.minecraft.server.v1_16_R3.NBTTagCompound; import net.minecraft.server.v1_16_R3.Tag; +import net.minecraft.server.v1_16_R3.Vec3D; import net.minecraft.server.v1_16_R3.World; public class MinecartCommandController extends MobEntityController { @@ -34,16 +33,6 @@ public Minecart getBukkitEntity() { } public static class EntityMinecartCommandNPC extends EntityMinecartCommandBlock implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityMinecartCommandNPC(EntityTypes types, World world) { @@ -55,6 +44,16 @@ public EntityMinecartCommandNPC(EntityTypes tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_16_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartFurnaceController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartFurnaceController.java index e619f2817..6dd098b8d 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartFurnaceController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartFurnaceController.java @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity.nonliving; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -21,6 +19,7 @@ import net.minecraft.server.v1_16_R3.FluidType; import net.minecraft.server.v1_16_R3.NBTTagCompound; import net.minecraft.server.v1_16_R3.Tag; +import net.minecraft.server.v1_16_R3.Vec3D; import net.minecraft.server.v1_16_R3.World; public class MinecartFurnaceController extends MobEntityController { @@ -34,16 +33,6 @@ public Minecart getBukkitEntity() { } public static class EntityMinecartFurnaceNPC extends EntityMinecartFurnace implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityMinecartFurnaceNPC(EntityTypes types, World world) { @@ -55,6 +44,16 @@ public EntityMinecartFurnaceNPC(EntityTypes typ this.npc = (CitizensNPC) npc; } + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_16_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartHopperController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartHopperController.java index af0f16850..cb435e62d 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartHopperController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartHopperController.java @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity.nonliving; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.entity.Minecart; import org.bukkit.util.Vector; @@ -16,6 +14,7 @@ import net.minecraft.server.v1_16_R3.FluidType; import net.minecraft.server.v1_16_R3.NBTTagCompound; import net.minecraft.server.v1_16_R3.Tag; +import net.minecraft.server.v1_16_R3.Vec3D; import net.minecraft.server.v1_16_R3.World; public class MinecartHopperController extends MobEntityController { @@ -29,16 +28,6 @@ public Minecart getBukkitEntity() { } public static class EntityMinecartHopperNPC extends EntityMinecartHopper implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityMinecartHopperNPC(EntityTypes types, World world) { @@ -50,6 +39,16 @@ public EntityMinecartHopperNPC(EntityTypes types this.npc = (CitizensNPC) npc; } + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_16_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartRideableController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartRideableController.java index b75e716a8..a147181af 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartRideableController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartRideableController.java @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity.nonliving; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -21,6 +19,7 @@ import net.minecraft.server.v1_16_R3.FluidType; import net.minecraft.server.v1_16_R3.NBTTagCompound; import net.minecraft.server.v1_16_R3.Tag; +import net.minecraft.server.v1_16_R3.Vec3D; import net.minecraft.server.v1_16_R3.World; public class MinecartRideableController extends MobEntityController { @@ -34,16 +33,6 @@ public Minecart getBukkitEntity() { } public static class EntityMinecartRideableNPC extends EntityMinecartRideable implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityMinecartRideableNPC(EntityTypes types, World world) { @@ -55,6 +44,16 @@ public EntityMinecartRideableNPC(EntityTypes t this.npc = (CitizensNPC) npc; } + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_16_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartSpawnerController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartSpawnerController.java index 7ccdce81b..19d454de9 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartSpawnerController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartSpawnerController.java @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity.nonliving; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.entity.Minecart; import org.bukkit.util.Vector; @@ -16,6 +14,7 @@ import net.minecraft.server.v1_16_R3.FluidType; import net.minecraft.server.v1_16_R3.NBTTagCompound; import net.minecraft.server.v1_16_R3.Tag; +import net.minecraft.server.v1_16_R3.Vec3D; import net.minecraft.server.v1_16_R3.World; public class MinecartSpawnerController extends MobEntityController { @@ -29,16 +28,6 @@ public Minecart getBukkitEntity() { } public static class EntityMinecartSpawnerNPC extends EntityMinecartMobSpawner implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityMinecartSpawnerNPC(EntityTypes types, World world) { @@ -50,6 +39,16 @@ public EntityMinecartSpawnerNPC(EntityTypes this.npc = (CitizensNPC) npc; } + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_16_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartTNTController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartTNTController.java index d1bff7e25..00d2dd7c7 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartTNTController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartTNTController.java @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity.nonliving; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.entity.Minecart; import org.bukkit.util.Vector; @@ -16,6 +14,7 @@ import net.minecraft.server.v1_16_R3.FluidType; import net.minecraft.server.v1_16_R3.NBTTagCompound; import net.minecraft.server.v1_16_R3.Tag; +import net.minecraft.server.v1_16_R3.Vec3D; import net.minecraft.server.v1_16_R3.World; public class MinecartTNTController extends MobEntityController { @@ -29,16 +28,6 @@ public Minecart getBukkitEntity() { } public static class EntityMinecartTNTNPC extends EntityMinecartTNT implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityMinecartTNTNPC(EntityTypes types, World world) { @@ -50,6 +39,16 @@ public EntityMinecartTNTNPC(EntityTypes types, Worl this.npc = (CitizensNPC) npc; } + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_16_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/PaintingController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/PaintingController.java index cfe6da3a9..71fd2f46e 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/PaintingController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/PaintingController.java @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity.nonliving; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -21,6 +19,7 @@ import net.minecraft.server.v1_16_R3.FluidType; import net.minecraft.server.v1_16_R3.NBTTagCompound; import net.minecraft.server.v1_16_R3.Tag; +import net.minecraft.server.v1_16_R3.Vec3D; import net.minecraft.server.v1_16_R3.World; public class PaintingController extends MobEntityController { @@ -34,16 +33,6 @@ public Painting getBukkitEntity() { } public static class EntityPaintingNPC extends EntityPainting implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityPaintingNPC(EntityTypes types, World world) { @@ -55,6 +44,16 @@ public EntityPaintingNPC(EntityTypes types, World worl this.npc = (CitizensNPC) npc; } + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_16_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ShulkerBulletController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ShulkerBulletController.java index 9527a3d29..dd295b9e1 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ShulkerBulletController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ShulkerBulletController.java @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity.nonliving; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -21,6 +19,7 @@ import net.minecraft.server.v1_16_R3.FluidType; import net.minecraft.server.v1_16_R3.NBTTagCompound; import net.minecraft.server.v1_16_R3.Tag; +import net.minecraft.server.v1_16_R3.Vec3D; import net.minecraft.server.v1_16_R3.World; public class ShulkerBulletController extends MobEntityController { @@ -34,16 +33,6 @@ public ShulkerBullet getBukkitEntity() { } public static class EntityShulkerBulletNPC extends EntityShulkerBullet implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityShulkerBulletNPC(EntityTypes types, World world) { @@ -55,6 +44,16 @@ public EntityShulkerBulletNPC(EntityTypes types, this.npc = (CitizensNPC) npc; } + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_16_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/SmallFireballController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/SmallFireballController.java index 343b2befb..f4d6bcc66 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/SmallFireballController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/SmallFireballController.java @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity.nonliving; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -21,6 +19,7 @@ import net.minecraft.server.v1_16_R3.FluidType; import net.minecraft.server.v1_16_R3.NBTTagCompound; import net.minecraft.server.v1_16_R3.Tag; +import net.minecraft.server.v1_16_R3.Vec3D; import net.minecraft.server.v1_16_R3.World; public class SmallFireballController extends MobEntityController { @@ -34,16 +33,6 @@ public SmallFireball getBukkitEntity() { } public static class EntitySmallFireballNPC extends EntitySmallFireball implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntitySmallFireballNPC(EntityTypes types, World world) { @@ -55,6 +44,16 @@ public EntitySmallFireballNPC(EntityTypes types, this.npc = (CitizensNPC) npc; } + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_16_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/SnowballController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/SnowballController.java index d26296622..6b3d83abd 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/SnowballController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/SnowballController.java @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity.nonliving; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -21,6 +19,7 @@ import net.minecraft.server.v1_16_R3.FluidType; import net.minecraft.server.v1_16_R3.NBTTagCompound; import net.minecraft.server.v1_16_R3.Tag; +import net.minecraft.server.v1_16_R3.Vec3D; import net.minecraft.server.v1_16_R3.World; public class SnowballController extends MobEntityController { @@ -34,16 +33,6 @@ public Snowball getBukkitEntity() { } public static class EntitySnowballNPC extends EntitySnowball implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntitySnowballNPC(EntityTypes types, World world) { @@ -55,6 +44,16 @@ public EntitySnowballNPC(EntityTypes types, World worl this.npc = (CitizensNPC) npc; } + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_16_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/SpectralArrowController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/SpectralArrowController.java index a961ec29b..761713683 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/SpectralArrowController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/SpectralArrowController.java @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity.nonliving; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftArrow; @@ -21,6 +19,7 @@ import net.minecraft.server.v1_16_R3.FluidType; import net.minecraft.server.v1_16_R3.NBTTagCompound; import net.minecraft.server.v1_16_R3.Tag; +import net.minecraft.server.v1_16_R3.Vec3D; import net.minecraft.server.v1_16_R3.World; public class SpectralArrowController extends MobEntityController { @@ -34,16 +33,6 @@ public Arrow getBukkitEntity() { } public static class EntitySpectralArrowNPC extends EntitySpectralArrow implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntitySpectralArrowNPC(EntityTypes types, World world) { @@ -55,6 +44,16 @@ public EntitySpectralArrowNPC(EntityTypes types, this.npc = (CitizensNPC) npc; } + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_16_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/TNTPrimedController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/TNTPrimedController.java index 0c24a42c0..014194a2c 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/TNTPrimedController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/TNTPrimedController.java @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity.nonliving; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -21,6 +19,7 @@ import net.minecraft.server.v1_16_R3.FluidType; import net.minecraft.server.v1_16_R3.NBTTagCompound; import net.minecraft.server.v1_16_R3.Tag; +import net.minecraft.server.v1_16_R3.Vec3D; import net.minecraft.server.v1_16_R3.World; public class TNTPrimedController extends MobEntityController { @@ -34,16 +33,6 @@ public TNTPrimed getBukkitEntity() { } public static class EntityTNTPrimedNPC extends EntityTNTPrimed implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityTNTPrimedNPC(EntityTypes types, World world) { @@ -55,6 +44,16 @@ public EntityTNTPrimedNPC(EntityTypes types, World wo this.npc = (CitizensNPC) npc; } + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_16_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ThrownExpBottleController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ThrownExpBottleController.java index 983963ea1..0ae6f8a80 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ThrownExpBottleController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ThrownExpBottleController.java @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity.nonliving; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -21,6 +19,7 @@ import net.minecraft.server.v1_16_R3.FluidType; import net.minecraft.server.v1_16_R3.NBTTagCompound; import net.minecraft.server.v1_16_R3.Tag; +import net.minecraft.server.v1_16_R3.Vec3D; import net.minecraft.server.v1_16_R3.World; public class ThrownExpBottleController extends MobEntityController { @@ -34,16 +33,6 @@ public ThrownExpBottle getBukkitEntity() { } public static class EntityThrownExpBottleNPC extends EntityThrownExpBottle implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityThrownExpBottleNPC(EntityTypes types, World world) { @@ -55,6 +44,16 @@ public EntityThrownExpBottleNPC(EntityTypes typ this.npc = (CitizensNPC) npc; } + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_16_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ThrownPotionController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ThrownPotionController.java index 398cb6952..07df91c38 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ThrownPotionController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ThrownPotionController.java @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity.nonliving; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -22,6 +20,7 @@ import net.minecraft.server.v1_16_R3.Items; import net.minecraft.server.v1_16_R3.NBTTagCompound; import net.minecraft.server.v1_16_R3.Tag; +import net.minecraft.server.v1_16_R3.Vec3D; import net.minecraft.server.v1_16_R3.World; public class ThrownPotionController extends MobEntityController { diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ThrownTridentController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ThrownTridentController.java index 6b3285636..c88164efd 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ThrownTridentController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ThrownTridentController.java @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity.nonliving; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -21,6 +19,7 @@ import net.minecraft.server.v1_16_R3.FluidType; import net.minecraft.server.v1_16_R3.NBTTagCompound; import net.minecraft.server.v1_16_R3.Tag; +import net.minecraft.server.v1_16_R3.Vec3D; import net.minecraft.server.v1_16_R3.World; public class ThrownTridentController extends MobEntityController { @@ -34,16 +33,6 @@ public Trident getBukkitEntity() { } public static class EntityThrownTridentNPC extends EntityThrownTrident implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityThrownTridentNPC(EntityTypes types, World world) { @@ -55,6 +44,16 @@ public EntityThrownTridentNPC(EntityTypes types, this.npc = (CitizensNPC) npc; } + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_16_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/TippedArrowController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/TippedArrowController.java index 9058be1c5..796c3274b 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/TippedArrowController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/TippedArrowController.java @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity.nonliving; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -21,6 +19,7 @@ import net.minecraft.server.v1_16_R3.FluidType; import net.minecraft.server.v1_16_R3.NBTTagCompound; import net.minecraft.server.v1_16_R3.Tag; +import net.minecraft.server.v1_16_R3.Vec3D; import net.minecraft.server.v1_16_R3.World; public class TippedArrowController extends MobEntityController { @@ -34,16 +33,6 @@ public Arrow getBukkitEntity() { } public static class EntityTippedArrowNPC extends EntityTippedArrow implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityTippedArrowNPC(EntityTypes types, World world) { @@ -55,6 +44,16 @@ public EntityTippedArrowNPC(EntityTypes types, Worl this.npc = (CitizensNPC) npc; } + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_16_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/WitherSkullController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/WitherSkullController.java index 0bea4614f..c3a0e3dca 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/WitherSkullController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/WitherSkullController.java @@ -1,7 +1,5 @@ package net.citizensnpcs.nms.v1_16_R3.entity.nonliving; -import net.minecraft.server.v1_16_R3.Vec3D; - import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; @@ -21,6 +19,7 @@ import net.minecraft.server.v1_16_R3.FluidType; import net.minecraft.server.v1_16_R3.NBTTagCompound; import net.minecraft.server.v1_16_R3.Tag; +import net.minecraft.server.v1_16_R3.Vec3D; import net.minecraft.server.v1_16_R3.World; public class WitherSkullController extends MobEntityController { @@ -34,16 +33,6 @@ public WitherSkull getBukkitEntity() { } public static class EntityWitherSkullNPC extends EntityWitherSkull implements NPCHolder { - @Override - public boolean a(Tag tag, double d0) { - Vec3D old = getMot().add(0, 0, 0); - boolean res = super.a(tag, d0); - if (!npc.isPushableByFluids()) { - this.setMot(old); - } - return res; - } - private final CitizensNPC npc; public EntityWitherSkullNPC(EntityTypes types, World world) { @@ -55,6 +44,16 @@ public EntityWitherSkullNPC(EntityTypes types, Worl this.npc = (CitizensNPC) npc; } + @Override + public boolean a(Tag tag, double d0) { + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + this.setMot(old); + } + return res; + } + @Override public void collide(net.minecraft.server.v1_16_R3.Entity entity) { // this method is called by both the entities involved - cancelling 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 69cecd7a6..174495cae 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 @@ -1665,7 +1665,7 @@ public void stop() { @Override public void update() { updateNavigation(navigation); - }; + } } private static class NavigationIterable implements Iterable { @@ -1797,7 +1797,7 @@ public static void flyingMoveLogic(EntityLiving entity, Vec3D vec3d) { Vec3D vec3d5 = entity.getLookDirection(); float f = entity.pitch * 0.017453292F; double d2 = Math.sqrt(vec3d5.x * vec3d5.x + vec3d5.z * vec3d5.z); - double d3 = Math.sqrt(entity.c(vec3d4)); + double d3 = Math.sqrt(Entity.c(vec3d4)); double d4 = vec3d5.f(); float f3 = MathHelper.cos(f); f3 = (float) (f3 * f3 * Math.min(1.0D, d4 / 0.4D)); @@ -1816,7 +1816,7 @@ public static void flyingMoveLogic(EntityLiving entity, Vec3D vec3d) { entity.setMot(vec3d4.d(0.9900000095367432D, 0.9800000190734863D, 0.9900000095367432D)); entity.move(EnumMoveType.SELF, entity.getMot()); if (entity.positionChanged && !entity.world.isClientSide) { - double d5 = Math.sqrt(entity.c(entity.getMot())); + double d5 = Math.sqrt(Entity.c(entity.getMot())); double d6 = d3 - d5; float f4 = (float) (d6 * 10.0D - 3.0D); if (f4 > 0.0F) { diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/PlayerNavigation.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/PlayerNavigation.java index e8deeed1f..e6ee8a1d0 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/PlayerNavigation.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/PlayerNavigation.java @@ -187,11 +187,7 @@ public boolean a(PathEntity var0, double var1) { } protected boolean a(PathType var0) { - if (var0 == PathType.WATER) - return false; - if (var0 == PathType.LAVA) - return false; - if (var0 == PathType.OPEN) + if ((var0 == PathType.WATER) || (var0 == PathType.LAVA) || (var0 == PathType.OPEN)) return false; return true; } @@ -203,11 +199,7 @@ public PathEntity a(Set var0, int var1) { @Override protected PathEntity a(Set var0, int var1, boolean var2, int var3) { - if (var0.isEmpty()) - return null; - if (this.a.locY() < 0.0D) - return null; - if (!a()) + if (var0.isEmpty() || (this.a.locY() < 0.0D) || !a()) return null; if (this.c != null && !this.c.c() && var0.contains(this.p)) return this.c; 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 7dd504ab2..13b36b383 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 @@ -51,7 +51,7 @@ public void a() { } private boolean a(AxisAlignedBB var0) { - return this.l.computeIfAbsent(var0, var1 -> Boolean.valueOf(!this.a.getCubes(this.b, var0))).booleanValue(); + return this.l.computeIfAbsent(var0, var1 -> !this.a.getCubes(this.b, var0)); } @Override @@ -269,9 +269,7 @@ private boolean a(PathPoint var0, PathPoint var1) { } private boolean a(PathPoint var0, PathPoint var1, PathPoint var2, PathPoint var3) { - if (var3 == null || var2 == null || var1 == null) - return false; - if (var3.i) + if (var3 == null || var2 == null || var1 == null || var3.i) return false; if (var2.b > var0.b || var1.b > var0.b) return false; 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 e89c6db0c..79ea15dc6 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 @@ -9,6 +9,7 @@ import com.mojang.serialization.Dynamic; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -56,17 +57,8 @@ public AxolotlNPC(EntityAxolotlNPC entity) { } public static class EntityAxolotlNPC extends Axolotl implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; + private MoveControl oldMoveController; public EntityAxolotlNPC(EntityType types, Level level) { @@ -168,6 +160,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected Brain makeBrain(Dynamic dynamic) { if (npc == null || npc.useMinecraftAI()) { @@ -243,5 +243,15 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/BatController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/BatController.java index faaedfd92..f0fe005d4 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -43,16 +44,6 @@ public BatNPC(EntityBatNPC entity) { } public static class EntityBatNPC extends Bat implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityBatNPC(EntityType types, Level level) { @@ -150,6 +141,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); @@ -176,5 +175,15 @@ public boolean save(CompoundTag save) { public void setFlying(boolean flying) { setResting(flying); } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/BeeController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/BeeController.java index 3d83cf4fe..4f5589889 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -43,16 +44,6 @@ public BeeNPC(EntityBeeNPC entity) { } public static class EntityBeeNPC extends Bee implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityBeeNPC(EntityType types, Level level) { @@ -147,6 +138,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); @@ -169,5 +168,15 @@ public void push(Entity entity) { public boolean save(CompoundTag save) { return npc == null ? super.save(save) : false; } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/BlazeController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/BlazeController.java index c933aa9aa..0561ee189 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -43,16 +44,6 @@ public BlazeNPC(EntityBlazeNPC entity) { } public static class EntityBlazeNPC extends Blaze implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityBlazeNPC(EntityType types, Level level) { @@ -141,6 +132,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); @@ -163,5 +162,15 @@ public void push(Entity entity) { public boolean save(CompoundTag save) { return npc == null ? super.save(save) : false; } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/CatController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/CatController.java index 4f4265ac1..e8aad4be7 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -46,17 +47,8 @@ public CatNPC(EntityCatNPC entity) { } public static class EntityCatNPC extends Cat implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityCatNPC(EntityType types, Level level) { @@ -161,6 +153,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -212,5 +212,15 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/CaveSpiderController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/CaveSpiderController.java index 1d21a9515..f21c53ff2 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -45,16 +46,6 @@ public CaveSpiderNPC(EntityCaveSpiderNPC entity) { } public static class EntityCaveSpiderNPC extends CaveSpider implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityCaveSpiderNPC(EntityType types, Level level) { @@ -161,6 +152,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -210,5 +209,15 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/ChickenController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/ChickenController.java index 95b94bd16..ca2633863 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -46,17 +47,8 @@ public ChickenNPC(EntityChickenNPC entity) { } public static class EntityChickenNPC extends Chicken implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityChickenNPC(EntityType types, Level level) { @@ -169,6 +161,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -221,5 +221,15 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/CodController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/CodController.java index 13915b927..27aa6a00e 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -52,17 +53,8 @@ public CodNPC(EntityCodNPC entity) { } public static class EntityCodNPC extends Cod implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; + private MoveControl oldMoveController; public EntityCodNPC(EntityType types, Level level) { @@ -194,6 +186,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected InteractionResult mobInteract(Player entityhuman, InteractionHand enumhand) { if (npc == null || !npc.isProtected()) @@ -246,5 +246,15 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/CowController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/CowController.java index 78fbd3408..62892ec8b 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -51,17 +52,8 @@ public CowNPC(EntityCowNPC entity) { } public static class EntityCowNPC extends Cow implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityCowNPC(EntityType types, Level level) { @@ -166,6 +158,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public InteractionResult mobInteract(Player entityhuman, InteractionHand enumhand) { if (npc == null || !npc.isProtected()) @@ -228,5 +228,15 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/CreeperController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/CreeperController.java index 12715dd48..31bc7a6c4 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -47,17 +48,8 @@ public CreeperNPC(EntityCreeperNPC entity) { } public static class EntityCreeperNPC extends Creeper implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private boolean allowPowered; + private final CitizensNPC npc; public EntityCreeperNPC(EntityType types, Level level) { @@ -162,6 +154,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -221,5 +221,15 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/DolphinController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/DolphinController.java index 326b5b884..ae16ea7aa 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -48,17 +49,8 @@ public DolphinNPC(EntityDolphinNPC entity) { } public static class EntityDolphinNPC extends Dolphin implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; + private MoveControl oldMoveController; public EntityDolphinNPC(EntityType types, Level level) { @@ -160,6 +152,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -216,5 +216,15 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/DrownedController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/DrownedController.java index f27a24a09..6a2acaa1d 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -45,16 +46,6 @@ public DrownedNPC(EntityDrownedNPC entity) { } public static class EntityDrownedNPC extends Drowned implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityDrownedNPC(EntityType types, Level level) { @@ -159,6 +150,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -198,5 +197,15 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/EnderDragonController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/EnderDragonController.java index 1abc16f50..817ecb5ea 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -43,16 +44,6 @@ public EnderDragonNPC(EntityEnderDragonNPC entity) { } public static class EntityEnderDragonNPC extends EnderDragon implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityEnderDragonNPC(EntityType types, Level level) { @@ -157,6 +148,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); @@ -178,5 +177,15 @@ public void push(Entity entity) { public boolean save(CompoundTag save) { return npc == null ? super.save(save) : false; } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/EndermanController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/EndermanController.java index 1a358b7f0..32dfa839d 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 @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -48,16 +49,6 @@ public EndermanNPC(EntityEndermanNPC entity) { } public static class EntityEndermanNPC extends EnderMan implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityEndermanNPC(EntityType types, Level level) { @@ -166,6 +157,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -223,5 +222,15 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/EndermiteController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/EndermiteController.java index 77f5ec78a..db206560c 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -45,16 +46,6 @@ public EndermiteNPC(EntityEndermiteNPC entity) { } public static class EntityEndermiteNPC extends Endermite implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityEndermiteNPC(EntityType types, Level level) { @@ -159,6 +150,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -207,5 +206,15 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } 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 3e8c24cad..b7da6c8ab 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -39,16 +40,6 @@ public org.bukkit.entity.Evoker getBukkitEntity() { } public static class EntityEvokerNPC extends Evoker implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityEvokerNPC(EntityType types, Level level) { @@ -153,6 +144,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -193,6 +192,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class EvokerNPC extends CraftEvoker implements ForwardingNPCHolder { 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 053adc614..d0e38f82d 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -40,17 +41,8 @@ public org.bukkit.entity.Fox getBukkitEntity() { } public static class EntityFoxNPC extends Fox implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityFoxNPC(EntityType types, Level level) { @@ -155,6 +147,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -206,6 +206,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class FoxNPC extends CraftFox implements ForwardingNPCHolder { 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 c3be12b6f..2f0deb6a0 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -37,16 +38,6 @@ public org.bukkit.entity.Ghast getBukkitEntity() { } public static class EntityGhastNPC extends Ghast implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityGhastNPC(EntityType types, Level level) { @@ -141,6 +132,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); @@ -163,6 +162,16 @@ public void push(Entity entity) { public boolean save(CompoundTag save) { return npc == null ? super.save(save) : false; } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class GhastNPC extends CraftGhast implements ForwardingNPCHolder { 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 93d3371f0..f3559a4f2 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -39,16 +40,6 @@ public org.bukkit.entity.Giant getBukkitEntity() { } public static class EntityGiantNPC extends Giant implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityGiantNPC(EntityType types, Level level) { @@ -153,6 +144,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -201,6 +200,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class GiantNPC extends CraftGiant implements ForwardingNPCHolder { 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 ca644cdfd..771ae128e 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -39,16 +40,6 @@ public org.bukkit.entity.GlowSquid getBukkitEntity() { } public static class EntityGlowSquidNPC extends GlowSquid implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityGlowSquidNPC(EntityType types, Level level) { @@ -153,6 +144,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -201,6 +200,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class GlowSquidNPC extends CraftGlowSquid implements ForwardingNPCHolder { 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 0adf13fae..d827990da 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -40,17 +41,8 @@ public org.bukkit.entity.Goat getBukkitEntity() { } public static class EntityGoatNPC extends Goat implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityGoatNPC(EntityType types, Level level) { @@ -155,6 +147,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -206,6 +206,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class GoatNPC extends CraftGoat implements ForwardingNPCHolder { 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 36dfd2d28..d89fae09f 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -39,16 +40,6 @@ public org.bukkit.entity.Guardian getBukkitEntity() { } public static class EntityGuardianNPC extends Guardian implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityGuardianNPC(EntityType types, Level level) { @@ -159,6 +150,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -208,6 +207,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class GuardianNPC extends CraftGuardian implements ForwardingNPCHolder { 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 9bade682b..240b611e0 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -39,16 +40,6 @@ public org.bukkit.entity.ElderGuardian getBukkitEntity() { } public static class EntityGuardianElderNPC extends ElderGuardian implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityGuardianElderNPC(EntityType types, Level level) { @@ -159,6 +150,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -208,6 +207,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class GuardianElderNPC extends CraftElderGuardian implements ForwardingNPCHolder { 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 7a1e8b59e..9956d2997 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -39,16 +40,6 @@ public org.bukkit.entity.Hoglin getBukkitEntity() { } public static class EntityHoglinNPC extends Hoglin implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityHoglinNPC(EntityType types, Level level) { @@ -156,6 +147,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -195,6 +194,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class HoglinNPC extends CraftHoglin implements ForwardingNPCHolder { 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 e543629b2..972ff09a6 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -51,18 +52,10 @@ public void spawn(Location at, NPC npc) { } public static class EntityHorseNPC extends Horse implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private double baseMovementSpeed; + private boolean calledNMSHeight = false; + private final CitizensNPC npc; private boolean riding; @@ -202,6 +195,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -254,6 +255,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class HorseNPC extends CraftHorse implements ForwardingNPCHolder { 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 a1bf44bbf..eaebd8322 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -51,18 +52,10 @@ public void spawn(Location at, NPC npc) { } public static class EntityHorseDonkeyNPC extends Donkey implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private double baseMovementSpeed; + boolean calledNMSHeight = false; + private final CitizensNPC npc; private boolean riding; @@ -201,6 +194,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -253,6 +254,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class HorseDonkeyNPC extends CraftDonkey implements ForwardingNPCHolder { 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 5d281a052..c525a2d71 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -51,18 +52,10 @@ public void spawn(Location at, NPC npc) { } public static class EntityHorseMuleNPC extends Mule implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private double baseMovementSpeed; + boolean calledNMSHeight = false; + private final CitizensNPC npc; private boolean riding; @@ -201,6 +194,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -253,6 +254,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class HorseMuleNPC extends CraftMule implements ForwardingNPCHolder { 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 5927eb305..bff5ed5dc 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -51,18 +52,10 @@ public void spawn(Location at, NPC npc) { } public static class EntityHorseSkeletonNPC extends SkeletonHorse implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private double baseMovementSpeed; + boolean calledNMSHeight = false; + private final CitizensNPC npc; private boolean riding; @@ -201,6 +194,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -253,6 +254,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class HorseSkeletonNPC extends CraftSkeletonHorse implements ForwardingNPCHolder { 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 e42e90221..f811ac633 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -51,18 +52,10 @@ public void spawn(Location at, NPC npc) { } public static class EntityHorseZombieNPC extends ZombieHorse implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private double baseMovementSpeed; + boolean calledNMSHeight = false; + private final CitizensNPC npc; private boolean riding; @@ -201,6 +194,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -253,6 +254,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class HorseZombieNPC extends CraftZombieHorse implements ForwardingNPCHolder { 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 a6627b27a..c870cbef3 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -39,16 +40,6 @@ public org.bukkit.entity.Illusioner getBukkitEntity() { } public static class EntityIllusionerNPC extends Illusioner implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityIllusionerNPC(EntityType types, Level level) { @@ -153,6 +144,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -193,6 +192,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class IllusionerNPC extends CraftIllusioner implements ForwardingNPCHolder { 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 b9bbb81f9..593d35d15 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -39,16 +40,6 @@ public org.bukkit.entity.IronGolem getBukkitEntity() { } public static class EntityIronGolemNPC extends IronGolem implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityIronGolemNPC(EntityType types, Level level) { @@ -153,6 +144,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -201,6 +200,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class IronGolemNPC extends CraftIronGolem implements ForwardingNPCHolder { 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 41077dd2d..a235e6f6d 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -49,17 +50,8 @@ public void spawn(Location at, NPC npc) { } public static class EntityLlamaNPC extends Llama implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityLlamaNPC(EntityType types, Level level) { @@ -173,6 +165,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -225,6 +225,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class LlamaNPC extends CraftLlama implements ForwardingNPCHolder { 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 eaa9eecb6..6816ff8a0 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -42,17 +43,8 @@ public org.bukkit.entity.MagmaCube getBukkitEntity() { } public static class EntityMagmaCubeNPC extends MagmaCube implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; + private MoveControl oldMoveController; public EntityMagmaCubeNPC(EntityType types, Level level) { @@ -153,6 +145,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -223,6 +223,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class MagmaCubeNPC extends CraftMagmaCube implements ForwardingNPCHolder { 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 974f0e073..2b2cf9f91 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -43,17 +44,8 @@ public org.bukkit.entity.MushroomCow getBukkitEntity() { } public static class EntityMushroomCowNPC extends MushroomCow implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityMushroomCowNPC(EntityType types, Level level) { @@ -158,6 +150,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public InteractionResult mobInteract(Player entityhuman, InteractionHand enumhand) { if (npc == null || !npc.isProtected()) @@ -216,6 +216,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class MushroomCowNPC extends CraftMushroomCow implements ForwardingNPCHolder { 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 36e909fc2..5a7656f37 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -41,17 +42,8 @@ public org.bukkit.entity.Ocelot getBukkitEntity() { } public static class EntityOcelotNPC extends Ocelot implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityOcelotNPC(EntityType types, Level level) { @@ -161,6 +153,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -213,6 +213,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class OcelotNPC extends CraftOcelot implements ForwardingNPCHolder { 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 cb0bdf6f1..9b3518416 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -40,17 +41,8 @@ public org.bukkit.entity.Panda getBukkitEntity() { } public static class EntityPandaNPC extends Panda implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityPandaNPC(EntityType types, Level level) { @@ -155,6 +147,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -206,6 +206,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class PandaNPC extends CraftPanda implements ForwardingNPCHolder { 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 6c3fefe3b..18d7d0931 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -40,16 +41,6 @@ public org.bukkit.entity.Parrot getBukkitEntity() { } public static class EntityParrotNPC extends Parrot implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityParrotNPC(EntityType types, Level level) { @@ -146,6 +137,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public InteractionResult mobInteract(Player entityhuman, InteractionHand enumhand) { // block feeding @@ -177,6 +176,16 @@ public void push(Entity entity) { public boolean save(CompoundTag save) { return npc == null ? super.save(save) : false; } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class ParrotNPC extends CraftParrot implements ForwardingNPCHolder { 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 62bd5311e..2622464b4 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -45,18 +46,10 @@ public org.bukkit.entity.Phantom getBukkitEntity() { } public static class EntityPhantomNPC extends Phantom implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; + private LookControl oldLookController; private MoveControl oldMoveController; @@ -190,6 +183,14 @@ public boolean isSunBurnTick() { return false; } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -254,6 +255,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class PhantomNPC extends CraftPhantom implements ForwardingNPCHolder { 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 5b46e06c8..c58f88e31 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -42,17 +43,8 @@ public org.bukkit.entity.Pig getBukkitEntity() { } public static class EntityPigNPC extends Pig implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityPigNPC(EntityType types, Level level) { @@ -163,6 +155,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -222,6 +222,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class PigNPC extends CraftPig implements ForwardingNPCHolder { 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 47dcb2fbc..b15d791b8 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -40,16 +41,6 @@ public org.bukkit.entity.PigZombie getBukkitEntity() { } public static class EntityPigZombieNPC extends ZombifiedPiglin implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityPigZombieNPC(EntityType types, Level level) { @@ -154,6 +145,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -195,6 +194,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class PigZombieNPC extends CraftPigZombie implements ForwardingNPCHolder { 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 c08a8a04a..17c9c954f 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -39,16 +40,6 @@ public org.bukkit.entity.PiglinBrute getBukkitEntity() { } public static class EntityPiglinBruteNPC extends PiglinBrute implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityPiglinBruteNPC(EntityType types, Level level) { @@ -156,6 +147,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -195,6 +194,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class PiglinBruteNPC extends CraftPiglinBrute implements ForwardingNPCHolder { 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 835404f63..2dad7d208 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -39,16 +40,6 @@ public org.bukkit.entity.Piglin getBukkitEntity() { } public static class EntityPiglinNPC extends Piglin implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityPiglinNPC(EntityType types, Level level) { @@ -156,6 +147,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -195,6 +194,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class PiglinNPC extends CraftPiglin implements ForwardingNPCHolder { 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 7bef7b815..de6073e6f 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -40,17 +41,8 @@ public org.bukkit.entity.Pillager getBukkitEntity() { } public static class EntityPillagerNPC extends Pillager implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityPillagerNPC(EntityType types, Level level) { @@ -155,6 +147,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -206,6 +206,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class PillagerNPC extends CraftPillager implements ForwardingNPCHolder { 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 30eea0119..5c185cdcb 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -38,17 +39,8 @@ public org.bukkit.entity.PolarBear getBukkitEntity() { } public static class EntityPolarBearNPC extends PolarBear implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityPolarBearNPC(EntityType types, Level level) { @@ -139,6 +131,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void onSyncedDataUpdated(EntityDataAccessor datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -173,6 +173,16 @@ public void push(Entity entity) { public boolean save(CompoundTag save) { return npc == null ? super.save(save) : false; } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class PolarBearNPC extends CraftPolarBear implements ForwardingNPCHolder { 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 6432544d5..303291f20 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -49,17 +50,8 @@ public org.bukkit.entity.PufferFish getBukkitEntity() { } public static class EntityPufferFishNPC extends Pufferfish implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; + private MoveControl oldMoveController; public EntityPufferFishNPC(EntityType types, Level level) { @@ -197,6 +189,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected InteractionResult mobInteract(Player entityhuman, InteractionHand enumhand) { if (npc == null || !npc.isProtected()) @@ -263,6 +263,16 @@ public void travel(Vec3 vec3d) { } } + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } + private static float s(int i) { switch (i) { case 0: 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 4ca2f79c3..113cbdbbd 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -42,16 +43,6 @@ public org.bukkit.entity.Rabbit getBukkitEntity() { } public static class EntityRabbitNPC extends Rabbit implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - boolean calledNMSHeight = false; private final CitizensNPC npc; @@ -166,6 +157,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -229,6 +228,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class RabbitNPC extends CraftRabbit implements ForwardingNPCHolder { 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 f39e50eb1..9022c0ee9 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -40,17 +41,8 @@ public org.bukkit.entity.Ravager getBukkitEntity() { } public static class EntityRavagerNPC extends Ravager implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityRavagerNPC(EntityType types, Level level) { @@ -155,6 +147,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -206,6 +206,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class RavagerNPC extends CraftRavager implements ForwardingNPCHolder { 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 2055c198b..c9eeeb859 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -46,17 +47,8 @@ public org.bukkit.entity.Salmon getBukkitEntity() { } public static class EntitySalmonNPC extends Salmon implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; + private MoveControl oldMoveController; public EntitySalmonNPC(EntityType types, Level level) { @@ -186,6 +178,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected InteractionResult mobInteract(Player entityhuman, InteractionHand enumhand) { if (npc == null || !npc.isProtected()) @@ -238,6 +238,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class SalmonNPC extends CraftSalmon implements ForwardingNPCHolder { 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 a6648e8fe..2e53d756b 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -40,16 +41,6 @@ public org.bukkit.entity.Sheep getBukkitEntity() { } public static class EntitySheepNPC extends Sheep implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - boolean calledNMSHeight = false; private final CitizensNPC npc; @@ -156,6 +147,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -207,6 +206,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class SheepNPC extends CraftSheep implements ForwardingNPCHolder { 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 f3b4157ed..bc6d4ef8a 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -40,16 +41,6 @@ public org.bukkit.entity.Shulker getBukkitEntity() { } public static class EntityShulkerNPC extends Shulker implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityShulkerNPC(EntityType types, Level level) { @@ -157,6 +148,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -218,6 +217,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class ShulkerNPC extends CraftShulker implements ForwardingNPCHolder { 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 0581ddda9..6b2aa47b1 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SilverfishController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SilverfishController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -39,16 +40,6 @@ public org.bukkit.entity.Silverfish getBukkitEntity() { } public static class EntitySilverfishNPC extends Silverfish implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntitySilverfishNPC(EntityType types, Level level) { @@ -151,6 +142,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -199,6 +198,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class SilverfishNPC extends CraftSilverfish implements ForwardingNPCHolder { 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 4235461a8..abf266d79 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -39,16 +40,6 @@ public org.bukkit.entity.Skeleton getBukkitEntity() { } public static class EntitySkeletonNPC extends Skeleton implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntitySkeletonNPC(EntityType types, Level level) { @@ -153,6 +144,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -201,6 +200,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class SkeletonNPC extends CraftSkeleton implements ForwardingNPCHolder { 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 370c1676b..6a7480ff5 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -39,16 +40,6 @@ public org.bukkit.entity.Stray getBukkitEntity() { } public static class EntityStrayNPC extends Stray implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityStrayNPC(EntityType types, Level level) { @@ -153,6 +144,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -201,6 +200,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class StrayNPC extends CraftStray implements ForwardingNPCHolder { 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 31e9b35e6..dd419ce62 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -39,16 +40,6 @@ public org.bukkit.entity.WitherSkeleton getBukkitEntity() { } public static class EntitySkeletonWitherNPC extends WitherSkeleton implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntitySkeletonWitherNPC(EntityType types, Level level) { @@ -153,6 +144,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -201,6 +200,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class SkeletonWitherNPC extends CraftWitherSkeleton implements ForwardingNPCHolder { 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 a4dc0c8ec..017301852 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -42,17 +43,8 @@ public org.bukkit.entity.Slime getBukkitEntity() { } public static class EntitySlimeNPC extends Slime implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; + private MoveControl oldMoveController; public EntitySlimeNPC(EntityType types, Level level) { @@ -153,6 +145,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -224,6 +224,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class SlimeNPC extends CraftSlime implements ForwardingNPCHolder { 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 ea3012d5c..1067cce3a 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -40,16 +41,6 @@ public org.bukkit.entity.Snowman getBukkitEntity() { } public static class EntitySnowmanNPC extends SnowGolem implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntitySnowmanNPC(EntityType types, Level level) { @@ -166,6 +157,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -214,6 +213,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class SnowmanNPC extends CraftSnowman implements ForwardingNPCHolder { 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 00b82d861..e1c6780d3 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -39,16 +40,6 @@ public org.bukkit.entity.Spider getBukkitEntity() { } public static class EntitySpiderNPC extends Spider implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntitySpiderNPC(EntityType types, Level level) { @@ -153,6 +144,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -202,6 +201,16 @@ public void travel(Vec3 vec3d) { } } + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } + } public static class SpiderNPC extends CraftSpider implements ForwardingNPCHolder { 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 c9a2bfc91..60e1f4995 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -39,16 +40,6 @@ public org.bukkit.entity.Squid getBukkitEntity() { } public static class EntitySquidNPC extends Squid implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntitySquidNPC(EntityType types, Level level) { @@ -153,6 +144,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -201,6 +200,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class SquidNPC extends CraftSquid implements ForwardingNPCHolder { 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 8a8626436..8537fcd94 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -39,16 +40,6 @@ public org.bukkit.entity.Strider getBukkitEntity() { } public static class EntityStriderNPC extends Strider implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityStriderNPC(EntityType types, Level level) { @@ -153,6 +144,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -192,6 +191,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class StriderNPC extends CraftStrider implements ForwardingNPCHolder { 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 9cca9bd71..230cdacee 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -49,17 +50,8 @@ public void spawn(Location at, NPC npc) { } public static class EntityTraderLlamaNPC extends TraderLlama implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityTraderLlamaNPC(EntityType types, Level level) { @@ -174,6 +166,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -226,6 +226,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class TraderLlamaNPC extends CraftTraderLlama implements ForwardingNPCHolder { 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 bca5ea7fe..1070bde65 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -46,17 +47,8 @@ public org.bukkit.entity.TropicalFish getBukkitEntity() { } public static class EntityTropicalFishNPC extends TropicalFish implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; + private MoveControl oldMoveController; public EntityTropicalFishNPC(EntityType types, Level level) { @@ -188,6 +180,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected InteractionResult mobInteract(Player entityhuman, InteractionHand enumhand) { if (npc == null || !npc.isProtected()) @@ -240,6 +240,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class TropicalFishNPC extends CraftTropicalFish implements ForwardingNPCHolder { 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 a27eec4e1..f9efc022e 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -43,18 +44,10 @@ public org.bukkit.entity.Turtle getBukkitEntity() { } public static class EntityTurtleNPC extends Turtle implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; + private JumpControl oldJumpController; + private MoveControl oldMoveController; public EntityTurtleNPC(EntityType types, Level level) { @@ -173,6 +166,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -216,6 +217,16 @@ public void travel(Vec3 vec3d) { } } + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } + static class EmptyControllerJump extends JumpControl { public EmptyControllerJump(Mob var1) { super(var1); 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 f8b425c66..34bf89db6 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -37,16 +38,6 @@ public org.bukkit.entity.Vex getBukkitEntity() { } public static class EntityVexNPC extends Vex implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityVexNPC(EntityType types, Level level) { @@ -140,6 +131,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); @@ -162,6 +161,16 @@ public void push(Entity entity) { public boolean save(CompoundTag save) { return npc == null ? super.save(save) : false; } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class VexNPC extends CraftVex implements ForwardingNPCHolder { 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 b310bb9de..7d860b2df 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -47,18 +48,10 @@ public org.bukkit.entity.Villager getBukkitEntity() { } public static class EntityVillagerNPC extends Villager implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private boolean blockingATrade; + boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityVillagerNPC(EntityType types, Level level) { @@ -177,6 +170,14 @@ public boolean isTrading() { return super.isTrading(); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public InteractionResult mobInteract(Player entityhuman, InteractionHand enumhand) { if (npc != null && npc.data().get(NPC.VILLAGER_BLOCK_TRADES, true)) { @@ -248,6 +249,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class VillagerNPC extends CraftVillager implements ForwardingNPCHolder { 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 33b426d91..d89364d06 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -40,16 +41,6 @@ public org.bukkit.entity.Vindicator getBukkitEntity() { } public static class EntityVindicatorNPC extends Vindicator implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - boolean calledNMSHeight = false; private final CitizensNPC npc; @@ -156,6 +147,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -208,6 +207,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class VindicatorNPC extends CraftVindicator implements ForwardingNPCHolder { 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 ff3ccde93..df211fa59 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -46,18 +47,10 @@ public org.bukkit.entity.WanderingTrader getBukkitEntity() { } public static class EntityWanderingTraderNPC extends WanderingTrader implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private boolean blockingATrade; + private boolean blockTrades = true; + boolean calledNMSHeight = false; private final CitizensNPC npc; @@ -178,6 +171,14 @@ public boolean isTrading() { return super.isTrading(); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public InteractionResult mobInteract(Player entityhuman, InteractionHand enumhand) { if (npc != null && blockTrades) { @@ -253,6 +254,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class WanderingTraderNPC extends CraftWanderingTrader implements ForwardingNPCHolder { 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 cf53a3ff0..7a92041e3 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -39,16 +40,6 @@ public org.bukkit.entity.Witch getBukkitEntity() { } public static class EntityWitchNPC extends Witch implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityWitchNPC(EntityType types, Level level) { @@ -153,6 +144,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -201,6 +200,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class WitchNPC extends CraftWitch implements ForwardingNPCHolder { 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 84d5f65fd..424e74ddc 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -37,16 +38,6 @@ public org.bukkit.entity.Wither getBukkitEntity() { } public static class EntityWitherNPC extends WitherBoss implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityWitherNPC(EntityType types, Level level) { @@ -151,6 +142,14 @@ public boolean isPowered() { : npc.data().get("wither-arrow-shield"); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); @@ -172,6 +171,16 @@ public void push(Entity entity) { public boolean save(CompoundTag save) { return npc == null ? super.save(save) : false; } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class WitherNPC extends CraftWither implements ForwardingNPCHolder { 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 1f154d0d4..673de516d 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -42,17 +43,8 @@ public org.bukkit.entity.Wolf getBukkitEntity() { } public static class EntityWolfNPC extends Wolf implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityWolfNPC(EntityType types, Level level) { @@ -157,6 +149,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -214,6 +214,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class WolfNPC extends CraftWolf implements ForwardingNPCHolder { 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 e87a3a6f8..024bc3a2b 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -39,16 +40,6 @@ public org.bukkit.entity.Zoglin getBukkitEntity() { } public static class EntityZoglinNPC extends Zoglin implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityZoglinNPC(EntityType types, Level level) { @@ -155,6 +146,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -194,6 +193,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class ZoglinNPC extends CraftZoglin implements ForwardingNPCHolder { 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 8b39bf739..a46a13874 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -39,16 +40,6 @@ public org.bukkit.entity.Zombie getBukkitEntity() { } public static class EntityZombieNPC extends Zombie implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityZombieNPC(EntityType types, Level level) { @@ -153,6 +144,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -192,6 +191,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class ZombieNPC extends CraftZombie implements ForwardingNPCHolder { 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 e7ff17af1..34357cfae 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -39,16 +40,6 @@ public org.bukkit.entity.Husk getBukkitEntity() { } public static class EntityZombieHuskNPC extends Husk implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityZombieHuskNPC(EntityType types, Level level) { @@ -153,6 +144,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -192,6 +191,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class ZombieHuskNPC extends CraftHusk implements ForwardingNPCHolder { 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 0108a4336..4eed99fa2 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; @@ -39,16 +40,6 @@ public org.bukkit.entity.ZombieVillager getBukkitEntity() { } public static class EntityZombieVillagerNPC extends ZombieVillager implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityZombieVillagerNPC(EntityType types, Level level) { @@ -153,6 +144,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -192,6 +191,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class ZombieVillagerNPC extends CraftVillagerZombie implements ForwardingNPCHolder { diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/AreaEffectCloudController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/AreaEffectCloudController.java index cb88f10c1..9ff8cd03c 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/AreaEffectCloudController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/AreaEffectCloudController.java @@ -39,16 +39,6 @@ public AreaEffectCloudNPC(EntityAreaEffectCloudNPC entity) { } public static class EntityAreaEffectCloudNPC extends AreaEffectCloud implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityAreaEffectCloudNPC(EntityType types, Level level) { @@ -104,5 +94,15 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ArmorStandController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ArmorStandController.java index c4f372e2c..507485f76 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ArmorStandController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ArmorStandController.java @@ -43,16 +43,6 @@ public ArmorStandNPC(EntityArmorStandNPC entity) { } public static class EntityArmorStandNPC extends ArmorStand implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityArmorStandNPC(EntityType types, Level level) { @@ -118,5 +108,15 @@ public void tick() { npc.update(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/BoatController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/BoatController.java index 1863604d8..175dfe498 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/BoatController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/BoatController.java @@ -46,17 +46,8 @@ public BoatNPC(EntityBoatNPC entity) { } public static class EntityBoatNPC extends Boat implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private double aC; + private float aD; private Status aE; private Status aF; @@ -238,5 +229,15 @@ private Status u() { } return flag ? Status.UNDER_WATER : null; } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/DragonFireballController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/DragonFireballController.java index 62c6b2a34..663c96831 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/DragonFireballController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/DragonFireballController.java @@ -39,16 +39,6 @@ public DragonFireballNPC(EntityDragonFireballNPC entity) { } public static class EntityDragonFireballNPC extends DragonFireball implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityDragonFireballNPC(EntityType types, Level level) { @@ -116,5 +106,15 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/EggController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/EggController.java index 1201a48ef..1f3645423 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/EggController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/EggController.java @@ -49,16 +49,6 @@ public EggNPC(EntityEggNPC entity) { } public static class EntityEggNPC extends ThrownEgg implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityEggNPC(EntityType types, Level level) { @@ -122,5 +112,15 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/EnderCrystalController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/EnderCrystalController.java index 708978d1e..8bb1740b9 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/EnderCrystalController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/EnderCrystalController.java @@ -39,16 +39,6 @@ public EnderCrystalNPC(EntityEnderCrystalNPC entity) { } public static class EntityEnderCrystalNPC extends EndCrystal implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityEnderCrystalNPC(EntityType types, Level level) { @@ -104,5 +94,15 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/EnderPearlController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/EnderPearlController.java index 78b3c8e26..29a00859d 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/EnderPearlController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/EnderPearlController.java @@ -40,16 +40,6 @@ public EnderPearlNPC(EntityEnderPearlNPC entity) { } public static class EntityEnderPearlNPC extends ThrownEnderpearl implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityEnderPearlNPC(EntityType types, Level level) { @@ -108,5 +98,15 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/EnderSignalController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/EnderSignalController.java index 87e74eae2..bb0c9d906 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/EnderSignalController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/EnderSignalController.java @@ -40,16 +40,6 @@ public EnderSignalNPC(EntityEnderSignalNPC entity) { } public static class EntityEnderSignalNPC extends EyeOfEnder implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityEnderSignalNPC(EntityType types, Level level) { @@ -105,5 +95,15 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/EvokerFangsController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/EvokerFangsController.java index 2b5ba2899..0c4385d28 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/EvokerFangsController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/EvokerFangsController.java @@ -37,16 +37,6 @@ public org.bukkit.entity.EvokerFangs getBukkitEntity() { } public static class EntityEvokerFangsNPC extends EvokerFangs implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityEvokerFangsNPC(EntityType types, Level level) { @@ -112,6 +102,16 @@ public void tick() { npc.update(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class EvokerFangsNPC extends CraftEvokerFangs implements ForwardingNPCHolder { diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ExperienceOrbController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ExperienceOrbController.java index 9d600c2e7..512230922 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ExperienceOrbController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ExperienceOrbController.java @@ -33,16 +33,6 @@ public org.bukkit.entity.ExperienceOrb getBukkitEntity() { } public static class EntityExperienceOrbNPC extends ExperienceOrb implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityExperienceOrbNPC(EntityType types, Level level) { @@ -98,6 +88,16 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class ExperienceOrbNPC extends CraftExperienceOrb implements ForwardingNPCHolder { diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/FireworkController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/FireworkController.java index 6104c713b..5bda20f29 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/FireworkController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/FireworkController.java @@ -34,16 +34,6 @@ public Firework getBukkitEntity() { } public static class EntityFireworkNPC extends FireworkRocketEntity implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityFireworkNPC(EntityType types, Level level) { @@ -99,6 +89,16 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class FireworkNPC extends CraftFirework implements ForwardingNPCHolder { diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/FishingHookController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/FishingHookController.java index b85408385..b9a74f1f8 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/FishingHookController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/FishingHookController.java @@ -43,16 +43,6 @@ public FishHook getBukkitEntity() { } public static class EntityFishingHookNPC extends FishingHook implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityFishingHookNPC(EntityType types, Level level) { @@ -123,6 +113,16 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class FishingHookNPC extends CraftFishHook implements ForwardingNPCHolder { diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/LargeFireballController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/LargeFireballController.java index 8071b4343..7ad1f2471 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/LargeFireballController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/LargeFireballController.java @@ -33,16 +33,6 @@ public org.bukkit.entity.LargeFireball getBukkitEntity() { } public static class EntityLargeFireballNPC extends LargeFireball implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityLargeFireballNPC(EntityType types, Level level) { @@ -110,6 +100,16 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class LargeFireballNPC extends CraftLargeFireball implements ForwardingNPCHolder { diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/LeashController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/LeashController.java index d9bb61090..16126b264 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/LeashController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/LeashController.java @@ -34,16 +34,6 @@ public LeashHitch getBukkitEntity() { } public static class EntityLeashNPC extends LeashFenceKnotEntity implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityLeashNPC(EntityType types, Level level) { @@ -104,6 +94,16 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class LeashNPC extends CraftLeash implements ForwardingNPCHolder { diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/LlamaSpitController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/LlamaSpitController.java index 006a9e390..9ce223881 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/LlamaSpitController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/LlamaSpitController.java @@ -46,16 +46,6 @@ public org.bukkit.entity.LlamaSpit getBukkitEntity() { } public static class EntityLlamaSpitNPC extends LlamaSpit implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityLlamaSpitNPC(EntityType types, Level level) { @@ -119,6 +109,16 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class LlamaSpitNPC extends CraftLlamaSpit implements ForwardingNPCHolder { diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MarkerController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MarkerController.java index cbe16664c..8e9cd990b 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MarkerController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MarkerController.java @@ -33,16 +33,6 @@ public org.bukkit.entity.Marker getBukkitEntity() { } public static class EntityMarkerNPC extends Marker implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityMarkerNPC(EntityType types, Level level) { @@ -98,6 +88,16 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class MarkerNPC extends CraftMarker implements ForwardingNPCHolder { diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartChestController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartChestController.java index 02a21103c..28dab0bea 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartChestController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartChestController.java @@ -34,16 +34,6 @@ public Minecart getBukkitEntity() { } public static class EntityMinecartChestNPC extends MinecartChest implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityMinecartChestNPC(EntityType types, Level level) { @@ -100,6 +90,16 @@ public void tick() { } } + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } + } public static class MinecartChestNPC extends CraftMinecartChest implements ForwardingNPCHolder { diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartCommandController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartCommandController.java index 451454225..757695a6d 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartCommandController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartCommandController.java @@ -34,16 +34,6 @@ public Minecart getBukkitEntity() { } public static class EntityMinecartCommandNPC extends MinecartCommandBlock implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityMinecartCommandNPC(EntityType types, Level level) { @@ -99,6 +89,16 @@ public void tick() { NMSImpl.minecartItemLogic(this); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class MinecartCommandNPC extends CraftMinecartCommand implements ForwardingNPCHolder { diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartFurnaceController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartFurnaceController.java index b8448286d..cc3670175 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartFurnaceController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartFurnaceController.java @@ -34,16 +34,6 @@ public Minecart getBukkitEntity() { } public static class EntityMinecartFurnaceNPC extends MinecartFurnace implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityMinecartFurnaceNPC(EntityType types, Level level) { @@ -99,6 +89,16 @@ public void tick() { NMSImpl.minecartItemLogic(this); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class MinecartFurnaceNPC extends CraftMinecartFurnace implements ForwardingNPCHolder { diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartHopperController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartHopperController.java index 8546e8870..00c623f43 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartHopperController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartHopperController.java @@ -29,16 +29,6 @@ public Minecart getBukkitEntity() { } public static class EntityMinecartHopperNPC extends MinecartHopper implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityMinecartHopperNPC(EntityType types, Level level) { @@ -86,5 +76,15 @@ public void tick() { NMSImpl.minecartItemLogic(this); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } \ No newline at end of file diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartRideableController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartRideableController.java index cc6c0dd1e..f152e97bb 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartRideableController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartRideableController.java @@ -33,16 +33,6 @@ public org.bukkit.entity.Minecart getBukkitEntity() { } public static class EntityMinecartRideableNPC extends Minecart implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityMinecartRideableNPC(EntityType types, Level level) { @@ -98,6 +88,16 @@ public void tick() { NMSImpl.minecartItemLogic(this); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class MinecartRideableNPC extends CraftMinecartRideable implements ForwardingNPCHolder { diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartSpawnerController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartSpawnerController.java index 6a93708e8..7e51b9e86 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartSpawnerController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartSpawnerController.java @@ -29,16 +29,6 @@ public Minecart getBukkitEntity() { } public static class EntityMinecartSpawnerNPC extends MinecartSpawner implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityMinecartSpawnerNPC(EntityType types, Level level) { @@ -86,5 +76,15 @@ public void tick() { NMSImpl.minecartItemLogic(this); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } \ No newline at end of file diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartTNTController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartTNTController.java index f1e606533..09272971a 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartTNTController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartTNTController.java @@ -29,16 +29,6 @@ public Minecart getBukkitEntity() { } public static class EntityMinecartTNTNPC extends MinecartTNT implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityMinecartTNTNPC(EntityType types, Level level) { @@ -86,5 +76,15 @@ public void tick() { NMSImpl.minecartItemLogic(this); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } \ No newline at end of file diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/PaintingController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/PaintingController.java index 2c228779e..4c2136215 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/PaintingController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/PaintingController.java @@ -33,16 +33,6 @@ public org.bukkit.entity.Painting getBukkitEntity() { } public static class EntityPaintingNPC extends Painting implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityPaintingNPC(EntityType types, Level level) { @@ -103,6 +93,16 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class PaintingNPC extends CraftPainting implements ForwardingNPCHolder { diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ShulkerBulletController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ShulkerBulletController.java index 547790991..355598787 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ShulkerBulletController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ShulkerBulletController.java @@ -33,16 +33,6 @@ public org.bukkit.entity.ShulkerBullet getBukkitEntity() { } public static class EntityShulkerBulletNPC extends ShulkerBullet implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityShulkerBulletNPC(EntityType types, Level level) { @@ -98,6 +88,16 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class ShulkerBulletNPC extends CraftShulkerBullet implements ForwardingNPCHolder { diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/SmallFireballController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/SmallFireballController.java index ca6ef725d..143d2c0fe 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/SmallFireballController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/SmallFireballController.java @@ -33,16 +33,6 @@ public org.bukkit.entity.SmallFireball getBukkitEntity() { } public static class EntitySmallFireballNPC extends SmallFireball implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntitySmallFireballNPC(EntityType types, Level level) { @@ -101,6 +91,16 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class SmallFireballNPC extends CraftSmallFireball implements ForwardingNPCHolder { diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/SnowballController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/SnowballController.java index 8166c7396..b3d0e4779 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/SnowballController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/SnowballController.java @@ -33,16 +33,6 @@ public org.bukkit.entity.Snowball getBukkitEntity() { } public static class EntitySnowballNPC extends Snowball implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntitySnowballNPC(EntityType types, Level level) { @@ -98,6 +88,16 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class SnowballNPC extends CraftSnowball implements ForwardingNPCHolder { diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/SpectralArrowController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/SpectralArrowController.java index 23f978d73..3132a4adb 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/SpectralArrowController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/SpectralArrowController.java @@ -34,16 +34,6 @@ public Arrow getBukkitEntity() { } public static class EntitySpectralArrowNPC extends SpectralArrow implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntitySpectralArrowNPC(EntityType types, Level level) { @@ -99,6 +89,16 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class SpectralArrowNPC extends CraftArrow implements ForwardingNPCHolder { diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/TNTPrimedController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/TNTPrimedController.java index 7c8d73938..485c1074a 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/TNTPrimedController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/TNTPrimedController.java @@ -34,16 +34,6 @@ public TNTPrimed getBukkitEntity() { } public static class EntityTNTPrimedNPC extends PrimedTnt implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityTNTPrimedNPC(EntityType types, Level level) { @@ -99,6 +89,16 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class TNTPrimedNPC extends CraftTNTPrimed implements ForwardingNPCHolder { diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ThrownExpBottleController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ThrownExpBottleController.java index 7cee611db..bce2c0251 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ThrownExpBottleController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ThrownExpBottleController.java @@ -34,16 +34,6 @@ public ThrownExpBottle getBukkitEntity() { } public static class EntityThrownExpBottleNPC extends ThrownExperienceBottle implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityThrownExpBottleNPC(EntityType types, Level level) { @@ -102,6 +92,16 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class ThrownExpBottleNPC extends CraftThrownExpBottle implements ForwardingNPCHolder { diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ThrownTridentController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ThrownTridentController.java index 62aa1b683..081819b7b 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ThrownTridentController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ThrownTridentController.java @@ -34,16 +34,6 @@ public Trident getBukkitEntity() { } public static class EntityThrownTridentNPC extends ThrownTrident implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityThrownTridentNPC(EntityType types, Level level) { @@ -99,6 +89,16 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class ThrownTridentNPC extends CraftTrident implements ForwardingNPCHolder { diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/TippedArrowController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/TippedArrowController.java index 4d22c36bc..e6e0a5b76 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/TippedArrowController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/TippedArrowController.java @@ -33,16 +33,6 @@ public org.bukkit.entity.Arrow getBukkitEntity() { } public static class EntityTippedArrowNPC extends Arrow implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityTippedArrowNPC(EntityType types, Level level) { @@ -98,6 +88,16 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class TippedArrowNPC extends CraftTippedArrow implements ForwardingNPCHolder { diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/WitherSkullController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/WitherSkullController.java index 5fcff1b33..e8e28e6f7 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/WitherSkullController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/WitherSkullController.java @@ -33,16 +33,6 @@ public org.bukkit.entity.WitherSkull getBukkitEntity() { } public static class EntityWitherSkullNPC extends WitherSkull implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityWitherSkullNPC(EntityType types, Level level) { @@ -98,6 +88,16 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class WitherSkullNPC extends CraftWitherSkull implements ForwardingNPCHolder { 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 1e21fd820..2ed48d707 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 @@ -9,6 +9,7 @@ import com.mojang.serialization.Dynamic; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -57,6 +58,7 @@ public AxolotlNPC(EntityAxolotlNPC entity) { public static class EntityAxolotlNPC extends Axolotl implements NPCHolder { private final CitizensNPC npc; + private MoveControl oldMoveController; public EntityAxolotlNPC(EntityType types, Level level) { @@ -158,6 +160,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected Brain makeBrain(Dynamic dynamic) { if (npc == null || npc.useMinecraftAI()) { 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 efc284e54..89a8b202e 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -45,16 +46,6 @@ public BatNPC(EntityBatNPC entity) { } public static class EntityBatNPC extends Bat implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityBatNPC(EntityType types, Level level) { @@ -152,6 +143,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); @@ -185,5 +184,15 @@ public Entity teleportTo(ServerLevel worldserver, BlockPos location) { return super.teleportTo(worldserver, location); return NMSImpl.teleportAcrossWorld(this, worldserver, location); } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/BeeController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/BeeController.java index a15959cbd..7db97ff75 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -45,16 +46,6 @@ public BeeNPC(EntityBeeNPC entity) { } public static class EntityBeeNPC extends Bee implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityBeeNPC(EntityType types, Level level) { @@ -149,6 +140,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); @@ -178,5 +177,15 @@ public Entity teleportTo(ServerLevel worldserver, BlockPos location) { return super.teleportTo(worldserver, location); return NMSImpl.teleportAcrossWorld(this, worldserver, location); } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/BlazeController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/BlazeController.java index 8e36ebd8b..c4873701e 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -45,16 +46,6 @@ public BlazeNPC(EntityBlazeNPC entity) { } public static class EntityBlazeNPC extends Blaze implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityBlazeNPC(EntityType types, Level level) { @@ -143,6 +134,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); @@ -172,5 +171,15 @@ public Entity teleportTo(ServerLevel worldserver, BlockPos location) { return super.teleportTo(worldserver, location); return NMSImpl.teleportAcrossWorld(this, worldserver, location); } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/CatController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/CatController.java index b1e5ec733..19e647acb 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -47,17 +48,8 @@ public CatNPC(EntityCatNPC entity) { } public static class EntityCatNPC extends Cat implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityCatNPC(EntityType types, Level level) { @@ -162,6 +154,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -220,5 +220,15 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/CaveSpiderController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/CaveSpiderController.java index d4650be14..8f27686e9 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -46,16 +47,6 @@ public CaveSpiderNPC(EntityCaveSpiderNPC entity) { } public static class EntityCaveSpiderNPC extends CaveSpider implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityCaveSpiderNPC(EntityType types, Level level) { @@ -162,6 +153,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -218,5 +217,15 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/ChickenController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/ChickenController.java index 060fd8ef6..e2da5e7be 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -47,17 +48,8 @@ public ChickenNPC(EntityChickenNPC entity) { } public static class EntityChickenNPC extends Chicken implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityChickenNPC(EntityType types, Level level) { @@ -170,6 +162,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -229,5 +229,15 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/CodController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/CodController.java index 4cf00d36b..71e2e1208 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -53,17 +54,8 @@ public CodNPC(EntityCodNPC entity) { } public static class EntityCodNPC extends Cod implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; + private MoveControl oldMoveController; public EntityCodNPC(EntityType types, Level level) { @@ -195,6 +187,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected InteractionResult mobInteract(Player entityhuman, InteractionHand enumhand) { if (npc == null || !npc.isProtected()) @@ -255,5 +255,15 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/CowController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/CowController.java index a24eda398..03a821790 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -52,17 +53,8 @@ public CowNPC(EntityCowNPC entity) { } public static class EntityCowNPC extends Cow implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityCowNPC(EntityType types, Level level) { @@ -167,6 +159,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public InteractionResult mobInteract(Player entityhuman, InteractionHand enumhand) { if (npc == null || !npc.isProtected()) @@ -236,5 +236,15 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/CreeperController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/CreeperController.java index 981b258dc..c684fe7ef 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -47,17 +48,8 @@ public CreeperNPC(EntityCreeperNPC entity) { } public static class EntityCreeperNPC extends Creeper implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private boolean allowPowered; + private final CitizensNPC npc; public EntityCreeperNPC(EntityType types, Level level) { @@ -162,6 +154,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -228,5 +228,15 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/DolphinController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/DolphinController.java index cee868615..b302724b7 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -48,17 +49,8 @@ public DolphinNPC(EntityDolphinNPC entity) { } public static class EntityDolphinNPC extends Dolphin implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; + private MoveControl oldMoveController; public EntityDolphinNPC(EntityType types, Level level) { @@ -160,6 +152,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -224,5 +224,15 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/DrownedController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/DrownedController.java index 9b87f8b17..d9b59f02d 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -46,16 +47,6 @@ public DrownedNPC(EntityDrownedNPC entity) { } public static class EntityDrownedNPC extends Drowned implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityDrownedNPC(EntityType types, Level level) { @@ -160,6 +151,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -206,5 +205,15 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/EnderDragonController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/EnderDragonController.java index ed3eed124..944c43713 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -45,16 +46,6 @@ public EnderDragonNPC(EntityEnderDragonNPC entity) { } public static class EntityEnderDragonNPC extends EnderDragon implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityEnderDragonNPC(EntityType types, Level level) { @@ -159,6 +150,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); @@ -187,5 +186,15 @@ public Entity teleportTo(ServerLevel worldserver, BlockPos location) { return super.teleportTo(worldserver, location); return NMSImpl.teleportAcrossWorld(this, worldserver, location); } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/EndermanController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/EndermanController.java index 5e83f7664..babf2badb 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 @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -49,16 +50,6 @@ public EndermanNPC(EntityEndermanNPC entity) { } public static class EntityEndermanNPC extends EnderMan implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityEndermanNPC(EntityType types, Level level) { @@ -163,6 +154,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -227,5 +226,15 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/EndermiteController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/EndermiteController.java index 02f9318db..a5705df46 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -46,16 +47,6 @@ public EndermiteNPC(EntityEndermiteNPC entity) { } public static class EntityEndermiteNPC extends Endermite implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityEndermiteNPC(EntityType types, Level level) { @@ -160,6 +151,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -215,5 +214,15 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } 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 58d8cfdc2..fc8cfd1a1 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -40,16 +41,6 @@ public org.bukkit.entity.Evoker getBukkitEntity() { } public static class EntityEvokerNPC extends Evoker implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityEvokerNPC(EntityType types, Level level) { @@ -154,6 +145,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -201,6 +200,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class EvokerNPC extends CraftEvoker implements ForwardingNPCHolder { 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 948608aaf..e56ed0123 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -41,17 +42,8 @@ public org.bukkit.entity.Fox getBukkitEntity() { } public static class EntityFoxNPC extends Fox implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityFoxNPC(EntityType types, Level level) { @@ -156,6 +148,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -214,6 +214,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class FoxNPC extends CraftFox implements ForwardingNPCHolder { 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 0590fbbc5..7c879dad8 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -39,16 +40,6 @@ public org.bukkit.entity.Ghast getBukkitEntity() { } public static class EntityGhastNPC extends Ghast implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityGhastNPC(EntityType types, Level level) { @@ -143,6 +134,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); @@ -172,6 +171,16 @@ public Entity teleportTo(ServerLevel worldserver, BlockPos location) { return super.teleportTo(worldserver, location); return NMSImpl.teleportAcrossWorld(this, worldserver, location); } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class GhastNPC extends CraftGhast implements ForwardingNPCHolder { 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 01c0aa9f3..80e7b3778 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -40,16 +41,6 @@ public org.bukkit.entity.Giant getBukkitEntity() { } public static class EntityGiantNPC extends Giant implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityGiantNPC(EntityType types, Level level) { @@ -154,6 +145,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -209,6 +208,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class GiantNPC extends CraftGiant implements ForwardingNPCHolder { 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 ce8251706..5e1035685 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -40,16 +41,6 @@ public org.bukkit.entity.GlowSquid getBukkitEntity() { } public static class EntityGlowSquidNPC extends GlowSquid implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityGlowSquidNPC(EntityType types, Level level) { @@ -154,6 +145,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -209,6 +208,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class GlowSquidNPC extends CraftGlowSquid implements ForwardingNPCHolder { 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 3c7a6a345..6dbf2345f 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -41,17 +42,8 @@ public org.bukkit.entity.Goat getBukkitEntity() { } public static class EntityGoatNPC extends Goat implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityGoatNPC(EntityType types, Level level) { @@ -156,6 +148,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -214,6 +214,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class GoatNPC extends CraftGoat implements ForwardingNPCHolder { 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 ddaa8af31..ddf5cccaf 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -40,16 +41,6 @@ public org.bukkit.entity.Guardian getBukkitEntity() { } public static class EntityGuardianNPC extends Guardian implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityGuardianNPC(EntityType types, Level level) { @@ -160,6 +151,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -216,6 +215,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class GuardianNPC extends CraftGuardian implements ForwardingNPCHolder { 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 3449eb5ba..215aae16b 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -40,16 +41,6 @@ public org.bukkit.entity.ElderGuardian getBukkitEntity() { } public static class EntityGuardianElderNPC extends ElderGuardian implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityGuardianElderNPC(EntityType types, Level level) { @@ -160,6 +151,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -216,6 +215,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class GuardianElderNPC extends CraftElderGuardian implements ForwardingNPCHolder { 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 75834a3c7..e7aae83c1 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -40,16 +41,6 @@ public org.bukkit.entity.Hoglin getBukkitEntity() { } public static class EntityHoglinNPC extends Hoglin implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityHoglinNPC(EntityType types, Level level) { @@ -157,6 +148,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -203,6 +202,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class HoglinNPC extends CraftHoglin implements ForwardingNPCHolder { 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 ea452180a..b6ea1d00f 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -52,18 +53,10 @@ public void spawn(Location at, NPC npc) { } public static class EntityHorseNPC extends Horse implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private double baseMovementSpeed; + private boolean calledNMSHeight = false; + private final CitizensNPC npc; private boolean riding; @@ -203,6 +196,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -262,6 +263,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class HorseNPC extends CraftHorse implements ForwardingNPCHolder { 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 a38548986..213938c8f 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -52,18 +53,10 @@ public void spawn(Location at, NPC npc) { } public static class EntityHorseDonkeyNPC extends Donkey implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private double baseMovementSpeed; + boolean calledNMSHeight = false; + private final CitizensNPC npc; private boolean riding; @@ -202,6 +195,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -261,6 +262,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class HorseDonkeyNPC extends CraftDonkey implements ForwardingNPCHolder { 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 9bb98890d..770535694 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -52,18 +53,10 @@ public void spawn(Location at, NPC npc) { } public static class EntityHorseMuleNPC extends Mule implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private double baseMovementSpeed; + boolean calledNMSHeight = false; + private final CitizensNPC npc; private boolean riding; @@ -202,6 +195,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -261,6 +262,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class HorseMuleNPC extends CraftMule implements ForwardingNPCHolder { 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 9d73ebe56..be95e6687 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -52,18 +53,10 @@ public void spawn(Location at, NPC npc) { } public static class EntityHorseSkeletonNPC extends SkeletonHorse implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private double baseMovementSpeed; + boolean calledNMSHeight = false; + private final CitizensNPC npc; private boolean riding; @@ -202,6 +195,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -261,6 +262,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class HorseSkeletonNPC extends CraftSkeletonHorse implements ForwardingNPCHolder { 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 81263afb6..c43f9fce5 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -52,18 +53,10 @@ public void spawn(Location at, NPC npc) { } public static class EntityHorseZombieNPC extends ZombieHorse implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private double baseMovementSpeed; + boolean calledNMSHeight = false; + private final CitizensNPC npc; private boolean riding; @@ -202,6 +195,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -261,6 +262,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class HorseZombieNPC extends CraftZombieHorse implements ForwardingNPCHolder { 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 ddeb9204a..f03b0c78d 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -40,16 +41,6 @@ public org.bukkit.entity.Illusioner getBukkitEntity() { } public static class EntityIllusionerNPC extends Illusioner implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityIllusionerNPC(EntityType types, Level level) { @@ -154,6 +145,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -201,6 +200,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class IllusionerNPC extends CraftIllusioner implements ForwardingNPCHolder { 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 419e8a971..e5c3ba27a 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -40,16 +41,6 @@ public org.bukkit.entity.IronGolem getBukkitEntity() { } public static class EntityIronGolemNPC extends IronGolem implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityIronGolemNPC(EntityType types, Level level) { @@ -154,6 +145,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -209,6 +208,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class IronGolemNPC extends CraftIronGolem implements ForwardingNPCHolder { 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 c99f028a1..92d38f61d 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -50,17 +51,8 @@ public void spawn(Location at, NPC npc) { } public static class EntityLlamaNPC extends Llama implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityLlamaNPC(EntityType types, Level level) { @@ -174,6 +166,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -233,6 +233,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class LlamaNPC extends CraftLlama implements ForwardingNPCHolder { 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 35d1da5d2..39521b658 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -43,17 +44,8 @@ public org.bukkit.entity.MagmaCube getBukkitEntity() { } public static class EntityMagmaCubeNPC extends MagmaCube implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; + private MoveControl oldMoveController; public EntityMagmaCubeNPC(EntityType types, Level level) { @@ -154,6 +146,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -231,6 +231,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class MagmaCubeNPC extends CraftMagmaCube implements ForwardingNPCHolder { 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 87468b4a1..2fbe6b5e4 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -44,17 +45,8 @@ public org.bukkit.entity.MushroomCow getBukkitEntity() { } public static class EntityMushroomCowNPC extends MushroomCow implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityMushroomCowNPC(EntityType types, Level level) { @@ -159,6 +151,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public InteractionResult mobInteract(Player entityhuman, InteractionHand enumhand) { if (npc == null || !npc.isProtected()) @@ -224,6 +224,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class MushroomCowNPC extends CraftMushroomCow implements ForwardingNPCHolder { 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 3cfefe61f..9d3efcd8b 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -42,17 +43,8 @@ public org.bukkit.entity.Ocelot getBukkitEntity() { } public static class EntityOcelotNPC extends Ocelot implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityOcelotNPC(EntityType types, Level level) { @@ -162,6 +154,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -221,6 +221,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class OcelotNPC extends CraftOcelot implements ForwardingNPCHolder { 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 a1318ec56..a4929b7a1 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -41,17 +42,8 @@ public org.bukkit.entity.Panda getBukkitEntity() { } public static class EntityPandaNPC extends Panda implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityPandaNPC(EntityType types, Level level) { @@ -156,6 +148,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -214,6 +214,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class PandaNPC extends CraftPanda implements ForwardingNPCHolder { 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 5bebdc109..6f350e010 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -42,16 +43,6 @@ public org.bukkit.entity.Parrot getBukkitEntity() { } public static class EntityParrotNPC extends Parrot implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityParrotNPC(EntityType types, Level level) { @@ -148,6 +139,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public InteractionResult mobInteract(Player entityhuman, InteractionHand enumhand) { // block feeding @@ -186,6 +185,16 @@ public Entity teleportTo(ServerLevel worldserver, BlockPos location) { return super.teleportTo(worldserver, location); return NMSImpl.teleportAcrossWorld(this, worldserver, location); } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class ParrotNPC extends CraftParrot implements ForwardingNPCHolder { 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 99ba33357..67f0f5e74 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -46,18 +47,10 @@ public org.bukkit.entity.Phantom getBukkitEntity() { } public static class EntityPhantomNPC extends Phantom implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; + private LookControl oldLookController; private MoveControl oldMoveController; @@ -191,6 +184,14 @@ public boolean isSunBurnTick() { return false; } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -262,6 +263,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class PhantomNPC extends CraftPhantom implements ForwardingNPCHolder { 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 feb5756a6..e84d62572 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -42,17 +43,8 @@ public org.bukkit.entity.Pig getBukkitEntity() { } public static class EntityPigNPC extends Pig implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityPigNPC(EntityType types, Level level) { @@ -163,6 +155,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -229,6 +229,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class PigNPC extends CraftPig implements ForwardingNPCHolder { 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 5ff4283d3..531113cf8 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -41,16 +42,6 @@ public org.bukkit.entity.PigZombie getBukkitEntity() { } public static class EntityPigZombieNPC extends ZombifiedPiglin implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityPigZombieNPC(EntityType types, Level level) { @@ -155,6 +146,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -201,6 +200,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class PigZombieNPC extends CraftPigZombie implements ForwardingNPCHolder { 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 c348c8d23..1b169c20b 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -40,16 +41,6 @@ public org.bukkit.entity.PiglinBrute getBukkitEntity() { } public static class EntityPiglinBruteNPC extends PiglinBrute implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityPiglinBruteNPC(EntityType types, Level level) { @@ -157,6 +148,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -203,6 +202,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class PiglinBruteNPC extends CraftPiglinBrute implements ForwardingNPCHolder { 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 470d324cb..2ed4247da 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -40,16 +41,6 @@ public org.bukkit.entity.Piglin getBukkitEntity() { } public static class EntityPiglinNPC extends Piglin implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityPiglinNPC(EntityType types, Level level) { @@ -157,6 +148,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -203,6 +202,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class PiglinNPC extends CraftPiglin implements ForwardingNPCHolder { 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 4e3c12245..f71547ccb 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -41,17 +42,8 @@ public org.bukkit.entity.Pillager getBukkitEntity() { } public static class EntityPillagerNPC extends Pillager implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityPillagerNPC(EntityType types, Level level) { @@ -156,6 +148,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -214,6 +214,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class PillagerNPC extends CraftPillager implements ForwardingNPCHolder { 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 af6a1c65c..12aae35fb 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -40,17 +41,8 @@ public org.bukkit.entity.PolarBear getBukkitEntity() { } public static class EntityPolarBearNPC extends PolarBear implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityPolarBearNPC(EntityType types, Level level) { @@ -141,6 +133,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void onSyncedDataUpdated(EntityDataAccessor datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -182,6 +182,16 @@ public Entity teleportTo(ServerLevel worldserver, BlockPos location) { return super.teleportTo(worldserver, location); return NMSImpl.teleportAcrossWorld(this, worldserver, location); } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class PolarBearNPC extends CraftPolarBear implements ForwardingNPCHolder { 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 77553ff86..6a91d5739 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -50,17 +51,8 @@ public org.bukkit.entity.PufferFish getBukkitEntity() { } public static class EntityPufferFishNPC extends Pufferfish implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; + private MoveControl oldMoveController; public EntityPufferFishNPC(EntityType types, Level level) { @@ -198,6 +190,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected InteractionResult mobInteract(Player entityhuman, InteractionHand enumhand) { if (npc == null || !npc.isProtected()) @@ -271,6 +271,16 @@ public void travel(Vec3 vec3d) { } } + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } + private static float s(int i) { switch (i) { case 0: 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 8857e6008..09ef18bb9 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -43,17 +44,8 @@ public org.bukkit.entity.Rabbit getBukkitEntity() { } public static class EntityRabbitNPC extends Rabbit implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityRabbitNPC(EntityType types, Level level) { @@ -166,6 +158,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -236,6 +236,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class RabbitNPC extends CraftRabbit implements ForwardingNPCHolder { 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 84bc0a2e0..b388ce1ae 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -41,17 +42,8 @@ public org.bukkit.entity.Ravager getBukkitEntity() { } public static class EntityRavagerNPC extends Ravager implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityRavagerNPC(EntityType types, Level level) { @@ -161,6 +153,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -219,6 +219,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class RavagerNPC extends CraftRavager implements ForwardingNPCHolder { 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 273564f64..131814496 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -47,17 +48,8 @@ public org.bukkit.entity.Salmon getBukkitEntity() { } public static class EntitySalmonNPC extends Salmon implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; + private MoveControl oldMoveController; public EntitySalmonNPC(EntityType types, Level level) { @@ -187,6 +179,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected InteractionResult mobInteract(Player entityhuman, InteractionHand enumhand) { if (npc == null || !npc.isProtected()) @@ -246,6 +246,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class SalmonNPC extends CraftSalmon implements ForwardingNPCHolder { 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 9088f1099..d46d1d9ac 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -41,17 +42,8 @@ public org.bukkit.entity.Sheep getBukkitEntity() { } public static class EntitySheepNPC extends Sheep implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntitySheepNPC(EntityType types, Level level) { @@ -156,6 +148,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -214,6 +214,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class SheepNPC extends CraftSheep implements ForwardingNPCHolder { 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 8e7576baf..5c60e9cae 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -41,16 +42,6 @@ public org.bukkit.entity.Shulker getBukkitEntity() { } public static class EntityShulkerNPC extends Shulker implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityShulkerNPC(EntityType types, Level level) { @@ -158,6 +149,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -226,6 +225,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class ShulkerNPC extends CraftShulker implements ForwardingNPCHolder { 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 a6966aaca..fea5f5ce5 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SilverfishController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SilverfishController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -40,16 +41,6 @@ public org.bukkit.entity.Silverfish getBukkitEntity() { } public static class EntitySilverfishNPC extends Silverfish implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntitySilverfishNPC(EntityType types, Level level) { @@ -152,6 +143,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -207,6 +206,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class SilverfishNPC extends CraftSilverfish implements ForwardingNPCHolder { 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 bc5a3c7f6..3b0062186 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -40,16 +41,6 @@ public org.bukkit.entity.Skeleton getBukkitEntity() { } public static class EntitySkeletonNPC extends Skeleton implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntitySkeletonNPC(EntityType types, Level level) { @@ -154,6 +145,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -209,6 +208,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class SkeletonNPC extends CraftSkeleton implements ForwardingNPCHolder { 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 278ad8a6b..89d6dede0 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -40,16 +41,6 @@ public org.bukkit.entity.Stray getBukkitEntity() { } public static class EntityStrayNPC extends Stray implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityStrayNPC(EntityType types, Level level) { @@ -154,6 +145,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -209,6 +208,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class StrayNPC extends CraftStray implements ForwardingNPCHolder { 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 a19c3fa12..70daf7521 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -40,16 +41,6 @@ public org.bukkit.entity.WitherSkeleton getBukkitEntity() { } public static class EntitySkeletonWitherNPC extends WitherSkeleton implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntitySkeletonWitherNPC(EntityType types, Level level) { @@ -154,6 +145,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -209,6 +208,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class SkeletonWitherNPC extends CraftWitherSkeleton implements ForwardingNPCHolder { 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 351af81db..30f67fd97 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -43,17 +44,8 @@ public org.bukkit.entity.Slime getBukkitEntity() { } public static class EntitySlimeNPC extends Slime implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; + private MoveControl oldMoveController; public EntitySlimeNPC(EntityType types, Level level) { @@ -154,6 +146,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -232,6 +232,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class SlimeNPC extends CraftSlime implements ForwardingNPCHolder { 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 eae69d75b..68ece1d36 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -41,16 +42,6 @@ public org.bukkit.entity.Snowman getBukkitEntity() { } public static class EntitySnowmanNPC extends SnowGolem implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntitySnowmanNPC(EntityType types, Level level) { @@ -167,6 +158,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -222,6 +221,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class SnowmanNPC extends CraftSnowman implements ForwardingNPCHolder { 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 3576c5c0e..20cb737d3 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -40,16 +41,6 @@ public org.bukkit.entity.Spider getBukkitEntity() { } public static class EntitySpiderNPC extends Spider implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntitySpiderNPC(EntityType types, Level level) { @@ -154,6 +145,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -210,6 +209,16 @@ public void travel(Vec3 vec3d) { } } + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } + } public static class SpiderNPC extends CraftSpider implements ForwardingNPCHolder { 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 09986c72a..aa959f501 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -40,16 +41,6 @@ public org.bukkit.entity.Squid getBukkitEntity() { } public static class EntitySquidNPC extends Squid implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntitySquidNPC(EntityType types, Level level) { @@ -154,6 +145,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -209,6 +208,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class SquidNPC extends CraftSquid implements ForwardingNPCHolder { 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 804a74d25..4cad668fc 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -40,16 +41,6 @@ public org.bukkit.entity.Strider getBukkitEntity() { } public static class EntityStriderNPC extends Strider implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityStriderNPC(EntityType types, Level level) { @@ -154,6 +145,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -200,6 +199,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class StriderNPC extends CraftStrider implements ForwardingNPCHolder { 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 5ee92fdc3..4470f8593 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -50,17 +51,8 @@ public void spawn(Location at, NPC npc) { } public static class EntityTraderLlamaNPC extends TraderLlama implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityTraderLlamaNPC(EntityType types, Level level) { @@ -175,6 +167,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -234,6 +234,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class TraderLlamaNPC extends CraftTraderLlama implements ForwardingNPCHolder { 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 8a7c190b2..386c420d1 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -47,17 +48,8 @@ public org.bukkit.entity.TropicalFish getBukkitEntity() { } public static class EntityTropicalFishNPC extends TropicalFish implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; + private MoveControl oldMoveController; public EntityTropicalFishNPC(EntityType types, Level level) { @@ -189,6 +181,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected InteractionResult mobInteract(Player entityhuman, InteractionHand enumhand) { if (npc == null || !npc.isProtected()) @@ -248,6 +248,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class TropicalFishNPC extends CraftTropicalFish implements ForwardingNPCHolder { 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 a5d3c8f80..a6db54771 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -44,18 +45,10 @@ public org.bukkit.entity.Turtle getBukkitEntity() { } public static class EntityTurtleNPC extends Turtle implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; + private JumpControl oldJumpController; + private MoveControl oldMoveController; public EntityTurtleNPC(EntityType types, Level level) { @@ -174,6 +167,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -224,6 +225,16 @@ public void travel(Vec3 vec3d) { } } + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } + static class EmptyControllerJump extends JumpControl { public EmptyControllerJump(Mob var1) { super(var1); 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 eb02bb881..47282d77c 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -39,16 +40,6 @@ public org.bukkit.entity.Vex getBukkitEntity() { } public static class EntityVexNPC extends Vex implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityVexNPC(EntityType types, Level level) { @@ -142,6 +133,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); @@ -171,6 +170,16 @@ public Entity teleportTo(ServerLevel worldserver, BlockPos location) { return super.teleportTo(worldserver, location); return NMSImpl.teleportAcrossWorld(this, worldserver, location); } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class VexNPC extends CraftVex implements ForwardingNPCHolder { 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 556c1c611..ceb2d2bd0 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -47,18 +48,10 @@ public org.bukkit.entity.Villager getBukkitEntity() { } public static class EntityVillagerNPC extends Villager implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private boolean blockingATrade; + boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityVillagerNPC(EntityType types, Level level) { @@ -177,6 +170,14 @@ public boolean isTrading() { return super.isTrading(); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public InteractionResult mobInteract(Player entityhuman, InteractionHand enumhand) { if (npc != null && npc.data().get(NPC.VILLAGER_BLOCK_TRADES, true)) { @@ -255,6 +256,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class VillagerNPC extends CraftVillager implements ForwardingNPCHolder { 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 0814c42ef..d8fa9f763 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -41,17 +42,8 @@ public org.bukkit.entity.Vindicator getBukkitEntity() { } public static class EntityVindicatorNPC extends Vindicator implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityVindicatorNPC(EntityType types, Level level) { @@ -156,6 +148,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -215,6 +215,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class VindicatorNPC extends CraftVindicator implements ForwardingNPCHolder { 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 5bf5ea7f6..947ecd4fd 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -46,18 +47,10 @@ public org.bukkit.entity.WanderingTrader getBukkitEntity() { } public static class EntityWanderingTraderNPC extends WanderingTrader implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private boolean blockingATrade; + private boolean blockTrades = true; + boolean calledNMSHeight = false; private final CitizensNPC npc; @@ -178,6 +171,14 @@ public boolean isTrading() { return super.isTrading(); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public InteractionResult mobInteract(Player entityhuman, InteractionHand enumhand) { if (npc != null && blockTrades) { @@ -260,6 +261,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class WanderingTraderNPC extends CraftWanderingTrader implements ForwardingNPCHolder { 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 f54c3d159..49211174f 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -40,16 +41,6 @@ public org.bukkit.entity.Witch getBukkitEntity() { } public static class EntityWitchNPC extends Witch implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityWitchNPC(EntityType types, Level level) { @@ -154,6 +145,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -209,6 +208,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class WitchNPC extends CraftWitch implements ForwardingNPCHolder { 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 71683d106..1116e35db 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -39,16 +40,6 @@ public org.bukkit.entity.Wither getBukkitEntity() { } public static class EntityWitherNPC extends WitherBoss implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityWitherNPC(EntityType types, Level level) { @@ -153,6 +144,14 @@ public boolean isPowered() { : npc.data().get("wither-arrow-shield"); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); @@ -181,6 +180,16 @@ public Entity teleportTo(ServerLevel worldserver, BlockPos location) { return super.teleportTo(worldserver, location); return NMSImpl.teleportAcrossWorld(this, worldserver, location); } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class WitherNPC extends CraftWither implements ForwardingNPCHolder { 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 a98c91f52..6827a653f 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -43,17 +44,8 @@ public org.bukkit.entity.Wolf getBukkitEntity() { } public static class EntityWolfNPC extends Wolf implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityWolfNPC(EntityType types, Level level) { @@ -158,6 +150,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -222,6 +222,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class WolfNPC extends CraftWolf implements ForwardingNPCHolder { 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 14b1ff55c..c909cfb9a 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -40,16 +41,6 @@ public org.bukkit.entity.Zoglin getBukkitEntity() { } public static class EntityZoglinNPC extends Zoglin implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityZoglinNPC(EntityType types, Level level) { @@ -156,6 +147,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -202,6 +201,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class ZoglinNPC extends CraftZoglin implements ForwardingNPCHolder { 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 c3aa57605..ce1ddc453 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -40,16 +41,6 @@ public org.bukkit.entity.Zombie getBukkitEntity() { } public static class EntityZombieNPC extends Zombie implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityZombieNPC(EntityType types, Level level) { @@ -154,6 +145,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -200,6 +199,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class ZombieNPC extends CraftZombie implements ForwardingNPCHolder { 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 87c43d7b3..6f7ce608c 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -40,16 +41,6 @@ public org.bukkit.entity.Husk getBukkitEntity() { } public static class EntityZombieHuskNPC extends Husk implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityZombieHuskNPC(EntityType types, Level level) { @@ -154,6 +145,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -200,6 +199,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class ZombieHuskNPC extends CraftHusk implements ForwardingNPCHolder { 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 f7c27bb26..4dbfb2c98 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 @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; @@ -40,16 +41,6 @@ public org.bukkit.entity.ZombieVillager getBukkitEntity() { } public static class EntityZombieVillagerNPC extends ZombieVillager implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityZombieVillagerNPC(EntityType types, Level level) { @@ -154,6 +145,14 @@ public boolean isLeashed() { return false; // shouldLeash } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { @@ -200,6 +199,16 @@ public void travel(Vec3 vec3d) { NMSImpl.flyingMoveLogic(this, vec3d); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class ZombieVillagerNPC extends CraftVillagerZombie implements ForwardingNPCHolder { diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/AreaEffectCloudController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/AreaEffectCloudController.java index 851a66843..8767e2188 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/AreaEffectCloudController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/AreaEffectCloudController.java @@ -41,16 +41,6 @@ public AreaEffectCloudNPC(EntityAreaEffectCloudNPC entity) { } public static class EntityAreaEffectCloudNPC extends AreaEffectCloud implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityAreaEffectCloudNPC(EntityType types, Level level) { @@ -113,5 +103,15 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ArmorStandController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ArmorStandController.java index d5d3f3e13..c6eaeaec1 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ArmorStandController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ArmorStandController.java @@ -45,16 +45,6 @@ public ArmorStandNPC(EntityArmorStandNPC entity) { } public static class EntityArmorStandNPC extends ArmorStand implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityArmorStandNPC(EntityType types, Level level) { @@ -127,5 +117,15 @@ public void tick() { npc.update(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/BoatController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/BoatController.java index 612c60515..b40afdc62 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/BoatController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/BoatController.java @@ -47,17 +47,8 @@ public BoatNPC(EntityBoatNPC entity) { } public static class EntityBoatNPC extends Boat implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private double aC; + private float aD; private Status aE; private Status aF; @@ -246,5 +237,15 @@ private Status u() { } return flag ? Status.UNDER_WATER : null; } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/DragonFireballController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/DragonFireballController.java index c65161c05..9d77ec468 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/DragonFireballController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/DragonFireballController.java @@ -41,16 +41,6 @@ public DragonFireballNPC(EntityDragonFireballNPC entity) { } public static class EntityDragonFireballNPC extends DragonFireball implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityDragonFireballNPC(EntityType types, Level level) { @@ -125,5 +115,15 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/EggController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/EggController.java index 4fbcff6ed..66fb696d0 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/EggController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/EggController.java @@ -50,16 +50,6 @@ public EggNPC(EntityEggNPC entity) { } public static class EntityEggNPC extends ThrownEgg implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityEggNPC(EntityType types, Level level) { @@ -130,5 +120,15 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/EnderCrystalController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/EnderCrystalController.java index 077324de4..4cf07d293 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/EnderCrystalController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/EnderCrystalController.java @@ -41,16 +41,6 @@ public EnderCrystalNPC(EntityEnderCrystalNPC entity) { } public static class EntityEnderCrystalNPC extends EndCrystal implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityEnderCrystalNPC(EntityType types, Level level) { @@ -113,5 +103,15 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/EnderPearlController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/EnderPearlController.java index 6a311bb04..c35e6e86e 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/EnderPearlController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/EnderPearlController.java @@ -42,16 +42,6 @@ public EnderPearlNPC(EntityEnderPearlNPC entity) { } public static class EntityEnderPearlNPC extends ThrownEnderpearl implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityEnderPearlNPC(EntityType types, Level level) { @@ -117,5 +107,15 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/EnderSignalController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/EnderSignalController.java index eb85a0141..13df344a3 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/EnderSignalController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/EnderSignalController.java @@ -42,16 +42,6 @@ public EnderSignalNPC(EntityEnderSignalNPC entity) { } public static class EntityEnderSignalNPC extends EyeOfEnder implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityEnderSignalNPC(EntityType types, Level level) { @@ -114,5 +104,15 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/EvokerFangsController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/EvokerFangsController.java index a3394dc70..b6b2f07b0 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/EvokerFangsController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/EvokerFangsController.java @@ -39,16 +39,6 @@ public org.bukkit.entity.EvokerFangs getBukkitEntity() { } public static class EntityEvokerFangsNPC extends EvokerFangs implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityEvokerFangsNPC(EntityType types, Level level) { @@ -121,6 +111,16 @@ public void tick() { npc.update(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class EvokerFangsNPC extends CraftEvokerFangs implements ForwardingNPCHolder { diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ExperienceOrbController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ExperienceOrbController.java index 6a2d88c24..ef3e0c5a2 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ExperienceOrbController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ExperienceOrbController.java @@ -35,16 +35,6 @@ public org.bukkit.entity.ExperienceOrb getBukkitEntity() { } public static class EntityExperienceOrbNPC extends ExperienceOrb implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityExperienceOrbNPC(EntityType types, Level level) { @@ -107,6 +97,16 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class ExperienceOrbNPC extends CraftExperienceOrb implements ForwardingNPCHolder { diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/FireworkController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/FireworkController.java index 253742736..4e91d0477 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/FireworkController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/FireworkController.java @@ -36,16 +36,6 @@ public Firework getBukkitEntity() { } public static class EntityFireworkNPC extends FireworkRocketEntity implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityFireworkNPC(EntityType types, Level level) { @@ -108,6 +98,16 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class FireworkNPC extends CraftFirework implements ForwardingNPCHolder { diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/FishingHookController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/FishingHookController.java index a04fb4327..53b48594a 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/FishingHookController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/FishingHookController.java @@ -44,16 +44,6 @@ public FishHook getBukkitEntity() { } public static class EntityFishingHookNPC extends FishingHook implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityFishingHookNPC(EntityType types, Level level) { @@ -131,6 +121,16 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class FishingHookNPC extends CraftFishHook implements ForwardingNPCHolder { diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/LargeFireballController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/LargeFireballController.java index 112ce981c..ed33ee72d 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/LargeFireballController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/LargeFireballController.java @@ -35,16 +35,6 @@ public org.bukkit.entity.LargeFireball getBukkitEntity() { } public static class EntityLargeFireballNPC extends LargeFireball implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityLargeFireballNPC(EntityType types, Level level) { @@ -119,6 +109,16 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class LargeFireballNPC extends CraftLargeFireball implements ForwardingNPCHolder { diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/LeashController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/LeashController.java index 5bc3e03cc..5b35b4928 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/LeashController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/LeashController.java @@ -36,16 +36,6 @@ public LeashHitch getBukkitEntity() { } public static class EntityLeashNPC extends LeashFenceKnotEntity implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityLeashNPC(EntityType types, Level level) { @@ -113,6 +103,16 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class LeashNPC extends CraftLeash implements ForwardingNPCHolder { diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/LlamaSpitController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/LlamaSpitController.java index d0fbe40e9..e506dcefc 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/LlamaSpitController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/LlamaSpitController.java @@ -47,16 +47,6 @@ public org.bukkit.entity.LlamaSpit getBukkitEntity() { } public static class EntityLlamaSpitNPC extends LlamaSpit implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityLlamaSpitNPC(EntityType types, Level level) { @@ -127,6 +117,16 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class LlamaSpitNPC extends CraftLlamaSpit implements ForwardingNPCHolder { diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MarkerController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MarkerController.java index 794244ab8..fd667f3fe 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MarkerController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MarkerController.java @@ -35,16 +35,6 @@ public org.bukkit.entity.Marker getBukkitEntity() { } public static class EntityMarkerNPC extends Marker implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityMarkerNPC(EntityType types, Level level) { @@ -107,6 +97,16 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class MarkerNPC extends CraftMarker implements ForwardingNPCHolder { diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartChestController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartChestController.java index f4abbeeeb..4325f1af1 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartChestController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartChestController.java @@ -36,16 +36,6 @@ public Minecart getBukkitEntity() { } public static class EntityMinecartChestNPC extends MinecartChest implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityMinecartChestNPC(EntityType types, Level level) { @@ -109,6 +99,16 @@ public void tick() { } } + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } + } public static class MinecartChestNPC extends CraftMinecartChest implements ForwardingNPCHolder { diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartCommandController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartCommandController.java index 5aa37a31a..5ab45557d 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartCommandController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartCommandController.java @@ -36,16 +36,6 @@ public Minecart getBukkitEntity() { } public static class EntityMinecartCommandNPC extends MinecartCommandBlock implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityMinecartCommandNPC(EntityType types, Level level) { @@ -108,6 +98,16 @@ public void tick() { NMSImpl.minecartItemLogic(this); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class MinecartCommandNPC extends CraftMinecartCommand implements ForwardingNPCHolder { diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartFurnaceController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartFurnaceController.java index 1e0a6d890..4217b470a 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartFurnaceController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartFurnaceController.java @@ -36,16 +36,6 @@ public Minecart getBukkitEntity() { } public static class EntityMinecartFurnaceNPC extends MinecartFurnace implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityMinecartFurnaceNPC(EntityType types, Level level) { @@ -108,6 +98,16 @@ public void tick() { NMSImpl.minecartItemLogic(this); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class MinecartFurnaceNPC extends CraftMinecartFurnace implements ForwardingNPCHolder { diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartHopperController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartHopperController.java index 2a67f630e..f9d647f21 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartHopperController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartHopperController.java @@ -31,16 +31,6 @@ public Minecart getBukkitEntity() { } public static class EntityMinecartHopperNPC extends MinecartHopper implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityMinecartHopperNPC(EntityType types, Level level) { @@ -95,5 +85,15 @@ public void tick() { NMSImpl.minecartItemLogic(this); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } \ No newline at end of file diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartRideableController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartRideableController.java index fe0669669..0d465fcfd 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartRideableController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartRideableController.java @@ -35,16 +35,6 @@ public org.bukkit.entity.Minecart getBukkitEntity() { } public static class EntityMinecartRideableNPC extends Minecart implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityMinecartRideableNPC(EntityType types, Level level) { @@ -107,6 +97,16 @@ public void tick() { NMSImpl.minecartItemLogic(this); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class MinecartRideableNPC extends CraftMinecartRideable implements ForwardingNPCHolder { diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartSpawnerController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartSpawnerController.java index a4ab5b9c9..c4b3c7256 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartSpawnerController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartSpawnerController.java @@ -31,16 +31,6 @@ public Minecart getBukkitEntity() { } public static class EntityMinecartSpawnerNPC extends MinecartSpawner implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityMinecartSpawnerNPC(EntityType types, Level level) { @@ -95,5 +85,15 @@ public void tick() { NMSImpl.minecartItemLogic(this); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } \ No newline at end of file diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartTNTController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartTNTController.java index 8b456fd25..352a07b77 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartTNTController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartTNTController.java @@ -31,16 +31,6 @@ public Minecart getBukkitEntity() { } public static class EntityMinecartTNTNPC extends MinecartTNT implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityMinecartTNTNPC(EntityType types, Level level) { @@ -95,5 +85,15 @@ public void tick() { NMSImpl.minecartItemLogic(this); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } } \ No newline at end of file diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/PaintingController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/PaintingController.java index 8c2b318d4..812efadc8 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/PaintingController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/PaintingController.java @@ -35,16 +35,6 @@ public org.bukkit.entity.Painting getBukkitEntity() { } public static class EntityPaintingNPC extends Painting implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityPaintingNPC(EntityType types, Level level) { @@ -112,6 +102,16 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class PaintingNPC extends CraftPainting implements ForwardingNPCHolder { diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ShulkerBulletController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ShulkerBulletController.java index d172210dc..273242a5f 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ShulkerBulletController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ShulkerBulletController.java @@ -35,16 +35,6 @@ public org.bukkit.entity.ShulkerBullet getBukkitEntity() { } public static class EntityShulkerBulletNPC extends ShulkerBullet implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityShulkerBulletNPC(EntityType types, Level level) { @@ -107,6 +97,16 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class ShulkerBulletNPC extends CraftShulkerBullet implements ForwardingNPCHolder { diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/SmallFireballController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/SmallFireballController.java index fb7d0dee5..4c0e195aa 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/SmallFireballController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/SmallFireballController.java @@ -35,16 +35,6 @@ public org.bukkit.entity.SmallFireball getBukkitEntity() { } public static class EntitySmallFireballNPC extends SmallFireball implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntitySmallFireballNPC(EntityType types, Level level) { @@ -110,6 +100,16 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class SmallFireballNPC extends CraftSmallFireball implements ForwardingNPCHolder { diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/SnowballController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/SnowballController.java index 3b4aeaa04..fab5ab7df 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/SnowballController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/SnowballController.java @@ -35,16 +35,6 @@ public org.bukkit.entity.Snowball getBukkitEntity() { } public static class EntitySnowballNPC extends Snowball implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntitySnowballNPC(EntityType types, Level level) { @@ -107,6 +97,16 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class SnowballNPC extends CraftSnowball implements ForwardingNPCHolder { diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/SpectralArrowController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/SpectralArrowController.java index 037b408f5..792ac5875 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/SpectralArrowController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/SpectralArrowController.java @@ -36,16 +36,6 @@ public Arrow getBukkitEntity() { } public static class EntitySpectralArrowNPC extends SpectralArrow implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntitySpectralArrowNPC(EntityType types, Level level) { @@ -108,6 +98,16 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class SpectralArrowNPC extends CraftArrow implements ForwardingNPCHolder { diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/TNTPrimedController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/TNTPrimedController.java index e37f022d8..1446d95f1 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/TNTPrimedController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/TNTPrimedController.java @@ -36,16 +36,6 @@ public TNTPrimed getBukkitEntity() { } public static class EntityTNTPrimedNPC extends PrimedTnt implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityTNTPrimedNPC(EntityType types, Level level) { @@ -108,6 +98,16 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class TNTPrimedNPC extends CraftTNTPrimed implements ForwardingNPCHolder { diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ThrownExpBottleController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ThrownExpBottleController.java index 7b7d18bee..5c3e1cc83 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ThrownExpBottleController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ThrownExpBottleController.java @@ -36,16 +36,6 @@ public ThrownExpBottle getBukkitEntity() { } public static class EntityThrownExpBottleNPC extends ThrownExperienceBottle implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityThrownExpBottleNPC(EntityType types, Level level) { @@ -111,6 +101,16 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class ThrownExpBottleNPC extends CraftThrownExpBottle implements ForwardingNPCHolder { diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ThrownTridentController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ThrownTridentController.java index 38418a11a..cfdb3f619 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ThrownTridentController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ThrownTridentController.java @@ -36,16 +36,6 @@ public Trident getBukkitEntity() { } public static class EntityThrownTridentNPC extends ThrownTrident implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityThrownTridentNPC(EntityType types, Level level) { @@ -108,6 +98,16 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class ThrownTridentNPC extends CraftTrident implements ForwardingNPCHolder { diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/TippedArrowController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/TippedArrowController.java index d3c85df9a..06511ec1d 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/TippedArrowController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/TippedArrowController.java @@ -35,16 +35,6 @@ public org.bukkit.entity.Arrow getBukkitEntity() { } public static class EntityTippedArrowNPC extends Arrow implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityTippedArrowNPC(EntityType types, Level level) { @@ -107,6 +97,16 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class TippedArrowNPC extends CraftTippedArrow implements ForwardingNPCHolder { diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/WitherSkullController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/WitherSkullController.java index 510ed7c24..88c3355d5 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/WitherSkullController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/WitherSkullController.java @@ -35,16 +35,6 @@ public org.bukkit.entity.WitherSkull getBukkitEntity() { } public static class EntityWitherSkullNPC extends WitherSkull implements NPCHolder { - @Override - public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - Vec3 old = getDeltaMovement().add(0, 0, 0); - boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); - if (!npc.isPushableByFluids()) { - setDeltaMovement(old); - } - return res; - } - private final CitizensNPC npc; public EntityWitherSkullNPC(EntityType types, Level level) { @@ -107,6 +97,16 @@ public void tick() { super.tick(); } } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; + } } public static class WitherSkullNPC extends CraftWitherSkull implements ForwardingNPCHolder { diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/PlayerControllerJump.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/PlayerControllerJump.java index 800e41b40..6339250d7 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/PlayerControllerJump.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/PlayerControllerJump.java @@ -10,12 +10,12 @@ public PlayerControllerJump(EntityHumanNPC entityinsentient) { this.b = entityinsentient; } + public void jump() { + this.a = true; + } + public void tick() { this.b.setJumping(this.a); this.a = false; } - - public void jump() { - this.a = true; - } } 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 f99e58290..798b2d1f8 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/PlayerNavigation.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/PlayerNavigation.java @@ -148,7 +148,7 @@ private boolean canWalkAbove(int var0, int var1, int var2, int var3, int var4, i } 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_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/AllayController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/AllayController.java index eb947ce7e..cad8d94aa 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/AllayController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/AllayController.java @@ -11,6 +11,7 @@ import net.citizensnpcs.api.CitizensAPI; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -152,6 +153,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected InteractionResult mobInteract(Player var0, InteractionHand var1) { if (npc != null && npc.isProtected()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/AxolotlController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/AxolotlController.java index 2cc86c9da..c0804eb66 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/AxolotlController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/AxolotlController.java @@ -9,6 +9,7 @@ import com.mojang.serialization.Dynamic; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -58,6 +59,7 @@ public AxolotlNPC(EntityAxolotlNPC entity) { public static class EntityAxolotlNPC extends Axolotl implements NPCHolder { private final CitizensNPC npc; + private MoveControl oldMoveController; public EntityAxolotlNPC(EntityType types, Level level) { @@ -151,6 +153,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected Brain makeBrain(Dynamic dynamic) { if (npc == null || npc.useMinecraftAI()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/BatController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/BatController.java index fea5659c2..f18722592 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/BatController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/BatController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -133,6 +134,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/BeeController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/BeeController.java index 8d63efa08..6508dedcf 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/BeeController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/BeeController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -130,6 +131,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/BlazeController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/BlazeController.java index b5feffc9f..e0f998c4c 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/BlazeController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/BlazeController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -125,6 +126,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/CatController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/CatController.java index 717e05d90..5b7c7918a 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/CatController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/CatController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -49,6 +50,7 @@ public CatNPC(EntityCatNPC entity) { public static class EntityCatNPC extends Cat implements NPCHolder { boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityCatNPC(EntityType types, Level level) { @@ -145,6 +147,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/CaveSpiderController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/CaveSpiderController.java index 6be6ae68b..f3e8a0308 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/CaveSpiderController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/CaveSpiderController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -143,6 +144,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/ChickenController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/ChickenController.java index 9b7ce6c35..530bc4d22 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/ChickenController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/ChickenController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -49,6 +50,7 @@ public ChickenNPC(EntityChickenNPC entity) { public static class EntityChickenNPC extends Chicken implements NPCHolder { boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityChickenNPC(EntityType types, Level level) { @@ -153,6 +155,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/CodController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/CodController.java index e098df2b0..ea24e88b7 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/CodController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/CodController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -55,6 +56,7 @@ public CodNPC(EntityCodNPC entity) { public static class EntityCodNPC extends Cod implements NPCHolder { private final CitizensNPC npc; + private MoveControl oldMoveController; public EntityCodNPC(EntityType types, Level level) { @@ -178,6 +180,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected InteractionResult mobInteract(Player entityhuman, InteractionHand enumhand) { if (npc == null || !npc.isProtected()) diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/CowController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/CowController.java index dfbf22213..15cd1238b 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/CowController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/CowController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -54,6 +55,7 @@ public CowNPC(EntityCowNPC entity) { public static class EntityCowNPC extends Cow implements NPCHolder { boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityCowNPC(EntityType types, Level level) { @@ -150,6 +152,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public InteractionResult mobInteract(Player entityhuman, InteractionHand enumhand) { if (npc == null || !npc.isProtected()) diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/CreeperController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/CreeperController.java index fee318cfd..5266ffc41 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/CreeperController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/CreeperController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -49,6 +50,7 @@ public CreeperNPC(EntityCreeperNPC entity) { public static class EntityCreeperNPC extends Creeper implements NPCHolder { private boolean allowPowered; + private final CitizensNPC npc; public EntityCreeperNPC(EntityType types, Level level) { @@ -145,6 +147,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/DolphinController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/DolphinController.java index 1cdcd0de3..a053410bf 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/DolphinController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/DolphinController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -50,6 +51,7 @@ public DolphinNPC(EntityDolphinNPC entity) { public static class EntityDolphinNPC extends Dolphin implements NPCHolder { private final CitizensNPC npc; + private MoveControl oldMoveController; public EntityDolphinNPC(EntityType types, Level level) { @@ -143,6 +145,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/DrownedController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/DrownedController.java index cde9e623f..ca3bcf45d 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/DrownedController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/DrownedController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -143,6 +144,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/EnderDragonController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/EnderDragonController.java index f667af2f4..91325bb71 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/EnderDragonController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/EnderDragonController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -141,6 +142,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/EndermanController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/EndermanController.java index 87d37a7b8..a8b04e58f 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/EndermanController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/EndermanController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -146,6 +147,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/EndermiteController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/EndermiteController.java index 89da3ae27..a48dbbd87 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/EndermiteController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/EndermiteController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -143,6 +144,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/EntityHumanNPC.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/EntityHumanNPC.java index 1f3542119..b919ec9ba 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/EntityHumanNPC.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/EntityHumanNPC.java @@ -26,6 +26,7 @@ import net.citizensnpcs.Settings.Setting; import net.citizensnpcs.api.CitizensAPI; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.trait.trait.Inventory; import net.citizensnpcs.api.util.SpigotUtil; @@ -386,6 +387,14 @@ public boolean isPushable() { return npc == null ? super.isPushable() : npc.data(). get(NPC.COLLIDABLE_METADATA, !npc.isProtected()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + private void moveOnCurrentHeading() { if (jumping) { if (onGround && jumpTicks == 0) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/EvokerController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/EvokerController.java index 55f926fdd..78ee7b5e3 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/EvokerController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/EvokerController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -137,6 +138,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/FoxController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/FoxController.java index d06dd6f32..54b1185ef 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/FoxController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/FoxController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -43,6 +44,7 @@ public org.bukkit.entity.Fox getBukkitEntity() { public static class EntityFoxNPC extends Fox implements NPCHolder { boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityFoxNPC(EntityType types, Level level) { @@ -139,6 +141,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/FrogController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/FrogController.java index cffff002c..caadeef9d 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/FrogController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/FrogController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -43,6 +44,7 @@ public org.bukkit.entity.Frog getBukkitEntity() { public static class EntityFrogNPC extends Frog implements NPCHolder { boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityFrogNPC(EntityType types, Level level) { @@ -142,6 +144,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/GhastController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/GhastController.java index caba24ad3..d510086f2 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/GhastController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/GhastController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -125,6 +126,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/GiantController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/GiantController.java index 138b271bd..1756ebf25 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/GiantController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/GiantController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -137,6 +138,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/GlowSquidController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/GlowSquidController.java index 479d4ee8d..b20fd48da 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/GlowSquidController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/GlowSquidController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -137,6 +138,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/GoatController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/GoatController.java index c7353eb57..ac97ef4cd 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/GoatController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/GoatController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -43,6 +44,7 @@ public org.bukkit.entity.Goat getBukkitEntity() { public static class EntityGoatNPC extends Goat implements NPCHolder { boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityGoatNPC(EntityType types, Level level) { @@ -139,6 +141,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/GuardianController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/GuardianController.java index 130931389..fd6ed73dd 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/GuardianController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/GuardianController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -143,6 +144,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/GuardianElderController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/GuardianElderController.java index 7819bd6d1..61cd1793a 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/GuardianElderController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/GuardianElderController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -143,6 +144,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/HoglinController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/HoglinController.java index 11214f92d..ebdab584f 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/HoglinController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/HoglinController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -143,6 +144,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/HorseController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/HorseController.java index 680f8d1fa..d31bbcf70 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/HorseController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/HorseController.java @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -54,6 +55,7 @@ public void spawn(Location at, NPC npc) { public static class EntityHorseNPC extends Horse implements NPCHolder { private double baseMovementSpeed; + private boolean calledNMSHeight = false; private final CitizensNPC npc; private boolean riding; @@ -186,6 +188,14 @@ public boolean isVehicle() { return npc != null && npc.getNavigator().isNavigating() ? false : super.isVehicle(); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/HorseDonkeyController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/HorseDonkeyController.java index d589ae505..3556632ea 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/HorseDonkeyController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/HorseDonkeyController.java @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -54,6 +55,7 @@ public void spawn(Location at, NPC npc) { public static class EntityHorseDonkeyNPC extends Donkey implements NPCHolder { private double baseMovementSpeed; + boolean calledNMSHeight = false; private final CitizensNPC npc; private boolean riding; @@ -185,6 +187,14 @@ public boolean isVehicle() { return npc != null && npc.getNavigator().isNavigating() ? false : super.isVehicle(); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/HorseMuleController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/HorseMuleController.java index 7652d7594..49bd7f8da 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/HorseMuleController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/HorseMuleController.java @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -54,6 +55,7 @@ public void spawn(Location at, NPC npc) { public static class EntityHorseMuleNPC extends Mule implements NPCHolder { private double baseMovementSpeed; + boolean calledNMSHeight = false; private final CitizensNPC npc; private boolean riding; @@ -185,6 +187,14 @@ public boolean isVehicle() { return npc != null && npc.getNavigator().isNavigating() ? false : super.isVehicle(); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/HorseSkeletonController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/HorseSkeletonController.java index 240bb7f90..900ea675c 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/HorseSkeletonController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/HorseSkeletonController.java @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -54,6 +55,7 @@ public void spawn(Location at, NPC npc) { public static class EntityHorseSkeletonNPC extends SkeletonHorse implements NPCHolder { private double baseMovementSpeed; + boolean calledNMSHeight = false; private final CitizensNPC npc; private boolean riding; @@ -185,6 +187,14 @@ public boolean isVehicle() { return npc != null && npc.getNavigator().isNavigating() ? false : super.isVehicle(); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/HorseZombieController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/HorseZombieController.java index 6b8c9b051..f249d8475 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/HorseZombieController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/HorseZombieController.java @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -54,6 +55,7 @@ public void spawn(Location at, NPC npc) { public static class EntityHorseZombieNPC extends ZombieHorse implements NPCHolder { private double baseMovementSpeed; + boolean calledNMSHeight = false; private final CitizensNPC npc; private boolean riding; @@ -185,6 +187,14 @@ public boolean isVehicle() { return npc != null && npc.getNavigator().isNavigating() ? false : super.isVehicle(); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/IllusionerController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/IllusionerController.java index 35ef3b897..3765ebd93 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/IllusionerController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/IllusionerController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -137,6 +138,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/IronGolemController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/IronGolemController.java index c111a7a31..4ecb9e537 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/IronGolemController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/IronGolemController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -137,6 +138,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/LlamaController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/LlamaController.java index 0d42be3f7..0d9c9a87b 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/LlamaController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/LlamaController.java @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -52,6 +53,7 @@ public void spawn(Location at, NPC npc) { public static class EntityLlamaNPC extends Llama implements NPCHolder { boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityLlamaNPC(EntityType types, Level level) { @@ -157,6 +159,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/MagmaCubeController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/MagmaCubeController.java index 46da44e89..04828bbaf 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/MagmaCubeController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/MagmaCubeController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -45,6 +46,7 @@ public org.bukkit.entity.MagmaCube getBukkitEntity() { public static class EntityMagmaCubeNPC extends MagmaCube implements NPCHolder { private final CitizensNPC npc; + private MoveControl oldMoveController; public EntityMagmaCubeNPC(EntityType types, Level level) { @@ -137,6 +139,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/MushroomCowController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/MushroomCowController.java index f554de27b..6bf16e6d1 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/MushroomCowController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/MushroomCowController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -46,6 +47,7 @@ public org.bukkit.entity.MushroomCow getBukkitEntity() { public static class EntityMushroomCowNPC extends MushroomCow implements NPCHolder { boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityMushroomCowNPC(EntityType types, Level level) { @@ -142,6 +144,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public InteractionResult mobInteract(Player entityhuman, InteractionHand enumhand) { if (npc == null || !npc.isProtected()) diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/OcelotController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/OcelotController.java index 4035964fc..f972a61b2 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/OcelotController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/OcelotController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -44,6 +45,7 @@ public org.bukkit.entity.Ocelot getBukkitEntity() { public static class EntityOcelotNPC extends Ocelot implements NPCHolder { boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityOcelotNPC(EntityType types, Level level) { @@ -145,6 +147,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/PandaController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/PandaController.java index b96a450c4..ac274027f 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/PandaController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/PandaController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -43,6 +44,7 @@ public org.bukkit.entity.Panda getBukkitEntity() { public static class EntityPandaNPC extends Panda implements NPCHolder { boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityPandaNPC(EntityType types, Level level) { @@ -139,6 +141,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/ParrotController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/ParrotController.java index 7e3c07893..f655aea0e 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/ParrotController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/ParrotController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -129,6 +130,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public InteractionResult mobInteract(Player entityhuman, InteractionHand enumhand) { // block feeding diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/PhantomController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/PhantomController.java index 2e18ba176..499fccfc5 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/PhantomController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/PhantomController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -48,6 +49,7 @@ public org.bukkit.entity.Phantom getBukkitEntity() { public static class EntityPhantomNPC extends Phantom implements NPCHolder { boolean calledNMSHeight = false; + private final CitizensNPC npc; private LookControl oldLookController; private MoveControl oldMoveController; @@ -174,6 +176,14 @@ public boolean isSunBurnTick() { return false; } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/PigController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/PigController.java index 4e3aaddc5..9d8f57acf 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/PigController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/PigController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -44,6 +45,7 @@ public org.bukkit.entity.Pig getBukkitEntity() { public static class EntityPigNPC extends Pig implements NPCHolder { boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityPigNPC(EntityType types, Level level) { @@ -146,6 +148,14 @@ public boolean isVehicle() { return npc == null ? super.isVehicle() : false; } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/PigZombieController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/PigZombieController.java index da996c72f..2f9e752c0 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/PigZombieController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/PigZombieController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -138,6 +139,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/PiglinBruteController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/PiglinBruteController.java index 0b19d2d75..07700b7ef 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/PiglinBruteController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/PiglinBruteController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -140,6 +141,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/PiglinController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/PiglinController.java index 4ac6c41ee..d22ddea67 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/PiglinController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/PiglinController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -140,6 +141,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/PillagerController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/PillagerController.java index 852165455..4dbf25600 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/PillagerController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/PillagerController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -43,6 +44,7 @@ public org.bukkit.entity.Pillager getBukkitEntity() { public static class EntityPillagerNPC extends Pillager implements NPCHolder { boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityPillagerNPC(EntityType types, Level level) { @@ -139,6 +141,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/PolarBearController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/PolarBearController.java index 82b372a16..332ee916e 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/PolarBearController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/PolarBearController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -41,6 +42,7 @@ public org.bukkit.entity.PolarBear getBukkitEntity() { public static class EntityPolarBearNPC extends PolarBear implements NPCHolder { boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityPolarBearNPC(EntityType types, Level level) { @@ -122,6 +124,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void onSyncedDataUpdated(EntityDataAccessor datawatcherobject) { if (npc != null && !calledNMSHeight) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/PufferFishController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/PufferFishController.java index 5318b946d..664d5245e 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/PufferFishController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/PufferFishController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -52,6 +53,7 @@ public org.bukkit.entity.PufferFish getBukkitEntity() { public static class EntityPufferFishNPC extends Pufferfish implements NPCHolder { private final CitizensNPC npc; + private MoveControl oldMoveController; public EntityPufferFishNPC(EntityType types, Level level) { @@ -181,6 +183,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected InteractionResult mobInteract(Player entityhuman, InteractionHand enumhand) { if (npc == null || !npc.isProtected()) diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/RabbitController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/RabbitController.java index 1892a34b5..3b415cbf1 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/RabbitController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/RabbitController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -45,6 +46,7 @@ public org.bukkit.entity.Rabbit getBukkitEntity() { public static class EntityRabbitNPC extends Rabbit implements NPCHolder { boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityRabbitNPC(EntityType types, Level level) { @@ -149,6 +151,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/RavagerController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/RavagerController.java index 1d5d38986..e1f33474c 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/RavagerController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/RavagerController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -43,6 +44,7 @@ public org.bukkit.entity.Ravager getBukkitEntity() { public static class EntityRavagerNPC extends Ravager implements NPCHolder { boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityRavagerNPC(EntityType types, Level level) { @@ -144,6 +146,14 @@ public boolean isVehicle() { return (npc == null || npc.useMinecraftAI()) ? super.isVehicle() : false; } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/SalmonController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/SalmonController.java index 6dcbd2c8e..4de3edc20 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/SalmonController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/SalmonController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -49,6 +50,7 @@ public org.bukkit.entity.Salmon getBukkitEntity() { public static class EntitySalmonNPC extends Salmon implements NPCHolder { private final CitizensNPC npc; + private MoveControl oldMoveController; public EntitySalmonNPC(EntityType types, Level level) { @@ -170,6 +172,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected InteractionResult mobInteract(Player entityhuman, InteractionHand enumhand) { if (npc == null || !npc.isProtected()) diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/SheepController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/SheepController.java index edb0a1c9f..6ec952614 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/SheepController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/SheepController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -43,6 +44,7 @@ public org.bukkit.entity.Sheep getBukkitEntity() { public static class EntitySheepNPC extends Sheep implements NPCHolder { boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntitySheepNPC(EntityType types, Level level) { @@ -139,6 +141,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/ShulkerController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/ShulkerController.java index 72fcc5e76..1c1a33435 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/ShulkerController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/ShulkerController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -141,6 +142,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/SilverfishController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/SilverfishController.java index e7591e217..802cb44a9 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/SilverfishController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/SilverfishController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -135,6 +136,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/SkeletonController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/SkeletonController.java index 64d3cb2cd..7802af062 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/SkeletonController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/SkeletonController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -137,6 +138,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/SkeletonStrayController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/SkeletonStrayController.java index baff450e3..688ee56d4 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/SkeletonStrayController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/SkeletonStrayController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -137,6 +138,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/SkeletonWitherController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/SkeletonWitherController.java index 4130f8e86..4ddeda63c 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/SkeletonWitherController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/SkeletonWitherController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -137,6 +138,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/SlimeController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/SlimeController.java index e6401536d..779384851 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/SlimeController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/SlimeController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -45,6 +46,7 @@ public org.bukkit.entity.Slime getBukkitEntity() { public static class EntitySlimeNPC extends Slime implements NPCHolder { private final CitizensNPC npc; + private MoveControl oldMoveController; public EntitySlimeNPC(EntityType types, Level level) { @@ -137,6 +139,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/SnowmanController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/SnowmanController.java index 20f4993e1..e021903bb 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/SnowmanController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/SnowmanController.java @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -150,6 +151,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/SpiderController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/SpiderController.java index 833c0c52c..5cec56330 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/SpiderController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/SpiderController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -137,6 +138,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/SquidController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/SquidController.java index b12aa69a9..89f0e2a79 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/SquidController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/SquidController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -137,6 +138,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/StriderController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/StriderController.java index 702d0436c..722643c2c 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/StriderController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/StriderController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -137,6 +138,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/TadpoleController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/TadpoleController.java index b648c3f06..7f22fc847 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/TadpoleController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/TadpoleController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -50,6 +51,7 @@ public org.bukkit.entity.Tadpole getBukkitEntity() { public static class EntityTadpoleNPC extends Tadpole implements NPCHolder { private final CitizensNPC npc; + private MoveControl oldMoveController; public EntityTadpoleNPC(EntityType types, Level level) { @@ -170,6 +172,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public InteractionResult mobInteract(Player entityhuman, InteractionHand enumhand) { if (npc == null || !npc.isProtected()) diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/TraderLlamaController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/TraderLlamaController.java index 55f1e9df7..f012e04b5 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/TraderLlamaController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/TraderLlamaController.java @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -52,6 +53,7 @@ public void spawn(Location at, NPC npc) { public static class EntityTraderLlamaNPC extends TraderLlama implements NPCHolder { boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityTraderLlamaNPC(EntityType types, Level level) { @@ -158,6 +160,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/TropicalFishController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/TropicalFishController.java index 6419dad3f..50f547ff1 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/TropicalFishController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/TropicalFishController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -49,6 +50,7 @@ public org.bukkit.entity.TropicalFish getBukkitEntity() { public static class EntityTropicalFishNPC extends TropicalFish implements NPCHolder { private final CitizensNPC npc; + private MoveControl oldMoveController; public EntityTropicalFishNPC(EntityType types, Level level) { @@ -172,6 +174,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected InteractionResult mobInteract(Player entityhuman, InteractionHand enumhand) { if (npc == null || !npc.isProtected()) diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/TurtleController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/TurtleController.java index 2cd306bde..92f4bcd2c 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/TurtleController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/TurtleController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -46,6 +47,7 @@ public org.bukkit.entity.Turtle getBukkitEntity() { public static class EntityTurtleNPC extends Turtle implements NPCHolder { private final CitizensNPC npc; + private JumpControl oldJumpController; private MoveControl oldMoveController; @@ -157,6 +159,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/VexController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/VexController.java index eeb590767..a4a21fb3c 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/VexController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/VexController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -123,6 +124,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/VillagerController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/VillagerController.java index 459588bbc..dcd28ffd2 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/VillagerController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/VillagerController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -49,6 +50,7 @@ public org.bukkit.entity.Villager getBukkitEntity() { public static class EntityVillagerNPC extends Villager implements NPCHolder { private boolean blockingATrade; + boolean calledNMSHeight = false; private final CitizensNPC npc; @@ -160,6 +162,14 @@ public boolean isTrading() { return super.isTrading(); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public InteractionResult mobInteract(Player entityhuman, InteractionHand enumhand) { if (npc != null && npc.data().get(NPC.VILLAGER_BLOCK_TRADES, true)) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/VindicatorController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/VindicatorController.java index 056d1841b..7aaba929b 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/VindicatorController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/VindicatorController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -43,6 +44,7 @@ public org.bukkit.entity.Vindicator getBukkitEntity() { public static class EntityVindicatorNPC extends Vindicator implements NPCHolder { boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityVindicatorNPC(EntityType types, Level level) { @@ -139,6 +141,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/WanderingTraderController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/WanderingTraderController.java index 5932595d3..9ded5657d 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/WanderingTraderController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/WanderingTraderController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -48,6 +49,7 @@ public org.bukkit.entity.WanderingTrader getBukkitEntity() { public static class EntityWanderingTraderNPC extends WanderingTrader implements NPCHolder { private boolean blockingATrade; + private boolean blockTrades = true; boolean calledNMSHeight = false; private final CitizensNPC npc; @@ -161,6 +163,14 @@ public boolean isTrading() { return super.isTrading(); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public InteractionResult mobInteract(Player entityhuman, InteractionHand enumhand) { if (npc != null && blockTrades) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/WardenController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/WardenController.java index 937c396e3..875370d51 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/WardenController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/WardenController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -147,6 +148,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/WitchController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/WitchController.java index 9fe35ed52..f5c883ace 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/WitchController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/WitchController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -137,6 +138,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/WitherController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/WitherController.java index 331bc8a6c..fbb94088e 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/WitherController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/WitherController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -135,6 +136,14 @@ public boolean isPowered() { : npc.data().get("wither-arrow-shield"); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/WolfController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/WolfController.java index 157bf2999..6b7abc778 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/WolfController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/WolfController.java @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -45,6 +46,7 @@ public org.bukkit.entity.Wolf getBukkitEntity() { public static class EntityWolfNPC extends Wolf implements NPCHolder { boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityWolfNPC(EntityType types, Level level) { @@ -141,6 +143,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/ZoglinController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/ZoglinController.java index c61c9d2f5..a99a2cdaf 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/ZoglinController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/ZoglinController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -139,6 +140,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/ZombieController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/ZombieController.java index 2dcbf299e..5607e7600 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/ZombieController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/ZombieController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -137,6 +138,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/ZombieHuskController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/ZombieHuskController.java index eb07e6dea..7adbd6e50 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/ZombieHuskController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/ZombieHuskController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -137,6 +138,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/ZombieVillagerController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/ZombieVillagerController.java index 871cf99c7..ccc4a0d25 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/ZombieVillagerController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/ZombieVillagerController.java @@ -7,6 +7,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; @@ -137,6 +138,14 @@ public boolean isLeashed() { return NMSImpl.isLeashed(this, super.isLeashed()); } + @Override + public void knockback(double strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.knockback(event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean onClimbable() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/util/PlayerControllerJump.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/util/PlayerControllerJump.java index d40994961..0139f7c5e 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/util/PlayerControllerJump.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/util/PlayerControllerJump.java @@ -10,12 +10,12 @@ public PlayerControllerJump(EntityHumanNPC entityinsentient) { this.b = entityinsentient; } + public void jump() { + this.a = true; + } + public void tick() { this.b.setJumping(this.a); this.a = false; } - - public void jump() { - this.a = true; - } } diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/util/PlayerNavigation.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/util/PlayerNavigation.java index c51b74ece..d43d40fcc 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/util/PlayerNavigation.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/util/PlayerNavigation.java @@ -148,7 +148,7 @@ private boolean canWalkAbove(int var0, int var1, int var2, int var3, int var4, i } 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_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 342bcc547..e713ee7ff 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 @@ -8,11 +8,13 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.Entity; import net.minecraft.server.v1_8_R3.EntityBat; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -56,6 +58,14 @@ public EntityBatNPC(World world, NPC npc) { } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.HURT_SOUND_METADATA); 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 b52a94461..cf72908cc 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 @@ -8,11 +8,13 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.Entity; import net.minecraft.server.v1_8_R3.EntityBlaze; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -53,6 +55,14 @@ public EntityBlazeNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.HURT_SOUND_METADATA); 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 1bf465c9b..0b1c60eac 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; +import net.minecraft.server.v1_8_R3.Entity; import net.minecraft.server.v1_8_R3.EntityCaveSpider; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -62,6 +64,14 @@ protected void a(double d0, boolean flag, Block block, BlockPosition blockpositi } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.HURT_SOUND_METADATA); 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 df53aad9d..1cdab6da4 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; +import net.minecraft.server.v1_8_R3.Entity; import net.minecraft.server.v1_8_R3.EntityChicken; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -73,6 +75,14 @@ protected void a(double d0, boolean flag, Block block, BlockPosition blockpositi } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.HURT_SOUND_METADATA); 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 babc4d349..163181f8d 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; +import net.minecraft.server.v1_8_R3.Entity; import net.minecraft.server.v1_8_R3.EntityCow; import net.minecraft.server.v1_8_R3.EntityHuman; import net.minecraft.server.v1_8_R3.ItemStack; @@ -76,6 +78,14 @@ protected void a(double d0, boolean flag, Block block, BlockPosition blockpositi } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean a(EntityHuman entityhuman) { if (npc == null || !npc.isProtected()) 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 ad32dc024..d483b08a8 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; +import net.minecraft.server.v1_8_R3.Entity; import net.minecraft.server.v1_8_R3.EntityCreeper; import net.minecraft.server.v1_8_R3.EntityHuman; import net.minecraft.server.v1_8_R3.EntityLightning; @@ -47,6 +49,7 @@ public NPC getNPC() { public static class EntityCreeperNPC extends EntityCreeper implements NPCHolder { private boolean allowPowered; + private final CitizensNPC npc; public EntityCreeperNPC(World world) { @@ -65,6 +68,14 @@ protected void a(double d0, boolean flag, Block block, BlockPosition blockpositi } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected boolean a(EntityHuman entityhuman) { return npc == null || !npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true) ? super.a(entityhuman) : false; 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 1528b44ab..14a3c507a 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 @@ -8,11 +8,13 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.Entity; import net.minecraft.server.v1_8_R3.EntityEnderDragon; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -53,6 +55,14 @@ public EntityEnderDragonNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.HURT_SOUND_METADATA); 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 b5c391294..dbabb7f16 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; +import net.minecraft.server.v1_8_R3.Entity; import net.minecraft.server.v1_8_R3.EntityEnderman; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -62,6 +64,14 @@ protected void a(double d0, boolean flag, Block block, BlockPosition blockpositi } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.HURT_SOUND_METADATA); 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 e80a875e8..eddd49900 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; +import net.minecraft.server.v1_8_R3.Entity; import net.minecraft.server.v1_8_R3.EntityEndermite; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -62,6 +64,14 @@ protected void a(double d0, boolean flag, Block block, BlockPosition blockpositi } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.HURT_SOUND_METADATA); 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 166efdef4..24960c39c 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 @@ -371,7 +371,7 @@ public void setShouldJump() { @Override public void setSkinFlags(byte flags) { // set skin flag byte - getDataWatcher().watch(10, Byte.valueOf(flags)); + getDataWatcher().watch(10, flags); } @Override diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/GhastController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/GhastController.java index f66cc0480..c2ce59c80 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 @@ -8,11 +8,13 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.Entity; import net.minecraft.server.v1_8_R3.EntityGhast; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -39,6 +41,14 @@ public EntityGhastNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @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 aabee4be6..9cdc4e52b 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; +import net.minecraft.server.v1_8_R3.Entity; import net.minecraft.server.v1_8_R3.EntityGiantZombie; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -48,6 +50,14 @@ protected void a(double d0, boolean flag, Block block, BlockPosition blockpositi } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.HURT_SOUND_METADATA); 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 a1b2436c8..8103d418a 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; +import net.minecraft.server.v1_8_R3.Entity; import net.minecraft.server.v1_8_R3.EntityGuardian; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -48,6 +50,14 @@ protected void a(double d0, boolean flag, Block block, BlockPosition blockpositi } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.HURT_SOUND_METADATA); 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 7e434d761..0481eacc0 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 @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -18,6 +19,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; +import net.minecraft.server.v1_8_R3.Entity; import net.minecraft.server.v1_8_R3.EntityHorse; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -71,6 +73,14 @@ protected void a(double d0, boolean flag, Block block, BlockPosition blockpositi } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.HURT_SOUND_METADATA); 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 e5e6be503..89a99f247 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; +import net.minecraft.server.v1_8_R3.Entity; import net.minecraft.server.v1_8_R3.EntityIronGolem; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -48,6 +50,14 @@ protected void a(double d0, boolean flag, Block block, BlockPosition blockpositi } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.HURT_SOUND_METADATA); 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 02ece6e46..611ebaf30 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.nms.v1_8_R3.util.PlayerControllerMove; @@ -16,6 +17,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; +import net.minecraft.server.v1_8_R3.Entity; import net.minecraft.server.v1_8_R3.EntityHuman; import net.minecraft.server.v1_8_R3.EntityMagmaCube; import net.minecraft.server.v1_8_R3.NBTTagCompound; @@ -54,6 +56,14 @@ protected void a(double d0, boolean flag, Block block, BlockPosition blockpositi } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.HURT_SOUND_METADATA); 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 3fa710327..3fb7df1d5 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; +import net.minecraft.server.v1_8_R3.Entity; import net.minecraft.server.v1_8_R3.EntityHuman; import net.minecraft.server.v1_8_R3.EntityMushroomCow; import net.minecraft.server.v1_8_R3.NBTTagCompound; @@ -61,6 +63,14 @@ protected void a(double d0, boolean flag, Block block, BlockPosition blockpositi } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean a(EntityHuman entityhuman) { if (npc == null || !npc.isProtected()) 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 86c02da63..3b6700d05 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; +import net.minecraft.server.v1_8_R3.Entity; import net.minecraft.server.v1_8_R3.EntityOcelot; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -59,6 +61,14 @@ protected void a(double d0, boolean flag, Block block, BlockPosition blockpositi } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.HURT_SOUND_METADATA); 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 0d0599a3f..13200907a 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; +import net.minecraft.server.v1_8_R3.Entity; import net.minecraft.server.v1_8_R3.EntityLightning; import net.minecraft.server.v1_8_R3.EntityPig; import net.minecraft.server.v1_8_R3.NBTTagCompound; @@ -60,6 +62,14 @@ protected void a(double d0, boolean flag, Block block, BlockPosition blockpositi } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.HURT_SOUND_METADATA); 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 da8eaca4d..eb60541b6 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; +import net.minecraft.server.v1_8_R3.Entity; import net.minecraft.server.v1_8_R3.EntityPigZombie; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -49,6 +51,14 @@ protected void a(double d0, boolean flag, Block block, BlockPosition blockpositi } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.HURT_SOUND_METADATA); 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 3011144f4..75bc39dfe 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; +import net.minecraft.server.v1_8_R3.Entity; import net.minecraft.server.v1_8_R3.EntityLiving; import net.minecraft.server.v1_8_R3.EntityRabbit; import net.minecraft.server.v1_8_R3.NBTTagCompound; @@ -60,6 +62,14 @@ protected void a(double d0, boolean flag, Block block, BlockPosition blockpositi } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.HURT_SOUND_METADATA); @@ -180,7 +190,7 @@ public boolean k_() { @Override public void setRabbitType(int i) { if (npc != null) { - this.datawatcher.watch(18, Byte.valueOf((byte) i)); + this.datawatcher.watch(18, (byte) i); return; } super.setRabbitType(i); diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/SheepController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/SheepController.java index 3604fe131..16bd95820 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; +import net.minecraft.server.v1_8_R3.Entity; import net.minecraft.server.v1_8_R3.EntitySheep; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -59,6 +61,14 @@ protected void a(double d0, boolean flag, Block block, BlockPosition blockpositi } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.HURT_SOUND_METADATA); 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 97d4e4ed4..680301bdc 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; +import net.minecraft.server.v1_8_R3.Entity; import net.minecraft.server.v1_8_R3.EntitySilverfish; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -48,6 +50,14 @@ protected void a(double d0, boolean flag, Block block, BlockPosition blockpositi } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.HURT_SOUND_METADATA); 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 7bb039928..471fd01df 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; +import net.minecraft.server.v1_8_R3.Entity; import net.minecraft.server.v1_8_R3.EntitySkeleton; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -48,6 +50,14 @@ protected void a(double d0, boolean flag, Block block, BlockPosition blockpositi } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.HURT_SOUND_METADATA); 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 c8f8d0061..d77a11822 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.nms.v1_8_R3.util.PlayerControllerMove; @@ -16,6 +17,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; +import net.minecraft.server.v1_8_R3.Entity; import net.minecraft.server.v1_8_R3.EntityHuman; import net.minecraft.server.v1_8_R3.EntitySlime; import net.minecraft.server.v1_8_R3.NBTTagCompound; @@ -54,6 +56,14 @@ protected void a(double d0, boolean flag, Block block, BlockPosition blockpositi } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.HURT_SOUND_METADATA); 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 cadda50be..58c280d5b 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; +import net.minecraft.server.v1_8_R3.Entity; import net.minecraft.server.v1_8_R3.EntitySnowman; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -48,6 +50,14 @@ protected void a(double d0, boolean flag, Block block, BlockPosition blockpositi } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.HURT_SOUND_METADATA); 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 cb98d1160..9b3971ffa 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; +import net.minecraft.server.v1_8_R3.Entity; import net.minecraft.server.v1_8_R3.EntitySpider; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -48,6 +50,14 @@ protected void a(double d0, boolean flag, Block block, BlockPosition blockpositi } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.HURT_SOUND_METADATA); 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 b979bfdbe..c67e73123 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; +import net.minecraft.server.v1_8_R3.Entity; import net.minecraft.server.v1_8_R3.EntitySquid; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -48,6 +50,14 @@ protected void a(double d0, boolean flag, Block block, BlockPosition blockpositi } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.HURT_SOUND_METADATA); 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 60ae21ec3..dedba24aa 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; +import net.minecraft.server.v1_8_R3.Entity; import net.minecraft.server.v1_8_R3.EntityHuman; import net.minecraft.server.v1_8_R3.EntityLightning; import net.minecraft.server.v1_8_R3.EntityVillager; @@ -33,6 +35,7 @@ public Villager getBukkitEntity() { public static class EntityVillagerNPC extends EntityVillager implements NPCHolder { private boolean blockingATrade; + private final CitizensNPC npc; public EntityVillagerNPC(World world) { @@ -62,6 +65,14 @@ protected void a(double d0, boolean flag, Block block, BlockPosition blockpositi } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override public boolean a(EntityHuman entityhuman) { if (npc != null && npc.data().get(NPC.VILLAGER_BLOCK_TRADES, true)) { 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 6497a8e07..089f82c14 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; +import net.minecraft.server.v1_8_R3.Entity; import net.minecraft.server.v1_8_R3.EntityWitch; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -48,6 +50,14 @@ protected void a(double d0, boolean flag, Block block, BlockPosition blockpositi } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.HURT_SOUND_METADATA); 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 e6fe3b044..dcae52f71 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 @@ -8,11 +8,13 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.Entity; import net.minecraft.server.v1_8_R3.EntityWither; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -39,6 +41,14 @@ public EntityWitherNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.HURT_SOUND_METADATA); 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 0a5879ff2..ee1325786 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 @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -16,6 +17,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; +import net.minecraft.server.v1_8_R3.Entity; import net.minecraft.server.v1_8_R3.EntityLiving; import net.minecraft.server.v1_8_R3.EntityWolf; import net.minecraft.server.v1_8_R3.NBTTagCompound; @@ -61,6 +63,14 @@ protected void a(double d0, boolean flag, Block block, BlockPosition blockpositi } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.HURT_SOUND_METADATA); 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 ecd7485bc..aa61c099e 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 @@ -8,6 +8,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; @@ -15,6 +16,7 @@ import net.citizensnpcs.util.Util; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; +import net.minecraft.server.v1_8_R3.Entity; import net.minecraft.server.v1_8_R3.EntityZombie; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -48,6 +50,14 @@ protected void a(double d0, boolean flag, Block block, BlockPosition blockpositi } } + @Override + public void a(Entity entity, float strength, double dx, double dz) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + Vector kb = event.getKnockbackVector(); + super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.HURT_SOUND_METADATA); 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 51a5c9f7e..3f1ad7750 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 @@ -104,14 +104,6 @@ public NPC getNPC() { return npc; } - @Override - public void t_() { - super.t_(); - if (npc != null) { - npc.update(); - } - } - @Override public void setSize(float f, float f1) { if (npc == null) { @@ -120,5 +112,13 @@ public void setSize(float f, float f1) { NMSImpl.setSize(this, f, f1, justCreated); } } + + @Override + public void t_() { + super.t_(); + if (npc != null) { + npc.update(); + } + } } } \ No newline at end of file diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/BoatController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/BoatController.java index 4be7ca586..d0927f7a2 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 @@ -145,12 +145,12 @@ private void updateBoat() { double d8 = this.locX - d4 * d6 * 0.8D + d5 * d7; double d9 = this.locZ - d5 * d6 * 0.8D - d4 * d7; this.world.addParticle(EnumParticle.WATER_SPLASH, d8, this.locY - 0.125D, d9, this.motX, - this.motY, this.motZ, new int[0]); + this.motY, this.motZ); } else { double d8 = this.locX + d4 + d5 * d6 * 0.7D; double d9 = this.locZ + d5 - d4 * d6 * 0.7D; this.world.addParticle(EnumParticle.WATER_SPLASH, d8, this.locY - 0.125D, d9, this.motX, - this.motY, this.motZ, new int[0]); + this.motY, this.motZ); } } } 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 1fca2338b..be335fb6f 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 @@ -63,11 +63,6 @@ public EntityEggNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } - @Override - public boolean d(NBTTagCompound save) { - return npc == null ? super.d(save) : false; - } - public EntityEggNPC(World world, NPC npc, double d0, double d1, double d2) { super(world, d0, d1, d2); this.npc = (CitizensNPC) npc; @@ -83,6 +78,11 @@ public void collide(net.minecraft.server.v1_8_R3.Entity entity) { } } + @Override + public boolean d(NBTTagCompound save) { + return npc == null ? super.d(save) : false; + } + @Override public void g(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 3b5358c57..31d2c4e47 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 @@ -47,11 +47,6 @@ public EntityEnderCrystalNPC(World world) { this(world, null); } - @Override - public boolean d(NBTTagCompound save) { - return npc == null ? super.d(save) : false; - } - public EntityEnderCrystalNPC(World world, NPC npc) { super(world); this.npc = (CitizensNPC) npc; @@ -67,6 +62,11 @@ public void collide(net.minecraft.server.v1_8_R3.Entity entity) { } } + @Override + public boolean d(NBTTagCompound save) { + return npc == null ? super.d(save) : false; + } + @Override public void g(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 02758331d..421476341 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 @@ -47,11 +47,6 @@ public EntityEnderSignalNPC(World world) { this(world, null); } - @Override - public boolean d(NBTTagCompound save) { - return npc == null ? super.d(save) : false; - } - public EntityEnderSignalNPC(World world, NPC npc) { super(world); this.npc = (CitizensNPC) npc; @@ -67,6 +62,11 @@ public void collide(net.minecraft.server.v1_8_R3.Entity entity) { } } + @Override + public boolean d(NBTTagCompound save) { + return npc == null ? super.d(save) : false; + } + @Override public void g(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 9ce6e3800..48d6f6274 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 @@ -38,11 +38,6 @@ public EntityFireworkNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } - @Override - public boolean d(NBTTagCompound save) { - return npc == null ? super.d(save) : false; - } - @Override public void collide(net.minecraft.server.v1_8_R3.Entity entity) { // this method is called by both the entities involved - cancelling @@ -53,6 +48,11 @@ public void collide(net.minecraft.server.v1_8_R3.Entity entity) { } } + @Override + public boolean d(NBTTagCompound save) { + return npc == null ? super.d(save) : false; + } + @Override public void g(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 e90f89091..75b0d77e2 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 @@ -74,6 +74,11 @@ public NPC getNPC() { return npc; } + @Override + public boolean survives() { + return npc == null || !npc.isProtected() ? super.survives() : true; + } + @Override public void t_() { if (npc != null) { @@ -82,11 +87,6 @@ public void t_() { super.t_(); } } - - @Override - public boolean survives() { - return npc == null || !npc.isProtected() ? super.survives() : true; - } } public static class LeashNPC extends CraftLeash implements NPCHolder { 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 93e7ded0f..b4ced0ac6 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 @@ -38,11 +38,6 @@ public EntityPaintingNPC(World world, NPC npc) { this.npc = (CitizensNPC) npc; } - @Override - public boolean d(NBTTagCompound save) { - return npc == null ? super.d(save) : false; - } - @Override public void collide(net.minecraft.server.v1_8_R3.Entity entity) { // this method is called by both the entities involved - cancelling @@ -53,6 +48,11 @@ public void collide(net.minecraft.server.v1_8_R3.Entity entity) { } } + @Override + public boolean d(NBTTagCompound save) { + return npc == null ? super.d(save) : false; + } + @Override public void g(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); @@ -74,6 +74,11 @@ public NPC getNPC() { return npc; } + @Override + public boolean survives() { + return npc == null || !npc.isProtected() ? super.survives() : true; + } + @Override public void t_() { if (npc != null) { @@ -82,11 +87,6 @@ public void t_() { super.t_(); } } - - @Override - public boolean survives() { - return npc == null || !npc.isProtected() ? super.survives() : true; - } } public static class PaintingNPC extends CraftPainting implements NPCHolder { 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 3187ba66f..d20931495 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 @@ -26,20 +26,6 @@ public Snowball getBukkitEntity() { return (Snowball) super.getBukkitEntity(); } - public static class SnowballNPC extends CraftSnowball implements NPCHolder { - private final CitizensNPC npc; - - public SnowballNPC(EntitySnowballNPC entity) { - super((CraftServer) Bukkit.getServer(), entity); - this.npc = entity.npc; - } - - @Override - public NPC getNPC() { - return npc; - } - } - public static class EntitySnowballNPC extends EntitySnowball implements NPCHolder { private final CitizensNPC npc; @@ -47,11 +33,6 @@ public EntitySnowballNPC(World world) { this(world, null); } - @Override - public boolean d(NBTTagCompound save) { - return npc == null ? super.d(save) : false; - } - public EntitySnowballNPC(World world, NPC npc) { super(world); this.npc = (CitizensNPC) npc; @@ -67,6 +48,11 @@ public void collide(net.minecraft.server.v1_8_R3.Entity entity) { } } + @Override + public boolean d(NBTTagCompound save) { + return npc == null ? super.d(save) : false; + } + @Override public void g(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); @@ -97,4 +83,18 @@ public void t_() { } } } + + public static class SnowballNPC extends CraftSnowball implements NPCHolder { + private final CitizensNPC npc; + + public SnowballNPC(EntitySnowballNPC entity) { + super((CraftServer) Bukkit.getServer(), entity); + this.npc = entity.npc; + } + + @Override + public NPC getNPC() { + return npc; + } + } } \ No newline at end of file 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 7691d2754..b7fbd061c 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 @@ -33,11 +33,6 @@ public EntityTNTPrimedNPC(World world) { this(world, null); } - @Override - public boolean d(NBTTagCompound save) { - return npc == null ? super.d(save) : false; - } - public EntityTNTPrimedNPC(World world, NPC npc) { super(world); this.npc = (CitizensNPC) npc; @@ -53,6 +48,11 @@ public void collide(net.minecraft.server.v1_8_R3.Entity entity) { } } + @Override + public boolean d(NBTTagCompound save) { + return npc == null ? super.d(save) : false; + } + @Override public void g(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 84ce03c52..8a1c16f38 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 @@ -33,11 +33,6 @@ public EntityWitherSkullNPC(World world) { this(world, null); } - @Override - public boolean d(NBTTagCompound save) { - return npc == null ? super.d(save) : false; - } - public EntityWitherSkullNPC(World world, NPC npc) { super(world); this.npc = (CitizensNPC) npc; @@ -53,6 +48,11 @@ public void collide(net.minecraft.server.v1_8_R3.Entity entity) { } } + @Override + public boolean d(NBTTagCompound save) { + return npc == null ? super.d(save) : false; + } + @Override public void g(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 d086d1c9a..dc8404302 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 @@ -967,7 +967,7 @@ public void setDestination(org.bukkit.entity.Entity entity, double x, double y, @Override public void setEndermanAngry(org.bukkit.entity.Enderman enderman, boolean angry) { - getHandle(enderman).getDataWatcher().watch(17, Byte.valueOf((byte) (angry ? 1 : 0))); + getHandle(enderman).getDataWatcher().watch(17, (byte) (angry ? 1 : 0)); } @Override @@ -999,9 +999,7 @@ public void setNavigationTarget(org.bukkit.entity.Entity handle, org.bukkit.enti @Override public void setNoGravity(org.bukkit.entity.Entity entity, boolean enabled) { - if (!enabled) - return; - if (((NPCHolder) entity).getNPC().getNavigator().isNavigating()) + if (!enabled || ((NPCHolder) entity).getNPC().getNavigator().isNavigating()) return; // use legacy gravity behaviour Vector vector = entity.getVelocity(); vector.setY(Math.max(0, vector.getY())); @@ -1301,7 +1299,7 @@ public void stop() { @Override public void update() { updateNavigation(navigation); - }; + } } private static class NavigationIterable implements Iterable { 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 8201aa2fd..061c52c70 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 @@ -131,13 +131,7 @@ private boolean a(int paramInt1, int paramInt2, int paramInt3, int paramInt4, in if (d1 * paramDouble1 + d2 * paramDouble2 >= 0.0D) { Block localBlock = this.c.getType(new BlockPosition(k, paramInt2 - 1, m)).getBlock(); Material localMaterial = localBlock.getMaterial(); - if (localMaterial == Material.AIR) { - return false; - } - if ((localMaterial == Material.WATER) && (!this.b.V())) { - return false; - } - if (localMaterial == Material.LAVA) { + if ((localMaterial == Material.AIR) || ((localMaterial == Material.WATER) && (!this.b.V())) || (localMaterial == Material.LAVA)) { return false; } }