From 3cb63f5ab5da7cc839a71622b89ba9ab892c2eb4 Mon Sep 17 00:00:00 2001 From: fullwall Date: Sat, 17 Jun 2023 15:46:07 +0800 Subject: [PATCH] Reduce allocation pressure from fluid push --- .../v1_13_R2/entity/ArmorStandController.java | 14 +++++++++++++- .../nms/v1_13_R2/entity/BatController.java | 16 +++++++++++++--- .../nms/v1_13_R2/entity/BlazeController.java | 16 +++++++++++++--- .../v1_13_R2/entity/CaveSpiderController.java | 16 +++++++++++++--- .../nms/v1_13_R2/entity/ChickenController.java | 16 +++++++++++++--- .../nms/v1_13_R2/entity/CodController.java | 16 +++++++++++++--- .../nms/v1_13_R2/entity/CowController.java | 16 +++++++++++++--- .../nms/v1_13_R2/entity/CreeperController.java | 16 +++++++++++++--- .../nms/v1_13_R2/entity/DolphinController.java | 16 +++++++++++++--- .../nms/v1_13_R2/entity/DrownedController.java | 16 +++++++++++++--- .../v1_13_R2/entity/EnderDragonController.java | 14 +++++++++++++- .../nms/v1_13_R2/entity/EndermanController.java | 16 +++++++++++++--- .../nms/v1_13_R2/entity/EndermiteController.java | 16 +++++++++++++--- .../nms/v1_13_R2/entity/EvokerController.java | 16 +++++++++++++--- .../nms/v1_13_R2/entity/GhastController.java | 16 +++++++++++++--- .../nms/v1_13_R2/entity/GiantController.java | 16 +++++++++++++--- .../nms/v1_13_R2/entity/GuardianController.java | 16 +++++++++++++--- .../v1_13_R2/entity/GuardianElderController.java | 16 +++++++++++++--- .../nms/v1_13_R2/entity/HorseController.java | 16 +++++++++++++--- .../v1_13_R2/entity/HorseDonkeyController.java | 16 +++++++++++++--- .../nms/v1_13_R2/entity/HorseMuleController.java | 16 +++++++++++++--- .../v1_13_R2/entity/HorseSkeletonController.java | 14 +++++++++++++- .../v1_13_R2/entity/HorseZombieController.java | 16 +++++++++++++--- .../v1_13_R2/entity/IllusionerController.java | 16 +++++++++++++--- .../nms/v1_13_R2/entity/IronGolemController.java | 16 +++++++++++++--- .../nms/v1_13_R2/entity/LlamaController.java | 14 +++++++++++++- .../nms/v1_13_R2/entity/MagmaCubeController.java | 16 +++++++++++++--- .../v1_13_R2/entity/MushroomCowController.java | 16 +++++++++++++--- .../nms/v1_13_R2/entity/OcelotController.java | 16 +++++++++++++--- .../nms/v1_13_R2/entity/ParrotController.java | 16 +++++++++++++--- .../nms/v1_13_R2/entity/PhantomController.java | 16 +++++++++++++--- .../nms/v1_13_R2/entity/PigController.java | 16 +++++++++++++--- .../nms/v1_13_R2/entity/PigZombieController.java | 16 +++++++++++++--- .../nms/v1_13_R2/entity/PolarBearController.java | 16 +++++++++++++--- .../v1_13_R2/entity/PufferFishController.java | 16 +++++++++++++--- .../nms/v1_13_R2/entity/RabbitController.java | 16 +++++++++++++--- .../nms/v1_13_R2/entity/SalmonController.java | 16 +++++++++++++--- .../nms/v1_13_R2/entity/SheepController.java | 16 +++++++++++++--- .../nms/v1_13_R2/entity/ShulkerController.java | 16 +++++++++++++--- .../v1_13_R2/entity/SilverfishController.java | 16 +++++++++++++--- .../nms/v1_13_R2/entity/SkeletonController.java | 16 +++++++++++++--- .../v1_13_R2/entity/SkeletonStrayController.java | 16 +++++++++++++--- .../entity/SkeletonWitherController.java | 16 +++++++++++++--- .../nms/v1_13_R2/entity/SlimeController.java | 16 +++++++++++++--- .../nms/v1_13_R2/entity/SnowmanController.java | 16 +++++++++++++--- .../nms/v1_13_R2/entity/SpiderController.java | 16 +++++++++++++--- .../nms/v1_13_R2/entity/SquidController.java | 16 +++++++++++++--- .../v1_13_R2/entity/TropicalFishController.java | 16 +++++++++++++--- .../nms/v1_13_R2/entity/TurtleController.java | 16 +++++++++++++--- .../nms/v1_13_R2/entity/VexController.java | 16 +++++++++++++--- .../nms/v1_13_R2/entity/VillagerController.java | 16 +++++++++++++--- .../v1_13_R2/entity/VindicatorController.java | 16 +++++++++++++--- .../nms/v1_13_R2/entity/WitchController.java | 16 +++++++++++++--- .../nms/v1_13_R2/entity/WitherController.java | 16 +++++++++++++--- .../nms/v1_13_R2/entity/WolfController.java | 16 +++++++++++++--- .../nms/v1_13_R2/entity/ZombieController.java | 16 +++++++++++++--- .../v1_13_R2/entity/ZombieHuskController.java | 16 +++++++++++++--- .../entity/ZombieVillagerController.java | 16 +++++++++++++--- .../nonliving/AreaEffectCloudController.java | 14 +++++++++++++- .../entity/nonliving/BoatController.java | 14 +++++++++++++- .../nonliving/DragonFireballController.java | 14 +++++++++++++- .../v1_13_R2/entity/nonliving/EggController.java | 14 +++++++++++++- .../entity/nonliving/EnderCrystalController.java | 14 +++++++++++++- .../entity/nonliving/EnderPearlController.java | 14 +++++++++++++- .../entity/nonliving/EnderSignalController.java | 14 +++++++++++++- .../entity/nonliving/EvokerFangsController.java | 14 +++++++++++++- .../nonliving/ExperienceOrbController.java | 14 +++++++++++++- .../entity/nonliving/FallingBlockController.java | 14 +++++++++++++- .../entity/nonliving/FireworkController.java | 14 +++++++++++++- .../entity/nonliving/FishingHookController.java | 14 +++++++++++++- .../entity/nonliving/ItemController.java | 14 +++++++++++++- .../entity/nonliving/ItemFrameController.java | 14 +++++++++++++- .../nonliving/LargeFireballController.java | 14 +++++++++++++- .../entity/nonliving/LeashController.java | 14 +++++++++++++- .../entity/nonliving/LlamaSpitController.java | 14 +++++++++++++- .../nonliving/MinecartChestController.java | 14 +++++++++++++- .../nonliving/MinecartCommandController.java | 14 +++++++++++++- .../nonliving/MinecartFurnaceController.java | 14 +++++++++++++- .../nonliving/MinecartHopperController.java | 14 +++++++++++++- .../nonliving/MinecartRideableController.java | 14 +++++++++++++- .../nonliving/MinecartSpawnerController.java | 14 +++++++++++++- .../entity/nonliving/MinecartTNTController.java | 14 +++++++++++++- .../entity/nonliving/PaintingController.java | 14 +++++++++++++- .../nonliving/ShulkerBulletController.java | 14 +++++++++++++- .../nonliving/SmallFireballController.java | 14 +++++++++++++- .../entity/nonliving/SnowballController.java | 14 +++++++++++++- .../nonliving/SpectralArrowController.java | 14 +++++++++++++- .../entity/nonliving/TNTPrimedController.java | 14 +++++++++++++- .../nonliving/ThrownExpBottleController.java | 14 +++++++++++++- .../entity/nonliving/ThrownPotionController.java | 14 +++++++++++++- .../nonliving/ThrownTridentController.java | 14 +++++++++++++- .../entity/nonliving/TippedArrowController.java | 14 +++++++++++++- .../entity/nonliving/WitherSkullController.java | 14 +++++++++++++- .../citizensnpcs/nms/v1_13_R2/util/NMSImpl.java | 16 ---------------- .../v1_14_R1/entity/ArmorStandController.java | 10 +++++++++- .../nms/v1_14_R1/entity/BatController.java | 13 ++++++++++--- .../nms/v1_14_R1/entity/BlazeController.java | 13 ++++++++++--- .../nms/v1_14_R1/entity/CatController.java | 12 +++++++++--- .../v1_14_R1/entity/CaveSpiderController.java | 12 +++++++++--- .../nms/v1_14_R1/entity/ChickenController.java | 12 +++++++++--- .../nms/v1_14_R1/entity/CodController.java | 12 +++++++++--- .../nms/v1_14_R1/entity/CowController.java | 12 +++++++++--- .../nms/v1_14_R1/entity/CreeperController.java | 12 +++++++++--- .../nms/v1_14_R1/entity/DolphinController.java | 12 +++++++++--- .../nms/v1_14_R1/entity/DrownedController.java | 12 +++++++++--- .../v1_14_R1/entity/EnderDragonController.java | 10 +++++++++- .../nms/v1_14_R1/entity/EndermanController.java | 12 +++++++++--- .../nms/v1_14_R1/entity/EndermiteController.java | 12 +++++++++--- .../nms/v1_14_R1/entity/EvokerController.java | 12 +++++++++--- .../nms/v1_14_R1/entity/FoxController.java | 12 +++++++++--- .../nms/v1_14_R1/entity/GhastController.java | 13 ++++++++++--- .../nms/v1_14_R1/entity/GiantController.java | 12 +++++++++--- .../nms/v1_14_R1/entity/GuardianController.java | 12 +++++++++--- .../v1_14_R1/entity/GuardianElderController.java | 12 +++++++++--- .../nms/v1_14_R1/entity/HorseController.java | 12 +++++++++--- .../v1_14_R1/entity/HorseDonkeyController.java | 10 +++++++++- .../nms/v1_14_R1/entity/HorseMuleController.java | 12 +++++++++--- .../v1_14_R1/entity/HorseSkeletonController.java | 12 +++++++++--- .../v1_14_R1/entity/HorseZombieController.java | 12 +++++++++--- .../v1_14_R1/entity/IllusionerController.java | 12 +++++++++--- .../nms/v1_14_R1/entity/IronGolemController.java | 12 +++++++++--- .../nms/v1_14_R1/entity/LlamaController.java | 10 +++++++++- .../nms/v1_14_R1/entity/MagmaCubeController.java | 12 +++++++++--- .../v1_14_R1/entity/MushroomCowController.java | 12 +++++++++--- .../nms/v1_14_R1/entity/OcelotController.java | 12 +++++++++--- .../nms/v1_14_R1/entity/PandaController.java | 12 +++++++++--- .../nms/v1_14_R1/entity/ParrotController.java | 13 ++++++++++--- .../nms/v1_14_R1/entity/PhantomController.java | 12 +++++++++--- .../nms/v1_14_R1/entity/PigController.java | 12 +++++++++--- .../nms/v1_14_R1/entity/PigZombieController.java | 12 +++++++++--- .../nms/v1_14_R1/entity/PillagerController.java | 12 +++++++++--- .../nms/v1_14_R1/entity/PolarBearController.java | 13 ++++++++++--- .../v1_14_R1/entity/PufferFishController.java | 12 +++++++++--- .../nms/v1_14_R1/entity/RabbitController.java | 12 +++++++++--- .../nms/v1_14_R1/entity/RavagerController.java | 12 +++++++++--- .../nms/v1_14_R1/entity/SalmonController.java | 12 +++++++++--- .../nms/v1_14_R1/entity/SheepController.java | 12 +++++++++--- .../nms/v1_14_R1/entity/ShulkerController.java | 12 +++++++++--- .../v1_14_R1/entity/SilverfishController.java | 12 +++++++++--- .../nms/v1_14_R1/entity/SkeletonController.java | 12 +++++++++--- .../v1_14_R1/entity/SkeletonStrayController.java | 12 +++++++++--- .../entity/SkeletonWitherController.java | 12 +++++++++--- .../nms/v1_14_R1/entity/SlimeController.java | 12 +++++++++--- .../nms/v1_14_R1/entity/SnowmanController.java | 12 +++++++++--- .../nms/v1_14_R1/entity/SpiderController.java | 12 +++++++++--- .../nms/v1_14_R1/entity/SquidController.java | 12 +++++++++--- .../v1_14_R1/entity/TraderLlamaController.java | 12 +++++++++--- .../v1_14_R1/entity/TropicalFishController.java | 12 +++++++++--- .../nms/v1_14_R1/entity/TurtleController.java | 12 +++++++++--- .../nms/v1_14_R1/entity/VexController.java | 13 ++++++++++--- .../nms/v1_14_R1/entity/VillagerController.java | 12 +++++++++--- .../v1_14_R1/entity/VindicatorController.java | 12 +++++++++--- .../entity/WanderingTraderController.java | 12 +++++++++--- .../nms/v1_14_R1/entity/WitchController.java | 12 +++++++++--- .../nms/v1_14_R1/entity/WitherController.java | 13 ++++++++++--- .../nms/v1_14_R1/entity/WolfController.java | 12 +++++++++--- .../nms/v1_14_R1/entity/ZombieController.java | 12 +++++++++--- .../v1_14_R1/entity/ZombieHuskController.java | 12 +++++++++--- .../entity/ZombieVillagerController.java | 12 +++++++++--- .../nonliving/AreaEffectCloudController.java | 11 ++++++++++- .../entity/nonliving/BoatController.java | 11 ++++++++++- .../nonliving/DragonFireballController.java | 11 ++++++++++- .../v1_14_R1/entity/nonliving/EggController.java | 11 ++++++++++- .../entity/nonliving/EnderCrystalController.java | 11 ++++++++++- .../entity/nonliving/EnderPearlController.java | 11 ++++++++++- .../entity/nonliving/EnderSignalController.java | 11 ++++++++++- .../entity/nonliving/EvokerFangsController.java | 10 +++++++++- .../nonliving/ExperienceOrbController.java | 11 ++++++++++- .../entity/nonliving/FallingBlockController.java | 10 +++++++++- .../entity/nonliving/FireworkController.java | 11 ++++++++++- .../entity/nonliving/FishingHookController.java | 11 ++++++++++- .../entity/nonliving/ItemController.java | 11 ++++++++++- .../entity/nonliving/ItemFrameController.java | 11 ++++++++++- .../nonliving/LargeFireballController.java | 11 ++++++++++- .../entity/nonliving/LeashController.java | 11 ++++++++++- .../entity/nonliving/LlamaSpitController.java | 11 ++++++++++- .../nonliving/MinecartChestController.java | 11 ++++++++++- .../nonliving/MinecartCommandController.java | 11 ++++++++++- .../nonliving/MinecartFurnaceController.java | 11 ++++++++++- .../nonliving/MinecartHopperController.java | 11 ++++++++++- .../nonliving/MinecartRideableController.java | 11 ++++++++++- .../nonliving/MinecartSpawnerController.java | 11 ++++++++++- .../entity/nonliving/MinecartTNTController.java | 11 ++++++++++- .../entity/nonliving/PaintingController.java | 11 ++++++++++- .../nonliving/ShulkerBulletController.java | 11 ++++++++++- .../nonliving/SmallFireballController.java | 11 ++++++++++- .../entity/nonliving/SnowballController.java | 11 ++++++++++- .../nonliving/SpectralArrowController.java | 11 ++++++++++- .../entity/nonliving/TNTPrimedController.java | 11 ++++++++++- .../nonliving/ThrownExpBottleController.java | 11 ++++++++++- .../entity/nonliving/ThrownPotionController.java | 11 ++++++++++- .../nonliving/ThrownTridentController.java | 11 ++++++++++- .../entity/nonliving/TippedArrowController.java | 11 ++++++++++- .../entity/nonliving/WitherSkullController.java | 11 ++++++++++- .../citizensnpcs/nms/v1_14_R1/util/NMSImpl.java | 12 ------------ .../v1_15_R1/entity/ArmorStandController.java | 10 +++++++++- .../nms/v1_15_R1/entity/BatController.java | 13 ++++++++++--- .../nms/v1_15_R1/entity/BeeController.java | 13 ++++++++++--- .../nms/v1_15_R1/entity/BlazeController.java | 13 ++++++++++--- .../nms/v1_15_R1/entity/CatController.java | 12 +++++++++--- .../v1_15_R1/entity/CaveSpiderController.java | 12 +++++++++--- .../nms/v1_15_R1/entity/ChickenController.java | 12 +++++++++--- .../nms/v1_15_R1/entity/CodController.java | 12 +++++++++--- .../nms/v1_15_R1/entity/CowController.java | 12 +++++++++--- .../nms/v1_15_R1/entity/CreeperController.java | 12 +++++++++--- .../nms/v1_15_R1/entity/DolphinController.java | 12 +++++++++--- .../nms/v1_15_R1/entity/DrownedController.java | 12 +++++++++--- .../v1_15_R1/entity/EnderDragonController.java | 10 +++++++++- .../nms/v1_15_R1/entity/EndermanController.java | 12 +++++++++--- .../nms/v1_15_R1/entity/EndermiteController.java | 12 +++++++++--- .../nms/v1_15_R1/entity/EvokerController.java | 12 +++++++++--- .../nms/v1_15_R1/entity/FoxController.java | 12 +++++++++--- .../nms/v1_15_R1/entity/GhastController.java | 13 ++++++++++--- .../nms/v1_15_R1/entity/GiantController.java | 12 +++++++++--- .../nms/v1_15_R1/entity/GuardianController.java | 12 +++++++++--- .../v1_15_R1/entity/GuardianElderController.java | 12 +++++++++--- .../nms/v1_15_R1/entity/HorseController.java | 12 +++++++++--- .../v1_15_R1/entity/HorseDonkeyController.java | 10 +++++++++- .../nms/v1_15_R1/entity/HorseMuleController.java | 12 +++++++++--- .../v1_15_R1/entity/HorseSkeletonController.java | 12 +++++++++--- .../v1_15_R1/entity/HorseZombieController.java | 12 +++++++++--- .../v1_15_R1/entity/IllusionerController.java | 12 +++++++++--- .../nms/v1_15_R1/entity/IronGolemController.java | 12 +++++++++--- .../nms/v1_15_R1/entity/LlamaController.java | 10 +++++++++- .../nms/v1_15_R1/entity/MagmaCubeController.java | 12 +++++++++--- .../v1_15_R1/entity/MushroomCowController.java | 12 +++++++++--- .../nms/v1_15_R1/entity/OcelotController.java | 12 +++++++++--- .../nms/v1_15_R1/entity/PandaController.java | 12 +++++++++--- .../nms/v1_15_R1/entity/ParrotController.java | 11 ++++++++++- .../nms/v1_15_R1/entity/PhantomController.java | 12 +++++++++--- .../nms/v1_15_R1/entity/PigController.java | 12 +++++++++--- .../nms/v1_15_R1/entity/PigZombieController.java | 12 +++++++++--- .../nms/v1_15_R1/entity/PillagerController.java | 12 +++++++++--- .../nms/v1_15_R1/entity/PolarBearController.java | 13 ++++++++++--- .../v1_15_R1/entity/PufferFishController.java | 12 +++++++++--- .../nms/v1_15_R1/entity/RabbitController.java | 12 +++++++++--- .../nms/v1_15_R1/entity/RavagerController.java | 12 +++++++++--- .../nms/v1_15_R1/entity/SalmonController.java | 12 +++++++++--- .../nms/v1_15_R1/entity/SheepController.java | 12 +++++++++--- .../nms/v1_15_R1/entity/ShulkerController.java | 12 +++++++++--- .../v1_15_R1/entity/SilverfishController.java | 12 +++++++++--- .../nms/v1_15_R1/entity/SkeletonController.java | 12 +++++++++--- .../v1_15_R1/entity/SkeletonStrayController.java | 12 +++++++++--- .../entity/SkeletonWitherController.java | 12 +++++++++--- .../nms/v1_15_R1/entity/SlimeController.java | 12 +++++++++--- .../nms/v1_15_R1/entity/SnowmanController.java | 12 +++++++++--- .../nms/v1_15_R1/entity/SpiderController.java | 12 +++++++++--- .../nms/v1_15_R1/entity/SquidController.java | 12 +++++++++--- .../v1_15_R1/entity/TraderLlamaController.java | 12 +++++++++--- .../v1_15_R1/entity/TropicalFishController.java | 12 +++++++++--- .../nms/v1_15_R1/entity/TurtleController.java | 12 +++++++++--- .../nms/v1_15_R1/entity/VexController.java | 13 ++++++++++--- .../nms/v1_15_R1/entity/VillagerController.java | 12 +++++++++--- .../v1_15_R1/entity/VindicatorController.java | 12 +++++++++--- .../entity/WanderingTraderController.java | 12 +++++++++--- .../nms/v1_15_R1/entity/WitchController.java | 12 +++++++++--- .../nms/v1_15_R1/entity/WitherController.java | 13 ++++++++++--- .../nms/v1_15_R1/entity/WolfController.java | 12 +++++++++--- .../nms/v1_15_R1/entity/ZombieController.java | 12 +++++++++--- .../v1_15_R1/entity/ZombieHuskController.java | 12 +++++++++--- .../entity/ZombieVillagerController.java | 12 +++++++++--- .../nonliving/AreaEffectCloudController.java | 11 ++++++++++- .../entity/nonliving/BoatController.java | 10 +++++++++- .../nonliving/DragonFireballController.java | 11 ++++++++++- .../v1_15_R1/entity/nonliving/EggController.java | 11 ++++++++++- .../entity/nonliving/EnderCrystalController.java | 11 ++++++++++- .../entity/nonliving/EnderPearlController.java | 11 ++++++++++- .../entity/nonliving/EnderSignalController.java | 11 ++++++++++- .../entity/nonliving/EvokerFangsController.java | 10 +++++++++- .../nonliving/ExperienceOrbController.java | 11 ++++++++++- .../entity/nonliving/FallingBlockController.java | 10 +++++++++- .../entity/nonliving/FireworkController.java | 11 ++++++++++- .../entity/nonliving/FishingHookController.java | 11 ++++++++++- .../entity/nonliving/ItemController.java | 11 ++++++++++- .../entity/nonliving/ItemFrameController.java | 11 ++++++++++- .../nonliving/LargeFireballController.java | 11 ++++++++++- .../entity/nonliving/LeashController.java | 11 ++++++++++- .../entity/nonliving/LlamaSpitController.java | 11 ++++++++++- .../nonliving/MinecartChestController.java | 11 ++++++++++- .../nonliving/MinecartCommandController.java | 11 ++++++++++- .../nonliving/MinecartFurnaceController.java | 11 ++++++++++- .../nonliving/MinecartHopperController.java | 11 ++++++++++- .../nonliving/MinecartRideableController.java | 11 ++++++++++- .../nonliving/MinecartSpawnerController.java | 11 ++++++++++- .../entity/nonliving/MinecartTNTController.java | 11 ++++++++++- .../entity/nonliving/PaintingController.java | 11 ++++++++++- .../nonliving/ShulkerBulletController.java | 11 ++++++++++- .../nonliving/SmallFireballController.java | 11 ++++++++++- .../entity/nonliving/SnowballController.java | 11 ++++++++++- .../nonliving/SpectralArrowController.java | 11 ++++++++++- .../entity/nonliving/TNTPrimedController.java | 11 ++++++++++- .../nonliving/ThrownExpBottleController.java | 11 ++++++++++- .../entity/nonliving/ThrownPotionController.java | 11 ++++++++++- .../nonliving/ThrownTridentController.java | 11 ++++++++++- .../entity/nonliving/TippedArrowController.java | 11 ++++++++++- .../entity/nonliving/WitherSkullController.java | 11 ++++++++++- .../citizensnpcs/nms/v1_15_R1/util/NMSImpl.java | 12 ------------ .../v1_16_R3/entity/ArmorStandController.java | 10 +++++++++- .../nms/v1_16_R3/entity/BatController.java | 13 ++++++++++--- .../nms/v1_16_R3/entity/BeeController.java | 13 ++++++++++--- .../nms/v1_16_R3/entity/BlazeController.java | 13 ++++++++++--- .../nms/v1_16_R3/entity/CatController.java | 12 +++++++++--- .../v1_16_R3/entity/CaveSpiderController.java | 12 +++++++++--- .../nms/v1_16_R3/entity/ChickenController.java | 12 +++++++++--- .../nms/v1_16_R3/entity/CodController.java | 14 ++++++++++---- .../nms/v1_16_R3/entity/CowController.java | 12 +++++++++--- .../nms/v1_16_R3/entity/CreeperController.java | 12 +++++++++--- .../nms/v1_16_R3/entity/DolphinController.java | 14 ++++++++++---- .../nms/v1_16_R3/entity/DrownedController.java | 12 +++++++++--- .../v1_16_R3/entity/EnderDragonController.java | 10 +++++++++- .../nms/v1_16_R3/entity/EndermanController.java | 12 +++++++++--- .../nms/v1_16_R3/entity/EndermiteController.java | 12 +++++++++--- .../nms/v1_16_R3/entity/EvokerController.java | 12 +++++++++--- .../nms/v1_16_R3/entity/FoxController.java | 12 +++++++++--- .../nms/v1_16_R3/entity/GhastController.java | 13 ++++++++++--- .../nms/v1_16_R3/entity/GiantController.java | 12 +++++++++--- .../nms/v1_16_R3/entity/GuardianController.java | 12 +++++++++--- .../v1_16_R3/entity/GuardianElderController.java | 12 +++++++++--- .../nms/v1_16_R3/entity/HoglinController.java | 12 +++++++++--- .../nms/v1_16_R3/entity/HorseController.java | 12 +++++++++--- .../v1_16_R3/entity/HorseDonkeyController.java | 10 +++++++++- .../nms/v1_16_R3/entity/HorseMuleController.java | 12 +++++++++--- .../v1_16_R3/entity/HorseSkeletonController.java | 12 +++++++++--- .../v1_16_R3/entity/HorseZombieController.java | 12 +++++++++--- .../v1_16_R3/entity/IllusionerController.java | 12 +++++++++--- .../nms/v1_16_R3/entity/IronGolemController.java | 12 +++++++++--- .../nms/v1_16_R3/entity/LlamaController.java | 10 +++++++++- .../nms/v1_16_R3/entity/MagmaCubeController.java | 14 ++++++++++---- .../v1_16_R3/entity/MushroomCowController.java | 12 +++++++++--- .../nms/v1_16_R3/entity/OcelotController.java | 12 +++++++++--- .../nms/v1_16_R3/entity/PandaController.java | 12 +++++++++--- .../nms/v1_16_R3/entity/ParrotController.java | 11 ++++++++++- .../nms/v1_16_R3/entity/PhantomController.java | 14 ++++++++++---- .../nms/v1_16_R3/entity/PigController.java | 12 +++++++++--- .../nms/v1_16_R3/entity/PigZombieController.java | 12 +++++++++--- .../v1_16_R3/entity/PiglinBruteController.java | 12 +++++++++--- .../nms/v1_16_R3/entity/PiglinController.java | 12 +++++++++--- .../nms/v1_16_R3/entity/PillagerController.java | 12 +++++++++--- .../nms/v1_16_R3/entity/PolarBearController.java | 13 ++++++++++--- .../v1_16_R3/entity/PufferFishController.java | 14 ++++++++++---- .../nms/v1_16_R3/entity/RabbitController.java | 12 +++++++++--- .../nms/v1_16_R3/entity/RavagerController.java | 12 +++++++++--- .../nms/v1_16_R3/entity/SalmonController.java | 14 ++++++++++---- .../nms/v1_16_R3/entity/SheepController.java | 12 +++++++++--- .../nms/v1_16_R3/entity/ShulkerController.java | 12 +++++++++--- .../v1_16_R3/entity/SilverfishController.java | 12 +++++++++--- .../nms/v1_16_R3/entity/SkeletonController.java | 12 +++++++++--- .../v1_16_R3/entity/SkeletonStrayController.java | 12 +++++++++--- .../entity/SkeletonWitherController.java | 12 +++++++++--- .../nms/v1_16_R3/entity/SlimeController.java | 14 ++++++++++---- .../nms/v1_16_R3/entity/SnowmanController.java | 12 +++++++++--- .../nms/v1_16_R3/entity/SpiderController.java | 12 +++++++++--- .../nms/v1_16_R3/entity/SquidController.java | 12 +++++++++--- .../nms/v1_16_R3/entity/StriderController.java | 12 +++++++++--- .../v1_16_R3/entity/TraderLlamaController.java | 12 +++++++++--- .../v1_16_R3/entity/TropicalFishController.java | 14 ++++++++++---- .../nms/v1_16_R3/entity/TurtleController.java | 14 ++++++++++---- .../nms/v1_16_R3/entity/VexController.java | 13 ++++++++++--- .../nms/v1_16_R3/entity/VillagerController.java | 12 +++++++++--- .../v1_16_R3/entity/VindicatorController.java | 12 +++++++++--- .../entity/WanderingTraderController.java | 12 +++++++++--- .../nms/v1_16_R3/entity/WitchController.java | 12 +++++++++--- .../nms/v1_16_R3/entity/WitherController.java | 13 ++++++++++--- .../nms/v1_16_R3/entity/WolfController.java | 12 +++++++++--- .../nms/v1_16_R3/entity/ZoglinController.java | 12 +++++++++--- .../nms/v1_16_R3/entity/ZombieController.java | 12 +++++++++--- .../v1_16_R3/entity/ZombieHuskController.java | 12 +++++++++--- .../entity/ZombieVillagerController.java | 12 +++++++++--- .../nonliving/AreaEffectCloudController.java | 11 ++++++++++- .../entity/nonliving/BoatController.java | 10 +++++++++- .../nonliving/DragonFireballController.java | 11 ++++++++++- .../v1_16_R3/entity/nonliving/EggController.java | 11 ++++++++++- .../entity/nonliving/EnderCrystalController.java | 11 ++++++++++- .../entity/nonliving/EnderPearlController.java | 11 ++++++++++- .../entity/nonliving/EnderSignalController.java | 11 ++++++++++- .../entity/nonliving/EvokerFangsController.java | 10 +++++++++- .../nonliving/ExperienceOrbController.java | 11 ++++++++++- .../entity/nonliving/FallingBlockController.java | 10 +++++++++- .../entity/nonliving/FireworkController.java | 11 ++++++++++- .../entity/nonliving/FishingHookController.java | 11 ++++++++++- .../entity/nonliving/ItemController.java | 11 ++++++++++- .../entity/nonliving/ItemFrameController.java | 11 ++++++++++- .../nonliving/LargeFireballController.java | 11 ++++++++++- .../entity/nonliving/LeashController.java | 11 ++++++++++- .../entity/nonliving/LlamaSpitController.java | 11 ++++++++++- .../nonliving/MinecartChestController.java | 11 ++++++++++- .../nonliving/MinecartCommandController.java | 11 ++++++++++- .../nonliving/MinecartFurnaceController.java | 11 ++++++++++- .../nonliving/MinecartHopperController.java | 11 ++++++++++- .../nonliving/MinecartRideableController.java | 11 ++++++++++- .../nonliving/MinecartSpawnerController.java | 11 ++++++++++- .../entity/nonliving/MinecartTNTController.java | 11 ++++++++++- .../entity/nonliving/PaintingController.java | 11 ++++++++++- .../nonliving/ShulkerBulletController.java | 11 ++++++++++- .../nonliving/SmallFireballController.java | 11 ++++++++++- .../entity/nonliving/SnowballController.java | 11 ++++++++++- .../nonliving/SpectralArrowController.java | 11 ++++++++++- .../entity/nonliving/TNTPrimedController.java | 11 ++++++++++- .../nonliving/ThrownExpBottleController.java | 11 ++++++++++- .../entity/nonliving/ThrownPotionController.java | 11 ++++++++++- .../nonliving/ThrownTridentController.java | 11 ++++++++++- .../entity/nonliving/TippedArrowController.java | 11 ++++++++++- .../entity/nonliving/WitherSkullController.java | 11 ++++++++++- .../citizensnpcs/nms/v1_16_R3/util/NMSImpl.java | 12 ------------ .../v1_17_R1/entity/ArmorStandController.java | 10 +++++++++- .../nms/v1_17_R1/entity/AxolotlController.java | 14 ++++++++++---- .../nms/v1_17_R1/entity/BatController.java | 13 ++++++++++--- .../nms/v1_17_R1/entity/BeeController.java | 13 ++++++++++--- .../nms/v1_17_R1/entity/BlazeController.java | 13 ++++++++++--- .../nms/v1_17_R1/entity/CatController.java | 12 +++++++++--- .../v1_17_R1/entity/CaveSpiderController.java | 12 +++++++++--- .../nms/v1_17_R1/entity/ChickenController.java | 12 +++++++++--- .../nms/v1_17_R1/entity/CodController.java | 14 ++++++++++---- .../nms/v1_17_R1/entity/CowController.java | 12 +++++++++--- .../nms/v1_17_R1/entity/CreeperController.java | 12 +++++++++--- .../nms/v1_17_R1/entity/DolphinController.java | 14 ++++++++++---- .../nms/v1_17_R1/entity/DrownedController.java | 12 +++++++++--- .../v1_17_R1/entity/EnderDragonController.java | 10 +++++++++- .../nms/v1_17_R1/entity/EndermanController.java | 12 +++++++++--- .../nms/v1_17_R1/entity/EndermiteController.java | 12 +++++++++--- .../nms/v1_17_R1/entity/EvokerController.java | 12 +++++++++--- .../nms/v1_17_R1/entity/FoxController.java | 12 +++++++++--- .../nms/v1_17_R1/entity/GhastController.java | 13 ++++++++++--- .../nms/v1_17_R1/entity/GiantController.java | 12 +++++++++--- .../nms/v1_17_R1/entity/GlowSquidController.java | 12 +++++++++--- .../nms/v1_17_R1/entity/GoatController.java | 12 +++++++++--- .../nms/v1_17_R1/entity/GuardianController.java | 12 +++++++++--- .../v1_17_R1/entity/GuardianElderController.java | 12 +++++++++--- .../nms/v1_17_R1/entity/HoglinController.java | 12 +++++++++--- .../nms/v1_17_R1/entity/HorseController.java | 12 +++++++++--- .../v1_17_R1/entity/HorseDonkeyController.java | 10 +++++++++- .../nms/v1_17_R1/entity/HorseMuleController.java | 12 +++++++++--- .../v1_17_R1/entity/HorseSkeletonController.java | 12 +++++++++--- .../v1_17_R1/entity/HorseZombieController.java | 12 +++++++++--- .../v1_17_R1/entity/IllusionerController.java | 12 +++++++++--- .../nms/v1_17_R1/entity/IronGolemController.java | 12 +++++++++--- .../nms/v1_17_R1/entity/LlamaController.java | 10 +++++++++- .../nms/v1_17_R1/entity/MagmaCubeController.java | 14 ++++++++++---- .../v1_17_R1/entity/MushroomCowController.java | 12 +++++++++--- .../nms/v1_17_R1/entity/OcelotController.java | 12 +++++++++--- .../nms/v1_17_R1/entity/PandaController.java | 12 +++++++++--- .../nms/v1_17_R1/entity/ParrotController.java | 11 ++++++++++- .../nms/v1_17_R1/entity/PhantomController.java | 14 ++++++++++---- .../nms/v1_17_R1/entity/PigController.java | 12 +++++++++--- .../nms/v1_17_R1/entity/PigZombieController.java | 12 +++++++++--- .../v1_17_R1/entity/PiglinBruteController.java | 12 +++++++++--- .../nms/v1_17_R1/entity/PiglinController.java | 12 +++++++++--- .../nms/v1_17_R1/entity/PillagerController.java | 12 +++++++++--- .../nms/v1_17_R1/entity/PolarBearController.java | 13 ++++++++++--- .../v1_17_R1/entity/PufferFishController.java | 14 ++++++++++---- .../nms/v1_17_R1/entity/RabbitController.java | 12 +++++++++--- .../nms/v1_17_R1/entity/RavagerController.java | 12 +++++++++--- .../nms/v1_17_R1/entity/SalmonController.java | 14 ++++++++++---- .../nms/v1_17_R1/entity/SheepController.java | 12 +++++++++--- .../nms/v1_17_R1/entity/ShulkerController.java | 12 +++++++++--- .../v1_17_R1/entity/SilverfishController.java | 13 +++++++++---- .../nms/v1_17_R1/entity/SkeletonController.java | 12 +++++++++--- .../v1_17_R1/entity/SkeletonStrayController.java | 12 +++++++++--- .../entity/SkeletonWitherController.java | 12 +++++++++--- .../nms/v1_17_R1/entity/SlimeController.java | 14 ++++++++++---- .../nms/v1_17_R1/entity/SnowmanController.java | 12 +++++++++--- .../nms/v1_17_R1/entity/SpiderController.java | 12 +++++++++--- .../nms/v1_17_R1/entity/SquidController.java | 12 +++++++++--- .../nms/v1_17_R1/entity/StriderController.java | 12 +++++++++--- .../v1_17_R1/entity/TraderLlamaController.java | 12 +++++++++--- .../v1_17_R1/entity/TropicalFishController.java | 14 ++++++++++---- .../nms/v1_17_R1/entity/TurtleController.java | 14 ++++++++++---- .../nms/v1_17_R1/entity/VexController.java | 13 ++++++++++--- .../nms/v1_17_R1/entity/VillagerController.java | 12 +++++++++--- .../v1_17_R1/entity/VindicatorController.java | 12 +++++++++--- .../entity/WanderingTraderController.java | 12 +++++++++--- .../nms/v1_17_R1/entity/WitchController.java | 12 +++++++++--- .../nms/v1_17_R1/entity/WitherController.java | 13 ++++++++++--- .../nms/v1_17_R1/entity/WolfController.java | 12 +++++++++--- .../nms/v1_17_R1/entity/ZoglinController.java | 12 +++++++++--- .../nms/v1_17_R1/entity/ZombieController.java | 12 +++++++++--- .../v1_17_R1/entity/ZombieHuskController.java | 12 +++++++++--- .../entity/ZombieVillagerController.java | 12 +++++++++--- .../nonliving/AreaEffectCloudController.java | 11 ++++++++++- .../entity/nonliving/BoatController.java | 10 +++++++++- .../nonliving/DragonFireballController.java | 11 ++++++++++- .../v1_17_R1/entity/nonliving/EggController.java | 11 ++++++++++- .../entity/nonliving/EnderCrystalController.java | 11 ++++++++++- .../entity/nonliving/EnderPearlController.java | 11 ++++++++++- .../entity/nonliving/EnderSignalController.java | 11 ++++++++++- .../entity/nonliving/EvokerFangsController.java | 10 +++++++++- .../nonliving/ExperienceOrbController.java | 11 ++++++++++- .../entity/nonliving/FallingBlockController.java | 10 +++++++++- .../entity/nonliving/FireworkController.java | 11 ++++++++++- .../entity/nonliving/FishingHookController.java | 11 ++++++++++- .../nonliving/GlowItemFrameController.java | 11 ++++++++++- .../entity/nonliving/ItemController.java | 11 ++++++++++- .../entity/nonliving/ItemFrameController.java | 11 ++++++++++- .../nonliving/LargeFireballController.java | 11 ++++++++++- .../entity/nonliving/LeashController.java | 11 ++++++++++- .../entity/nonliving/LlamaSpitController.java | 11 ++++++++++- .../entity/nonliving/MarkerController.java | 11 ++++++++++- .../nonliving/MinecartChestController.java | 11 ++++++++++- .../nonliving/MinecartCommandController.java | 11 ++++++++++- .../nonliving/MinecartFurnaceController.java | 11 ++++++++++- .../nonliving/MinecartHopperController.java | 11 ++++++++++- .../nonliving/MinecartRideableController.java | 11 ++++++++++- .../nonliving/MinecartSpawnerController.java | 11 ++++++++++- .../entity/nonliving/MinecartTNTController.java | 11 ++++++++++- .../entity/nonliving/PaintingController.java | 11 ++++++++++- .../nonliving/ShulkerBulletController.java | 11 ++++++++++- .../nonliving/SmallFireballController.java | 11 ++++++++++- .../entity/nonliving/SnowballController.java | 11 ++++++++++- .../nonliving/SpectralArrowController.java | 11 ++++++++++- .../entity/nonliving/TNTPrimedController.java | 11 ++++++++++- .../nonliving/ThrownExpBottleController.java | 11 ++++++++++- .../entity/nonliving/ThrownPotionController.java | 11 ++++++++++- .../nonliving/ThrownTridentController.java | 11 ++++++++++- .../entity/nonliving/TippedArrowController.java | 11 ++++++++++- .../entity/nonliving/WitherSkullController.java | 11 ++++++++++- .../citizensnpcs/nms/v1_17_R1/util/NMSImpl.java | 12 ------------ .../v1_18_R2/entity/ArmorStandController.java | 10 +++++++++- .../nms/v1_18_R2/entity/AxolotlController.java | 12 +++++++++--- .../nms/v1_18_R2/entity/BatController.java | 13 ++++++++++--- .../nms/v1_18_R2/entity/BeeController.java | 13 ++++++++++--- .../nms/v1_18_R2/entity/BlazeController.java | 13 ++++++++++--- .../nms/v1_18_R2/entity/CatController.java | 12 +++++++++--- .../v1_18_R2/entity/CaveSpiderController.java | 12 +++++++++--- .../nms/v1_18_R2/entity/ChickenController.java | 12 +++++++++--- .../nms/v1_18_R2/entity/CodController.java | 14 ++++++++++---- .../nms/v1_18_R2/entity/CowController.java | 12 +++++++++--- .../nms/v1_18_R2/entity/CreeperController.java | 12 +++++++++--- .../nms/v1_18_R2/entity/DolphinController.java | 12 +++++++++--- .../nms/v1_18_R2/entity/DrownedController.java | 12 +++++++++--- .../v1_18_R2/entity/EnderDragonController.java | 10 +++++++++- .../nms/v1_18_R2/entity/EndermanController.java | 12 +++++++++--- .../nms/v1_18_R2/entity/EndermiteController.java | 12 +++++++++--- .../nms/v1_18_R2/entity/EvokerController.java | 12 +++++++++--- .../nms/v1_18_R2/entity/FoxController.java | 12 +++++++++--- .../nms/v1_18_R2/entity/GhastController.java | 13 ++++++++++--- .../nms/v1_18_R2/entity/GiantController.java | 12 +++++++++--- .../nms/v1_18_R2/entity/GlowSquidController.java | 12 +++++++++--- .../nms/v1_18_R2/entity/GoatController.java | 12 +++++++++--- .../nms/v1_18_R2/entity/GuardianController.java | 12 +++++++++--- .../v1_18_R2/entity/GuardianElderController.java | 12 +++++++++--- .../nms/v1_18_R2/entity/HoglinController.java | 12 +++++++++--- .../nms/v1_18_R2/entity/HorseController.java | 12 +++++++++--- .../v1_18_R2/entity/HorseDonkeyController.java | 10 +++++++++- .../nms/v1_18_R2/entity/HorseMuleController.java | 12 +++++++++--- .../v1_18_R2/entity/HorseSkeletonController.java | 12 +++++++++--- .../v1_18_R2/entity/HorseZombieController.java | 12 +++++++++--- .../v1_18_R2/entity/IllusionerController.java | 12 +++++++++--- .../nms/v1_18_R2/entity/IronGolemController.java | 12 +++++++++--- .../nms/v1_18_R2/entity/LlamaController.java | 10 +++++++++- .../nms/v1_18_R2/entity/MagmaCubeController.java | 14 ++++++++++---- .../v1_18_R2/entity/MushroomCowController.java | 12 +++++++++--- .../nms/v1_18_R2/entity/OcelotController.java | 12 +++++++++--- .../nms/v1_18_R2/entity/PandaController.java | 12 +++++++++--- .../nms/v1_18_R2/entity/ParrotController.java | 11 ++++++++++- .../nms/v1_18_R2/entity/PhantomController.java | 14 ++++++++++---- .../nms/v1_18_R2/entity/PigController.java | 12 +++++++++--- .../nms/v1_18_R2/entity/PigZombieController.java | 12 +++++++++--- .../v1_18_R2/entity/PiglinBruteController.java | 12 +++++++++--- .../nms/v1_18_R2/entity/PiglinController.java | 12 +++++++++--- .../nms/v1_18_R2/entity/PillagerController.java | 12 +++++++++--- .../nms/v1_18_R2/entity/PolarBearController.java | 13 ++++++++++--- .../v1_18_R2/entity/PufferFishController.java | 14 ++++++++++---- .../nms/v1_18_R2/entity/RabbitController.java | 12 +++++++++--- .../nms/v1_18_R2/entity/RavagerController.java | 12 +++++++++--- .../nms/v1_18_R2/entity/SalmonController.java | 14 ++++++++++---- .../nms/v1_18_R2/entity/SheepController.java | 12 +++++++++--- .../nms/v1_18_R2/entity/ShulkerController.java | 12 +++++++++--- .../v1_18_R2/entity/SilverfishController.java | 13 +++++++++---- .../nms/v1_18_R2/entity/SkeletonController.java | 12 +++++++++--- .../v1_18_R2/entity/SkeletonStrayController.java | 12 +++++++++--- .../entity/SkeletonWitherController.java | 12 +++++++++--- .../nms/v1_18_R2/entity/SlimeController.java | 14 ++++++++++---- .../nms/v1_18_R2/entity/SnowmanController.java | 12 +++++++++--- .../nms/v1_18_R2/entity/SpiderController.java | 12 +++++++++--- .../nms/v1_18_R2/entity/SquidController.java | 12 +++++++++--- .../nms/v1_18_R2/entity/StriderController.java | 12 +++++++++--- .../v1_18_R2/entity/TraderLlamaController.java | 12 +++++++++--- .../v1_18_R2/entity/TropicalFishController.java | 14 ++++++++++---- .../nms/v1_18_R2/entity/TurtleController.java | 14 ++++++++++---- .../nms/v1_18_R2/entity/VexController.java | 13 ++++++++++--- .../nms/v1_18_R2/entity/VillagerController.java | 12 +++++++++--- .../v1_18_R2/entity/VindicatorController.java | 12 +++++++++--- .../entity/WanderingTraderController.java | 12 +++++++++--- .../nms/v1_18_R2/entity/WitchController.java | 12 +++++++++--- .../nms/v1_18_R2/entity/WitherController.java | 13 ++++++++++--- .../nms/v1_18_R2/entity/WolfController.java | 12 +++++++++--- .../nms/v1_18_R2/entity/ZoglinController.java | 12 +++++++++--- .../nms/v1_18_R2/entity/ZombieController.java | 12 +++++++++--- .../v1_18_R2/entity/ZombieHuskController.java | 12 +++++++++--- .../entity/ZombieVillagerController.java | 12 +++++++++--- .../nonliving/AreaEffectCloudController.java | 11 ++++++++++- .../entity/nonliving/BoatController.java | 10 +++++++++- .../nonliving/DragonFireballController.java | 11 ++++++++++- .../v1_18_R2/entity/nonliving/EggController.java | 11 ++++++++++- .../entity/nonliving/EnderCrystalController.java | 11 ++++++++++- .../entity/nonliving/EnderPearlController.java | 11 ++++++++++- .../entity/nonliving/EnderSignalController.java | 11 ++++++++++- .../entity/nonliving/EvokerFangsController.java | 10 +++++++++- .../nonliving/ExperienceOrbController.java | 11 ++++++++++- .../entity/nonliving/FallingBlockController.java | 10 +++++++++- .../entity/nonliving/FireworkController.java | 11 ++++++++++- .../entity/nonliving/FishingHookController.java | 11 ++++++++++- .../nonliving/GlowItemFrameController.java | 11 ++++++++++- .../entity/nonliving/ItemController.java | 11 ++++++++++- .../entity/nonliving/ItemFrameController.java | 11 ++++++++++- .../nonliving/LargeFireballController.java | 11 ++++++++++- .../entity/nonliving/LeashController.java | 11 ++++++++++- .../entity/nonliving/LlamaSpitController.java | 11 ++++++++++- .../entity/nonliving/MarkerController.java | 11 ++++++++++- .../nonliving/MinecartChestController.java | 11 ++++++++++- .../nonliving/MinecartCommandController.java | 11 ++++++++++- .../nonliving/MinecartFurnaceController.java | 11 ++++++++++- .../nonliving/MinecartHopperController.java | 11 ++++++++++- .../nonliving/MinecartRideableController.java | 11 ++++++++++- .../nonliving/MinecartSpawnerController.java | 11 ++++++++++- .../entity/nonliving/MinecartTNTController.java | 11 ++++++++++- .../entity/nonliving/PaintingController.java | 11 ++++++++++- .../nonliving/ShulkerBulletController.java | 11 ++++++++++- .../nonliving/SmallFireballController.java | 11 ++++++++++- .../entity/nonliving/SnowballController.java | 11 ++++++++++- .../nonliving/SpectralArrowController.java | 11 ++++++++++- .../entity/nonliving/TNTPrimedController.java | 11 ++++++++++- .../nonliving/ThrownExpBottleController.java | 11 ++++++++++- .../entity/nonliving/ThrownPotionController.java | 11 ++++++++++- .../nonliving/ThrownTridentController.java | 11 ++++++++++- .../entity/nonliving/TippedArrowController.java | 11 ++++++++++- .../entity/nonliving/WitherSkullController.java | 11 ++++++++++- .../citizensnpcs/nms/v1_18_R2/util/NMSImpl.java | 12 ------------ .../nms/v1_19_R3/entity/AllayController.java | 10 +++++++++- .../v1_19_R3/entity/ArmorStandController.java | 10 +++++++++- .../nms/v1_19_R3/entity/AxolotlController.java | 12 +++++++++--- .../nms/v1_19_R3/entity/BatController.java | 11 ++++++++++- .../nms/v1_19_R3/entity/BeeController.java | 13 ++++++++++--- .../nms/v1_19_R3/entity/BlazeController.java | 13 ++++++++++--- .../nms/v1_19_R3/entity/CamelController.java | 10 +++++++++- .../nms/v1_19_R3/entity/CatController.java | 12 +++++++++--- .../v1_19_R3/entity/CaveSpiderController.java | 12 +++++++++--- .../nms/v1_19_R3/entity/ChickenController.java | 12 +++++++++--- .../nms/v1_19_R3/entity/CodController.java | 14 ++++++++++---- .../nms/v1_19_R3/entity/CowController.java | 12 +++++++++--- .../nms/v1_19_R3/entity/CreeperController.java | 12 +++++++++--- .../nms/v1_19_R3/entity/DolphinController.java | 12 +++++++++--- .../nms/v1_19_R3/entity/DrownedController.java | 12 +++++++++--- .../v1_19_R3/entity/EnderDragonController.java | 10 +++++++++- .../nms/v1_19_R3/entity/EndermanController.java | 12 +++++++++--- .../nms/v1_19_R3/entity/EndermiteController.java | 12 +++++++++--- .../nms/v1_19_R3/entity/EvokerController.java | 12 +++++++++--- .../nms/v1_19_R3/entity/FoxController.java | 12 +++++++++--- .../nms/v1_19_R3/entity/FrogController.java | 12 +++++++++--- .../nms/v1_19_R3/entity/GhastController.java | 13 ++++++++++--- .../nms/v1_19_R3/entity/GiantController.java | 12 +++++++++--- .../nms/v1_19_R3/entity/GlowSquidController.java | 12 +++++++++--- .../nms/v1_19_R3/entity/GoatController.java | 12 +++++++++--- .../nms/v1_19_R3/entity/GuardianController.java | 12 +++++++++--- .../v1_19_R3/entity/GuardianElderController.java | 12 +++++++++--- .../nms/v1_19_R3/entity/HoglinController.java | 10 +++++++++- .../nms/v1_19_R3/entity/HorseController.java | 12 +++++++++--- .../v1_19_R3/entity/HorseDonkeyController.java | 10 +++++++++- .../nms/v1_19_R3/entity/HorseMuleController.java | 12 +++++++++--- .../v1_19_R3/entity/HorseSkeletonController.java | 12 +++++++++--- .../v1_19_R3/entity/HorseZombieController.java | 12 +++++++++--- .../v1_19_R3/entity/IllusionerController.java | 12 +++++++++--- .../nms/v1_19_R3/entity/IronGolemController.java | 12 +++++++++--- .../nms/v1_19_R3/entity/LlamaController.java | 10 +++++++++- .../nms/v1_19_R3/entity/MagmaCubeController.java | 14 ++++++++++---- .../v1_19_R3/entity/MushroomCowController.java | 12 +++++++++--- .../nms/v1_19_R3/entity/OcelotController.java | 12 +++++++++--- .../nms/v1_19_R3/entity/PandaController.java | 12 +++++++++--- .../nms/v1_19_R3/entity/ParrotController.java | 11 ++++++++++- .../nms/v1_19_R3/entity/PhantomController.java | 14 ++++++++++---- .../nms/v1_19_R3/entity/PigController.java | 12 +++++++++--- .../nms/v1_19_R3/entity/PigZombieController.java | 12 +++++++++--- .../v1_19_R3/entity/PiglinBruteController.java | 12 +++++++++--- .../nms/v1_19_R3/entity/PiglinController.java | 12 +++++++++--- .../nms/v1_19_R3/entity/PillagerController.java | 12 +++++++++--- .../nms/v1_19_R3/entity/PolarBearController.java | 13 ++++++++++--- .../v1_19_R3/entity/PufferFishController.java | 14 ++++++++++---- .../nms/v1_19_R3/entity/RabbitController.java | 12 +++++++++--- .../nms/v1_19_R3/entity/RavagerController.java | 12 +++++++++--- .../nms/v1_19_R3/entity/SalmonController.java | 14 ++++++++++---- .../nms/v1_19_R3/entity/SheepController.java | 12 +++++++++--- .../nms/v1_19_R3/entity/ShulkerController.java | 12 +++++++++--- .../v1_19_R3/entity/SilverfishController.java | 13 +++++++++---- .../nms/v1_19_R3/entity/SkeletonController.java | 12 +++++++++--- .../v1_19_R3/entity/SkeletonStrayController.java | 12 +++++++++--- .../entity/SkeletonWitherController.java | 12 +++++++++--- .../nms/v1_19_R3/entity/SlimeController.java | 14 ++++++++++---- .../nms/v1_19_R3/entity/SnifferController.java | 10 +++++++++- .../nms/v1_19_R3/entity/SnowmanController.java | 12 +++++++++--- .../nms/v1_19_R3/entity/SpiderController.java | 12 +++++++++--- .../nms/v1_19_R3/entity/SquidController.java | 12 +++++++++--- .../nms/v1_19_R3/entity/StriderController.java | 12 +++++++++--- .../nms/v1_19_R3/entity/TadpoleController.java | 14 ++++++++++---- .../v1_19_R3/entity/TraderLlamaController.java | 12 +++++++++--- .../v1_19_R3/entity/TropicalFishController.java | 14 ++++++++++---- .../nms/v1_19_R3/entity/TurtleController.java | 14 ++++++++++---- .../nms/v1_19_R3/entity/VexController.java | 13 ++++++++++--- .../nms/v1_19_R3/entity/VillagerController.java | 10 +++++++++- .../v1_19_R3/entity/VindicatorController.java | 12 +++++++++--- .../entity/WanderingTraderController.java | 12 +++++++++--- .../nms/v1_19_R3/entity/WardenController.java | 10 +++++++++- .../nms/v1_19_R3/entity/WitchController.java | 12 +++++++++--- .../nms/v1_19_R3/entity/WitherController.java | 13 ++++++++++--- .../nms/v1_19_R3/entity/WolfController.java | 12 +++++++++--- .../nms/v1_19_R3/entity/ZoglinController.java | 12 +++++++++--- .../nms/v1_19_R3/entity/ZombieController.java | 12 +++++++++--- .../v1_19_R3/entity/ZombieHuskController.java | 12 +++++++++--- .../entity/ZombieVillagerController.java | 12 +++++++++--- .../nonliving/AreaEffectCloudController.java | 11 ++++++++++- .../entity/nonliving/BlockDisplayController.java | 11 ++++++++++- .../entity/nonliving/BoatController.java | 10 +++++++++- .../entity/nonliving/ChestBoatController.java | 10 +++++++++- .../nonliving/DragonFireballController.java | 11 ++++++++++- .../v1_19_R3/entity/nonliving/EggController.java | 11 ++++++++++- .../entity/nonliving/EnderCrystalController.java | 11 ++++++++++- .../entity/nonliving/EnderPearlController.java | 11 ++++++++++- .../entity/nonliving/EnderSignalController.java | 11 ++++++++++- .../entity/nonliving/EvokerFangsController.java | 10 +++++++++- .../nonliving/ExperienceOrbController.java | 11 ++++++++++- .../entity/nonliving/FallingBlockController.java | 10 +++++++++- .../entity/nonliving/FireworkController.java | 11 ++++++++++- .../entity/nonliving/FishingHookController.java | 11 ++++++++++- .../nonliving/GlowItemFrameController.java | 11 ++++++++++- .../entity/nonliving/InteractionController.java | 11 ++++++++++- .../entity/nonliving/ItemController.java | 11 ++++++++++- .../entity/nonliving/ItemDisplayController.java | 11 ++++++++++- .../entity/nonliving/ItemFrameController.java | 11 ++++++++++- .../nonliving/LargeFireballController.java | 11 ++++++++++- .../entity/nonliving/LeashController.java | 11 ++++++++++- .../entity/nonliving/LlamaSpitController.java | 11 ++++++++++- .../entity/nonliving/MarkerController.java | 11 ++++++++++- .../nonliving/MinecartChestController.java | 11 ++++++++++- .../nonliving/MinecartCommandController.java | 11 ++++++++++- .../nonliving/MinecartFurnaceController.java | 11 ++++++++++- .../nonliving/MinecartHopperController.java | 11 ++++++++++- .../nonliving/MinecartRideableController.java | 11 ++++++++++- .../nonliving/MinecartSpawnerController.java | 11 ++++++++++- .../entity/nonliving/MinecartTNTController.java | 11 ++++++++++- .../entity/nonliving/PaintingController.java | 11 ++++++++++- .../nonliving/ShulkerBulletController.java | 11 ++++++++++- .../nonliving/SmallFireballController.java | 11 ++++++++++- .../entity/nonliving/SnowballController.java | 11 ++++++++++- .../nonliving/SpectralArrowController.java | 11 ++++++++++- .../entity/nonliving/TNTPrimedController.java | 11 ++++++++++- .../entity/nonliving/TextDisplayController.java | 11 ++++++++++- .../nonliving/ThrownExpBottleController.java | 11 ++++++++++- .../entity/nonliving/ThrownPotionController.java | 11 ++++++++++- .../nonliving/ThrownTridentController.java | 11 ++++++++++- .../entity/nonliving/TippedArrowController.java | 11 ++++++++++- .../entity/nonliving/WitherSkullController.java | 11 ++++++++++- .../citizensnpcs/nms/v1_19_R3/util/NMSImpl.java | 13 +------------ .../nms/v1_20_R1/entity/AllayController.java | 10 +++++++++- .../v1_20_R1/entity/ArmorStandController.java | 12 ++++++++++-- .../nms/v1_20_R1/entity/AxolotlController.java | 12 +++++++++--- .../nms/v1_20_R1/entity/BatController.java | 11 ++++++++++- .../nms/v1_20_R1/entity/BeeController.java | 13 ++++++++++--- .../nms/v1_20_R1/entity/BlazeController.java | 13 ++++++++++--- .../nms/v1_20_R1/entity/CamelController.java | 10 +++++++++- .../nms/v1_20_R1/entity/CatController.java | 12 +++++++++--- .../v1_20_R1/entity/CaveSpiderController.java | 12 +++++++++--- .../nms/v1_20_R1/entity/ChickenController.java | 12 +++++++++--- .../nms/v1_20_R1/entity/CodController.java | 12 +++++++++--- .../nms/v1_20_R1/entity/CowController.java | 12 +++++++++--- .../nms/v1_20_R1/entity/CreeperController.java | 12 +++++++++--- .../nms/v1_20_R1/entity/DolphinController.java | 12 +++++++++--- .../nms/v1_20_R1/entity/DrownedController.java | 12 +++++++++--- .../v1_20_R1/entity/EnderDragonController.java | 10 +++++++++- .../nms/v1_20_R1/entity/EndermanController.java | 12 +++++++++--- .../nms/v1_20_R1/entity/EndermiteController.java | 12 +++++++++--- .../nms/v1_20_R1/entity/EvokerController.java | 12 +++++++++--- .../nms/v1_20_R1/entity/FoxController.java | 12 +++++++++--- .../nms/v1_20_R1/entity/FrogController.java | 12 +++++++++--- .../nms/v1_20_R1/entity/GhastController.java | 13 ++++++++++--- .../nms/v1_20_R1/entity/GiantController.java | 12 +++++++++--- .../nms/v1_20_R1/entity/GlowSquidController.java | 12 +++++++++--- .../nms/v1_20_R1/entity/GoatController.java | 12 +++++++++--- .../nms/v1_20_R1/entity/GuardianController.java | 12 +++++++++--- .../v1_20_R1/entity/GuardianElderController.java | 12 +++++++++--- .../nms/v1_20_R1/entity/HoglinController.java | 10 +++++++++- .../nms/v1_20_R1/entity/HorseController.java | 12 +++++++++--- .../v1_20_R1/entity/HorseDonkeyController.java | 12 +++++++++--- .../nms/v1_20_R1/entity/HorseMuleController.java | 10 +++++++++- .../v1_20_R1/entity/HorseSkeletonController.java | 10 +++++++++- .../v1_20_R1/entity/HorseZombieController.java | 12 +++++++++--- .../v1_20_R1/entity/IllusionerController.java | 12 +++++++++--- .../nms/v1_20_R1/entity/IronGolemController.java | 12 +++++++++--- .../nms/v1_20_R1/entity/LlamaController.java | 10 +++++++++- .../nms/v1_20_R1/entity/MagmaCubeController.java | 12 +++++++++--- .../v1_20_R1/entity/MushroomCowController.java | 12 +++++++++--- .../nms/v1_20_R1/entity/OcelotController.java | 12 +++++++++--- .../nms/v1_20_R1/entity/PandaController.java | 12 +++++++++--- .../nms/v1_20_R1/entity/ParrotController.java | 11 ++++++++++- .../nms/v1_20_R1/entity/PhantomController.java | 12 +++++++++--- .../nms/v1_20_R1/entity/PigController.java | 12 +++++++++--- .../nms/v1_20_R1/entity/PigZombieController.java | 12 +++++++++--- .../v1_20_R1/entity/PiglinBruteController.java | 12 +++++++++--- .../nms/v1_20_R1/entity/PiglinController.java | 12 +++++++++--- .../nms/v1_20_R1/entity/PillagerController.java | 12 +++++++++--- .../nms/v1_20_R1/entity/PolarBearController.java | 13 ++++++++++--- .../v1_20_R1/entity/PufferFishController.java | 12 +++++++++--- .../nms/v1_20_R1/entity/RabbitController.java | 12 +++++++++--- .../nms/v1_20_R1/entity/RavagerController.java | 12 +++++++++--- .../nms/v1_20_R1/entity/SalmonController.java | 12 +++++++++--- .../nms/v1_20_R1/entity/SheepController.java | 12 +++++++++--- .../nms/v1_20_R1/entity/ShulkerController.java | 12 +++++++++--- .../v1_20_R1/entity/SilverfishController.java | 13 +++++++++---- .../nms/v1_20_R1/entity/SkeletonController.java | 12 +++++++++--- .../v1_20_R1/entity/SkeletonStrayController.java | 12 +++++++++--- .../entity/SkeletonWitherController.java | 12 +++++++++--- .../nms/v1_20_R1/entity/SlimeController.java | 12 +++++++++--- .../nms/v1_20_R1/entity/SnifferController.java | 10 +++++++++- .../nms/v1_20_R1/entity/SnowmanController.java | 12 +++++++++--- .../nms/v1_20_R1/entity/SpiderController.java | 12 +++++++++--- .../nms/v1_20_R1/entity/SquidController.java | 12 +++++++++--- .../nms/v1_20_R1/entity/StriderController.java | 12 +++++++++--- .../nms/v1_20_R1/entity/TadpoleController.java | 12 +++++++++--- .../v1_20_R1/entity/TraderLlamaController.java | 12 +++++++++--- .../v1_20_R1/entity/TropicalFishController.java | 12 +++++++++--- .../nms/v1_20_R1/entity/TurtleController.java | 12 +++++++++--- .../nms/v1_20_R1/entity/VexController.java | 13 ++++++++++--- .../nms/v1_20_R1/entity/VillagerController.java | 10 +++++++++- .../v1_20_R1/entity/VindicatorController.java | 12 +++++++++--- .../entity/WanderingTraderController.java | 12 +++++++++--- .../nms/v1_20_R1/entity/WardenController.java | 10 +++++++++- .../nms/v1_20_R1/entity/WitchController.java | 12 +++++++++--- .../nms/v1_20_R1/entity/WitherController.java | 13 ++++++++++--- .../nms/v1_20_R1/entity/WolfController.java | 12 +++++++++--- .../nms/v1_20_R1/entity/ZoglinController.java | 12 +++++++++--- .../nms/v1_20_R1/entity/ZombieController.java | 12 +++++++++--- .../v1_20_R1/entity/ZombieHuskController.java | 12 +++++++++--- .../entity/ZombieVillagerController.java | 12 +++++++++--- .../nonliving/AreaEffectCloudController.java | 11 ++++++++++- .../entity/nonliving/BlockDisplayController.java | 11 ++++++++++- .../entity/nonliving/BoatController.java | 10 +++++++++- .../entity/nonliving/ChestBoatController.java | 10 +++++++++- .../nonliving/DragonFireballController.java | 11 ++++++++++- .../v1_20_R1/entity/nonliving/EggController.java | 11 ++++++++++- .../entity/nonliving/EnderCrystalController.java | 11 ++++++++++- .../entity/nonliving/EnderPearlController.java | 11 ++++++++++- .../entity/nonliving/EnderSignalController.java | 11 ++++++++++- .../entity/nonliving/EvokerFangsController.java | 10 +++++++++- .../nonliving/ExperienceOrbController.java | 11 ++++++++++- .../entity/nonliving/FallingBlockController.java | 10 +++++++++- .../entity/nonliving/FireworkController.java | 11 ++++++++++- .../entity/nonliving/FishingHookController.java | 11 ++++++++++- .../nonliving/GlowItemFrameController.java | 11 ++++++++++- .../entity/nonliving/InteractionController.java | 11 ++++++++++- .../entity/nonliving/ItemController.java | 11 ++++++++++- .../entity/nonliving/ItemDisplayController.java | 11 ++++++++++- .../entity/nonliving/ItemFrameController.java | 11 ++++++++++- .../nonliving/LargeFireballController.java | 11 ++++++++++- .../entity/nonliving/LeashController.java | 11 ++++++++++- .../entity/nonliving/LlamaSpitController.java | 11 ++++++++++- .../entity/nonliving/MarkerController.java | 11 ++++++++++- .../nonliving/MinecartChestController.java | 11 ++++++++++- .../nonliving/MinecartCommandController.java | 11 ++++++++++- .../nonliving/MinecartFurnaceController.java | 11 ++++++++++- .../nonliving/MinecartHopperController.java | 11 ++++++++++- .../nonliving/MinecartRideableController.java | 11 ++++++++++- .../nonliving/MinecartSpawnerController.java | 11 ++++++++++- .../entity/nonliving/MinecartTNTController.java | 11 ++++++++++- .../entity/nonliving/PaintingController.java | 11 ++++++++++- .../nonliving/ShulkerBulletController.java | 11 ++++++++++- .../nonliving/SmallFireballController.java | 11 ++++++++++- .../entity/nonliving/SnowballController.java | 11 ++++++++++- .../nonliving/SpectralArrowController.java | 11 ++++++++++- .../entity/nonliving/TNTPrimedController.java | 11 ++++++++++- .../entity/nonliving/TextDisplayController.java | 11 ++++++++++- .../nonliving/ThrownExpBottleController.java | 11 ++++++++++- .../entity/nonliving/ThrownPotionController.java | 11 ++++++++++- .../nonliving/ThrownTridentController.java | 11 ++++++++++- .../entity/nonliving/TippedArrowController.java | 11 ++++++++++- .../entity/nonliving/WitherSkullController.java | 11 ++++++++++- .../citizensnpcs/nms/v1_20_R1/util/NMSImpl.java | 12 ------------ 874 files changed, 8500 insertions(+), 2037 deletions(-) diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/ArmorStandController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/ArmorStandController.java index 629435fdd..9bf86a9ae 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/ArmorStandController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/ArmorStandController.java @@ -80,7 +80,19 @@ public class ArmorStandController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 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 1e2259042..604d4b8a8 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 @@ -78,7 +78,19 @@ public class BatController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -116,8 +128,6 @@ public class BatController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/BlazeController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/BlazeController.java index 1910d16e4..a0db311e6 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 @@ -75,7 +75,19 @@ public class BlazeController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -113,8 +125,6 @@ public class BlazeController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/CaveSpiderController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/CaveSpiderController.java index 8f99da69b..4a1fe478b 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 @@ -93,7 +93,19 @@ public class CaveSpiderController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -138,8 +150,6 @@ public class CaveSpiderController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/ChickenController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/ChickenController.java index b6987229b..24dfa5d38 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 @@ -104,7 +104,19 @@ public class ChickenController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -149,8 +161,6 @@ public class ChickenController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/CodController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/CodController.java index e988e63fd..039d15032 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 @@ -114,7 +114,19 @@ public class CodController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -158,8 +170,6 @@ public class CodController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/CowController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/CowController.java index 5f9ceddfb..1a09a0a44 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 @@ -117,7 +117,19 @@ public class CowController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -162,8 +174,6 @@ public class CowController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/CreeperController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/CreeperController.java index a5b7bd65f..622c91527 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 @@ -96,7 +96,19 @@ public class CreeperController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -147,8 +159,6 @@ public class CreeperController extends MobEntityController { } } - - @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/DolphinController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/DolphinController.java index 139e3b6a0..0a391bd5f 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 @@ -108,7 +108,19 @@ public class DolphinController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -152,8 +164,6 @@ public class DolphinController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/DrownedController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/DrownedController.java index c52cb3759..d46aa360e 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 @@ -93,7 +93,19 @@ public class DrownedController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -137,8 +149,6 @@ public class DrownedController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/EnderDragonController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/EnderDragonController.java index 148e1cff7..8566492eb 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 @@ -82,7 +82,19 @@ public class EnderDragonController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 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 448d40fc4..0ed338e92 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 @@ -93,7 +93,19 @@ public class EndermanController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -137,8 +149,6 @@ public class EndermanController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/EndermiteController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/EndermiteController.java index 8d4d9ab67..a7f744b44 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 @@ -93,7 +93,19 @@ public class EndermiteController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -137,8 +149,6 @@ public class EndermiteController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/EvokerController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/EvokerController.java index 1c46e7b20..3cdf59b3f 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 @@ -79,7 +79,19 @@ public class EvokerController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -124,8 +136,6 @@ public class EvokerController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/GhastController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/GhastController.java index e4a5afcf1..c6821efda 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 @@ -61,7 +61,19 @@ public class GhastController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -99,8 +111,6 @@ public class GhastController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/GiantController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/GiantController.java index 91454a0f3..04068e04c 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 @@ -79,7 +79,19 @@ public class GiantController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -123,8 +135,6 @@ public class GiantController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/GuardianController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/GuardianController.java index 77ca53a66..cbcdd12c0 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 @@ -81,7 +81,19 @@ public class GuardianController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -126,8 +138,6 @@ public class GuardianController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/GuardianElderController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/GuardianElderController.java index 9647ffc8c..67dbb7c9f 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 @@ -81,7 +81,19 @@ public class GuardianElderController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -126,8 +138,6 @@ public class GuardianElderController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/HorseController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/HorseController.java index 637bf2a38..30c0b346a 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 @@ -105,7 +105,19 @@ public class HorseController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -158,8 +170,6 @@ public class HorseController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/HorseDonkeyController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/HorseDonkeyController.java index bbd1cb2b4..c97980646 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 @@ -105,7 +105,19 @@ public class HorseDonkeyController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -158,8 +170,6 @@ public class HorseDonkeyController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/HorseMuleController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/HorseMuleController.java index e9bd7f3e2..3dbe5feaf 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 @@ -105,7 +105,19 @@ public class HorseMuleController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -158,8 +170,6 @@ public class HorseMuleController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/HorseSkeletonController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/HorseSkeletonController.java index 13b8bfbf7..6039b8b6f 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 @@ -105,7 +105,19 @@ public class HorseSkeletonController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 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 4b710992d..19f6c8449 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 @@ -106,7 +106,19 @@ public class HorseZombieController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -159,8 +171,6 @@ public class HorseZombieController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/IllusionerController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/IllusionerController.java index 6a7f69ecf..4b628f7e5 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 @@ -79,7 +79,19 @@ public class IllusionerController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -124,8 +136,6 @@ public class IllusionerController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/IronGolemController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/IronGolemController.java index 9ddb2aa32..edbc3e694 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 @@ -79,7 +79,19 @@ public class IronGolemController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -123,8 +135,6 @@ public class IronGolemController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/LlamaController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/LlamaController.java index d5658d632..bc1e49cd9 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 @@ -104,7 +104,19 @@ public class LlamaController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 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 40d6e8b03..090c996f6 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 @@ -85,7 +85,19 @@ public class MagmaCubeController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -136,8 +148,6 @@ public class MagmaCubeController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/MushroomCowController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/MushroomCowController.java index 543ef0fea..44e901d38 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 @@ -97,7 +97,19 @@ public class MushroomCowController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -141,8 +153,6 @@ public class MushroomCowController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/OcelotController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/OcelotController.java index 1a20ed8ce..130f208f7 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 @@ -88,7 +88,19 @@ public class OcelotController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -140,8 +152,6 @@ public class OcelotController extends MobEntityController { } } - - @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/ParrotController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/ParrotController.java index 1559b226d..79580184d 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 @@ -72,7 +72,19 @@ public class ParrotController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -110,8 +122,6 @@ public class ParrotController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/PhantomController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/PhantomController.java index 8d13995ee..89530aa86 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 @@ -90,7 +90,19 @@ public class PhantomController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -141,8 +153,6 @@ public class PhantomController extends MobEntityController { return 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/PigController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/PigController.java index d9808affb..047c6e4bc 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 @@ -89,7 +89,19 @@ public class PigController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -140,8 +152,6 @@ public class PigController extends MobEntityController { return npc == null ? super.dh() : 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/PigZombieController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/PigZombieController.java index 8d2babfc3..307d340d5 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 @@ -79,7 +79,19 @@ public class PigZombieController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -123,8 +135,6 @@ public class PigZombieController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/PolarBearController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/PolarBearController.java index f2dafa44d..7cf2da936 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 @@ -70,7 +70,19 @@ public class PolarBearController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -108,8 +120,6 @@ public class PolarBearController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/PufferFishController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/PufferFishController.java index b98f91423..78d1e68d1 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 @@ -101,7 +101,19 @@ public class PufferFishController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -146,8 +158,6 @@ public class PufferFishController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/RabbitController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/RabbitController.java index 9e2025f7c..24cef42ea 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 @@ -89,7 +89,19 @@ public class RabbitController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -134,8 +146,6 @@ public class RabbitController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/SalmonController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SalmonController.java index 9491578f2..ddbd3db29 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 @@ -100,7 +100,19 @@ public class SalmonController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -144,8 +156,6 @@ public class SalmonController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/SheepController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SheepController.java index fb21a279e..1d9e7b524 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 @@ -88,7 +88,19 @@ public class SheepController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -132,8 +144,6 @@ public class SheepController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/ShulkerController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/ShulkerController.java index b74a8166c..313e835c4 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 @@ -82,7 +82,19 @@ public class ShulkerController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -126,8 +138,6 @@ public class ShulkerController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/SilverfishController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SilverfishController.java index b3f13b484..7e0e6f09c 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 @@ -79,7 +79,19 @@ public class SilverfishController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -123,8 +135,6 @@ public class SilverfishController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/SkeletonController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SkeletonController.java index 02e4c62a2..336a81ced 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 @@ -79,7 +79,19 @@ public class SkeletonController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -123,8 +135,6 @@ public class SkeletonController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/SkeletonStrayController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SkeletonStrayController.java index 036d125e5..6a24ced4f 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 @@ -79,7 +79,19 @@ public class SkeletonStrayController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -123,8 +135,6 @@ public class SkeletonStrayController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/SkeletonWitherController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SkeletonWitherController.java index 12d64eba2..3cda79334 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 @@ -79,7 +79,19 @@ public class SkeletonWitherController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -123,8 +135,6 @@ public class SkeletonWitherController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/SlimeController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SlimeController.java index 3f849e390..b11d6108a 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 @@ -85,7 +85,19 @@ public class SlimeController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -137,8 +149,6 @@ public class SlimeController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/SnowmanController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SnowmanController.java index ad2f5d93f..b6a3739ea 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 @@ -79,7 +79,19 @@ public class SnowmanController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -123,8 +135,6 @@ public class SnowmanController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/SpiderController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SpiderController.java index bad6f6a2f..15baeb9e6 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 @@ -79,7 +79,19 @@ public class SpiderController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -123,8 +135,6 @@ public class SpiderController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/SquidController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SquidController.java index 6268e38e7..184caae57 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 @@ -79,7 +79,19 @@ public class SquidController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -123,8 +135,6 @@ public class SquidController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/TropicalFishController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/TropicalFishController.java index 86d49f404..ec7dafb8a 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 @@ -100,7 +100,19 @@ public class TropicalFishController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -144,8 +156,6 @@ public class TropicalFishController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/TurtleController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/TurtleController.java index 07a4ddd5c..b7e13c65a 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 @@ -88,7 +88,19 @@ public class TurtleController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -132,8 +144,6 @@ public class TurtleController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/VexController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/VexController.java index 94d6046d5..bbe638a16 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 @@ -64,7 +64,19 @@ public class VexController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -102,8 +114,6 @@ public class VexController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/VillagerController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/VillagerController.java index c8132498e..0214e61f1 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 @@ -108,7 +108,19 @@ public class VillagerController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -162,8 +174,6 @@ public class VillagerController extends MobEntityController { return super.dB(); } - - @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/VindicatorController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/VindicatorController.java index 1f4077bb0..75124cf1f 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 @@ -88,7 +88,19 @@ public class VindicatorController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -133,8 +145,6 @@ public class VindicatorController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/WitchController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/WitchController.java index b3b357a0d..df5e3c94d 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 @@ -79,7 +79,19 @@ public class WitchController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -123,8 +135,6 @@ public class WitchController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/WitherController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/WitherController.java index 342ca88ed..6507c4f22 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 @@ -61,7 +61,19 @@ public class WitherController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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,8 +116,6 @@ public class WitherController extends MobEntityController { : npc.data().get("wither-arrow-shield"); } - - @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/WolfController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/WolfController.java index e0cd46674..5e7138247 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 @@ -90,7 +90,19 @@ public class WolfController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -135,8 +147,6 @@ public class WolfController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/ZombieController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/ZombieController.java index 33e0ceddf..b483df4b9 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 @@ -79,7 +79,19 @@ public class ZombieController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -123,8 +135,6 @@ public class ZombieController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/ZombieHuskController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/ZombieHuskController.java index 1ecc6d389..9d204d196 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 @@ -79,7 +79,19 @@ public class ZombieHuskController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -123,8 +135,6 @@ public class ZombieHuskController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/ZombieVillagerController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/ZombieVillagerController.java index 6f683ff73..784f7d618 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 @@ -79,7 +79,19 @@ public class ZombieVillagerController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 @@ -123,8 +135,6 @@ public class ZombieVillagerController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND); } - - @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/AreaEffectCloudController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/AreaEffectCloudController.java index b99b94c07..f410c2789 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 @@ -64,7 +64,19 @@ public class AreaEffectCloudController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 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 327bd30a0..7bbad4c2b 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 @@ -64,7 +64,19 @@ public class BoatController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 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 cb845fac2..e9f8161f9 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 @@ -64,7 +64,19 @@ public class DragonFireballController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 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 06ec58529..4f42e9378 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 @@ -80,7 +80,19 @@ public class EggController extends AbstractEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 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 4f1916f57..6a22274b9 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 @@ -64,7 +64,19 @@ public class EnderCrystalController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 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 f64d86132..27396f0d0 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 @@ -64,7 +64,19 @@ public class EnderPearlController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 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 21f15ebdd..278de9168 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 @@ -64,7 +64,19 @@ public class EnderSignalController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 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 785454bee..b688ae9cd 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 @@ -67,7 +67,19 @@ public class EvokerFangsController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 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 2e7cc4bf0..5775fb90a 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 @@ -50,7 +50,19 @@ public class ExperienceOrbController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 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 91a731fdc..07d4f0ae0 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 @@ -72,7 +72,19 @@ public class FallingBlockController extends AbstractEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 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 7bc85dec1..120a4dbb2 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 @@ -50,7 +50,19 @@ public class FireworkController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 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 91c8b25b4..70568c02c 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 @@ -59,7 +59,19 @@ public class FishingHookController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 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 5f3b18020..75e077dd0 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 @@ -63,7 +63,19 @@ public class ItemController extends AbstractEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 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 234263494..e42a872d6 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 @@ -63,7 +63,19 @@ public class ItemFrameController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 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 eb081e2ab..8411d445c 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 @@ -50,7 +50,19 @@ public class LargeFireballController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 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 6666dae38..9236a62fe 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 @@ -50,7 +50,19 @@ public class LeashController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 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 97120cad7..2f3dd5e50 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 @@ -68,7 +68,19 @@ public class LlamaSpitController extends AbstractEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 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 b113ccdb2..5e1f1400d 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 @@ -50,7 +50,19 @@ public class MinecartChestController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 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 af2b4f24c..0d9280eb4 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 @@ -50,7 +50,19 @@ public class MinecartCommandController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 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 81c5d6832..296432e9d 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 @@ -50,7 +50,19 @@ public class MinecartFurnaceController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 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 9266a866c..5e33fe638 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 @@ -46,7 +46,19 @@ public class MinecartHopperController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 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 4b35a39d6..97a9db198 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 @@ -50,7 +50,19 @@ public class MinecartRideableController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 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 49a427678..b07f3890e 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 @@ -46,7 +46,19 @@ public class MinecartSpawnerController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 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 533fd26e6..abb4c5a45 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 @@ -46,7 +46,19 @@ public class MinecartTNTController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 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 55b6bea41..c9343846d 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 @@ -50,7 +50,19 @@ public class PaintingController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 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 25efb0462..6d0337bdd 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 @@ -50,7 +50,19 @@ public class ShulkerBulletController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 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 c69b759d1..d64d1240c 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 @@ -50,7 +50,19 @@ public class SmallFireballController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 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 898f87b13..ac9638b8b 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 @@ -50,7 +50,19 @@ public class SnowballController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 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 f3c4e1819..21589ef2f 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 @@ -50,7 +50,19 @@ public class SpectralArrowController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 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 bb76428f2..dffe47c35 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 @@ -50,7 +50,19 @@ public class TNTPrimedController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 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 bfd344ee5..9658bd553 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 @@ -50,7 +50,19 @@ public class ThrownExpBottleController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 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 1bfeaf6c5..7f4d0a140 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 @@ -51,7 +51,19 @@ public class ThrownPotionController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 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 71ea2fb38..964b03621 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 @@ -50,7 +50,19 @@ public class ThrownTridentController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 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 f041fca7d..619b29a70 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 @@ -50,7 +50,19 @@ public class TippedArrowController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 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 87e53860b..a5b5f9530 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 @@ -50,7 +50,19 @@ public class WitherSkullController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(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 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 6f269deab..a3872f47b 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 @@ -1758,22 +1758,6 @@ public class NMSImpl implements NMSBridge { return null; } - public static boolean fluidPush(NPC npc, Entity entity, Supplier func) { - if (npc == null) { - return func.get(); - } - double mx = entity.motX; - double my = entity.motY; - double mz = entity.motZ; - boolean res = func.get(); - if (!npc.isPushableByFluids()) { - entity.motX = mx; - entity.motY = my; - entity.motZ = mz; - } - return res; - } - public static void flyingMoveLogic(EntityLiving entity, float f, float f1, float f2) { if ((entity.cP()) || (entity.bT())) { double d0 = 0.08D; diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/ArmorStandController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/ArmorStandController.java index 72f920a2b..7fa0a4240 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/ArmorStandController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/ArmorStandController.java @@ -81,7 +81,15 @@ public class ArmorStandController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 0318f91bd..c835285d9 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 @@ -25,6 +25,7 @@ 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 { @@ -79,7 +80,15 @@ public class BatController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -109,8 +118,6 @@ public class BatController extends MobEntityController { 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_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 81a414778..cfa2fa734 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 @@ -25,6 +25,7 @@ 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 { @@ -76,7 +77,15 @@ public class BlazeController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -106,8 +115,6 @@ public class BlazeController extends MobEntityController { 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_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 af614582c..c518681f1 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 @@ -103,7 +103,15 @@ public class CatController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -142,8 +150,6 @@ public class CatController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 c3f2dfafa..384271a9a 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 @@ -93,7 +93,15 @@ public class CaveSpiderController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -132,8 +140,6 @@ public class CaveSpiderController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 77d89b5ff..23979753f 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 @@ -103,7 +103,15 @@ public class ChickenController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -142,8 +150,6 @@ public class ChickenController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 002dc7318..079790d58 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 @@ -112,7 +112,15 @@ public class CodController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -152,8 +160,6 @@ public class CodController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 a5ba7e983..2578e63b8 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 @@ -118,7 +118,15 @@ public class CowController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -157,8 +165,6 @@ public class CowController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 f7618e371..1fea2554e 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 @@ -96,7 +96,15 @@ public class CreeperController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -134,8 +142,6 @@ public class CreeperController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 c8ef69d82..fd21d5103 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 @@ -107,7 +107,15 @@ public class DolphinController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -147,8 +155,6 @@ public class DolphinController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 9ff75113a..763dcc766 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 @@ -93,7 +93,15 @@ public class DrownedController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -131,8 +139,6 @@ public class DrownedController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 5c941d9fc..fc2961b73 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 @@ -82,7 +82,15 @@ public class EnderDragonController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/EndermanController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/EndermanController.java index 2c15a93a0..ba78f0c0a 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 @@ -101,7 +101,15 @@ public class EndermanController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -139,8 +147,6 @@ public class EndermanController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 9fb4e8c96..6b8d0ca88 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 @@ -93,7 +93,15 @@ public class EndermiteController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -131,8 +139,6 @@ public class EndermiteController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 e1171168c..5e4c01dd5 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 @@ -79,7 +79,15 @@ public class EvokerController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -118,8 +126,6 @@ public class EvokerController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 b8b7e2f67..2912edbf8 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 @@ -89,7 +89,15 @@ public class FoxController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -128,8 +136,6 @@ public class FoxController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 fb84af96d..12d970a4d 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 @@ -25,6 +25,7 @@ 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 { @@ -62,7 +63,15 @@ public class GhastController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -92,8 +101,6 @@ public class GhastController extends MobEntityController { 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_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 044fddd91..e34adc35c 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 @@ -79,7 +79,15 @@ public class GiantController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -117,8 +125,6 @@ public class GiantController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 d82511746..5aa08bde2 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 @@ -79,7 +79,15 @@ public class GuardianController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -118,8 +126,6 @@ public class GuardianController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 301b39db6..f83a817bf 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 @@ -79,7 +79,15 @@ public class GuardianElderController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -118,8 +126,6 @@ public class GuardianElderController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 f8ecf1219..07e80dc53 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 @@ -107,7 +107,15 @@ public class HorseController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -159,8 +167,6 @@ public class HorseController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 e1133cd33..7046b156b 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 @@ -105,7 +105,15 @@ public class HorseDonkeyController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/HorseMuleController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/HorseMuleController.java index e457b752c..17950c3c8 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 @@ -106,7 +106,15 @@ public class HorseMuleController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -158,8 +166,6 @@ public class HorseMuleController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 061558764..f522521d3 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 @@ -107,7 +107,15 @@ public class HorseSkeletonController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -159,8 +167,6 @@ public class HorseSkeletonController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 469470c5a..cbed983fd 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 @@ -107,7 +107,15 @@ public class HorseZombieController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -159,8 +167,6 @@ public class HorseZombieController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 228628bcc..be6776b08 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 @@ -79,7 +79,15 @@ public class IllusionerController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -118,8 +126,6 @@ public class IllusionerController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 d14a73d64..0f4e24152 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 @@ -79,7 +79,15 @@ public class IronGolemController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -117,8 +125,6 @@ public class IronGolemController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 b61ef4771..bc26246cc 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 @@ -105,7 +105,15 @@ public class LlamaController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/MagmaCubeController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/MagmaCubeController.java index d4c80fa58..b0055c967 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 @@ -85,7 +85,15 @@ public class MagmaCubeController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -123,8 +131,6 @@ public class MagmaCubeController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 776c52287..3a808a944 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 @@ -98,7 +98,15 @@ public class MushroomCowController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -136,8 +144,6 @@ public class MushroomCowController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 1b6322e9a..4e812a172 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 @@ -89,7 +89,15 @@ public class OcelotController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -135,8 +143,6 @@ public class OcelotController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 0b58c2903..b97c2d9d1 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 @@ -89,7 +89,15 @@ public class PandaController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -128,8 +136,6 @@ public class PandaController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 7833b5ab7..0099df27e 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 @@ -27,6 +27,7 @@ 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 { @@ -73,7 +74,15 @@ public class ParrotController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -103,8 +112,6 @@ public class ParrotController extends MobEntityController { 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_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 4311fb1f8..6a47e4eab 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 @@ -87,7 +87,15 @@ public class PhantomController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -132,8 +140,6 @@ public class PhantomController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 950d111af..a6bd280b9 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 @@ -90,7 +90,15 @@ public class PigController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -135,8 +143,6 @@ public class PigController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 c8d878c49..a7d4db025 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 @@ -79,7 +79,15 @@ public class PigZombieController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -117,8 +125,6 @@ public class PigZombieController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 24725c5a0..1701a55b8 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 @@ -89,7 +89,15 @@ public class PillagerController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -128,8 +136,6 @@ public class PillagerController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 5be2f013d..a3f694238 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 @@ -26,6 +26,7 @@ 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 { @@ -72,7 +73,15 @@ public class PolarBearController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -102,8 +111,6 @@ public class PolarBearController extends MobEntityController { 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_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 db336a836..5e4feccd7 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 @@ -109,7 +109,15 @@ public class PufferFishController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -150,8 +158,6 @@ public class PufferFishController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 70c5c39f5..8877fbfd9 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 @@ -90,7 +90,15 @@ public class RabbitController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -129,8 +137,6 @@ public class RabbitController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 c966fefe3..16f46745a 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 @@ -89,7 +89,15 @@ public class RavagerController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -128,8 +136,6 @@ public class RavagerController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 6a587f699..cdd48e7b2 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 @@ -98,7 +98,15 @@ public class SalmonController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -138,8 +146,6 @@ public class SalmonController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 f21b9db65..37bdd034a 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 @@ -89,7 +89,15 @@ public class SheepController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -127,8 +135,6 @@ public class SheepController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 9d67ead2c..cdca25f80 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 @@ -80,7 +80,15 @@ public class ShulkerController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -118,8 +126,6 @@ public class ShulkerController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 2788913eb..ec977b959 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 @@ -79,7 +79,15 @@ public class SilverfishController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -117,8 +125,6 @@ public class SilverfishController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 ef4b80b02..3b2109bc8 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 @@ -79,7 +79,15 @@ public class SkeletonController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -117,8 +125,6 @@ public class SkeletonController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 33fe59aad..73101ce83 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 @@ -79,7 +79,15 @@ public class SkeletonStrayController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -117,8 +125,6 @@ public class SkeletonStrayController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 4912041ec..3bfa95822 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 @@ -79,7 +79,15 @@ public class SkeletonWitherController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -117,8 +125,6 @@ public class SkeletonWitherController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 53e8ba01e..3cacf85e7 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 @@ -85,7 +85,15 @@ public class SlimeController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -124,8 +132,6 @@ public class SlimeController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 41a9b689a..8cab4763f 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 @@ -79,7 +79,15 @@ public class SnowmanController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -117,8 +125,6 @@ public class SnowmanController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 bb96b29d6..c8b918a12 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 @@ -79,7 +79,15 @@ public class SpiderController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -117,8 +125,6 @@ public class SpiderController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 f05fca480..9fc24f7e8 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 @@ -79,7 +79,15 @@ public class SquidController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -117,8 +125,6 @@ public class SquidController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 6cc6df596..71d6b0f4c 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 @@ -103,7 +103,15 @@ public class TraderLlamaController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -142,8 +150,6 @@ public class TraderLlamaController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 2b26f3f07..5ffec3881 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 @@ -98,7 +98,15 @@ public class TropicalFishController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -138,8 +146,6 @@ public class TropicalFishController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 316b30e82..feacbef24 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 @@ -86,7 +86,15 @@ public class TurtleController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -126,8 +134,6 @@ public class TurtleController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 dad074397..e8ff2bc70 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 @@ -25,6 +25,7 @@ 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 { @@ -65,7 +66,15 @@ public class VexController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -95,8 +104,6 @@ public class VexController extends MobEntityController { 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_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 d1476e13d..8ffe1147d 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 @@ -113,7 +113,15 @@ public class VillagerController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -161,8 +169,6 @@ public class VillagerController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 66d0b37d1..c270f5432 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 @@ -89,7 +89,15 @@ public class VindicatorController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -128,8 +136,6 @@ public class VindicatorController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 6adb6b3ae..0fa6e788e 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 @@ -113,7 +113,15 @@ public class WanderingTraderController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -161,8 +169,6 @@ public class WanderingTraderController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 43a3c326e..f1ec48b9c 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 @@ -79,7 +79,15 @@ public class WitchController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -117,8 +125,6 @@ public class WitchController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 2c598a7a7..0956d5b72 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 @@ -25,6 +25,7 @@ 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 { @@ -62,7 +63,15 @@ public class WitherController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -97,8 +106,6 @@ public class WitherController extends MobEntityController { : npc.data().get("wither-arrow-shield"); } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 f03772fa0..3f1a28ce9 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 @@ -91,7 +91,15 @@ public class WolfController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -130,8 +138,6 @@ public class WolfController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 be35c96c0..2ee138432 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 @@ -79,7 +79,15 @@ public class ZombieController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -117,8 +125,6 @@ public class ZombieController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 c107741aa..039f6bf34 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 @@ -79,7 +79,15 @@ public class ZombieHuskController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -117,8 +125,6 @@ public class ZombieHuskController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 ccb813c72..7ea258b9a 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 @@ -79,7 +79,15 @@ public class ZombieVillagerController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -117,8 +125,6 @@ public class ZombieVillagerController extends MobEntityController { } } - - @Override public void f(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); 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 44486b35f..2134fbfb3 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 @@ -20,6 +20,7 @@ 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 { @@ -65,7 +66,15 @@ public class AreaEffectCloudController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 d44699c7d..2d1e27966 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 @@ -20,6 +20,7 @@ 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 { @@ -65,7 +66,15 @@ public class BoatController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 0dec92cca..a0a90c966 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 @@ -20,6 +20,7 @@ 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 { @@ -65,7 +66,15 @@ public class DragonFireballController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 f8fdeefd3..e3cb9e5f8 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 @@ -23,6 +23,7 @@ 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; @@ -81,7 +82,15 @@ public class EggController extends AbstractEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 bf8e07793..119e3e113 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 @@ -20,6 +20,7 @@ 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 { @@ -65,7 +66,15 @@ public class EnderCrystalController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 62f86fd80..87f3a9529 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 @@ -20,6 +20,7 @@ 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 { @@ -65,7 +66,15 @@ public class EnderPearlController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 e615ed1ee..5e3145d1d 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 @@ -20,6 +20,7 @@ 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 { @@ -65,7 +66,15 @@ public class EnderSignalController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 d5bc8d7d9..42a1460be 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 @@ -68,7 +68,15 @@ public class EvokerFangsController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 757b79d2d..99a585b76 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 @@ -20,6 +20,7 @@ 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 { @@ -51,7 +52,15 @@ public class ExperienceOrbController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 88cda8271..a2a4c913e 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 @@ -74,7 +74,15 @@ public class FallingBlockController extends AbstractEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 16c732b67..32f68e215 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 @@ -20,6 +20,7 @@ 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 { @@ -51,7 +52,15 @@ public class FireworkController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 45e18dab1..c6a7c32b4 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 @@ -30,6 +30,7 @@ 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; @@ -65,7 +66,15 @@ public class FishingHookController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 91f621a60..1468404e2 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 @@ -25,6 +25,7 @@ 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; public class ItemController extends AbstractEntityController { @@ -64,7 +65,15 @@ public class ItemController extends AbstractEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 131b77ed3..5e2f95914 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 @@ -24,6 +24,7 @@ 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 { @@ -64,7 +65,15 @@ public class ItemFrameController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 a62aba991..d023c5293 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 @@ -20,6 +20,7 @@ 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 { @@ -51,7 +52,15 @@ public class LargeFireballController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 2158a4fbe..b1e7243d0 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 @@ -20,6 +20,7 @@ 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 { @@ -51,7 +52,15 @@ public class LeashController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 a5d375145..23ff27520 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 @@ -24,6 +24,7 @@ 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; @@ -70,7 +71,15 @@ public class LlamaSpitController extends AbstractEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 ed66d23a9..546867f3f 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 @@ -20,6 +20,7 @@ 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 { @@ -51,7 +52,15 @@ public class MinecartChestController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 4b5c62f12..8d0be2044 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 @@ -20,6 +20,7 @@ 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 { @@ -51,7 +52,15 @@ public class MinecartCommandController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 58dde451e..617f5bb94 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 @@ -20,6 +20,7 @@ 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 { @@ -51,7 +52,15 @@ public class MinecartFurnaceController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 3b9499318..60cc166ec 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 @@ -16,6 +16,7 @@ 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 { @@ -47,7 +48,15 @@ public class MinecartHopperController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 818c44f66..6c41ad9b8 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 @@ -20,6 +20,7 @@ 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 { @@ -51,7 +52,15 @@ public class MinecartRideableController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 75adba88c..5e9a7fa57 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 @@ -16,6 +16,7 @@ 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 { @@ -47,7 +48,15 @@ public class MinecartSpawnerController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 d58d66691..848044027 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 @@ -16,6 +16,7 @@ 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 { @@ -47,7 +48,15 @@ public class MinecartTNTController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 125a7b8a3..df0cda166 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 @@ -20,6 +20,7 @@ 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 { @@ -51,7 +52,15 @@ public class PaintingController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 ea4e0f3e1..90b096aec 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 @@ -20,6 +20,7 @@ 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 { @@ -51,7 +52,15 @@ public class ShulkerBulletController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 e3a12f0c7..ad179f1e4 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 @@ -20,6 +20,7 @@ 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 { @@ -51,7 +52,15 @@ public class SmallFireballController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 bd7a4d59f..64eb2189b 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 @@ -20,6 +20,7 @@ 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 { @@ -51,7 +52,15 @@ public class SnowballController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 71f3e4ab6..e112ca88f 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 @@ -20,6 +20,7 @@ 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 { @@ -51,7 +52,15 @@ public class SpectralArrowController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 9084aef95..51cbb7155 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 @@ -20,6 +20,7 @@ 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 { @@ -51,7 +52,15 @@ public class TNTPrimedController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 34daecded..79ec84601 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 @@ -20,6 +20,7 @@ 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 { @@ -51,7 +52,15 @@ public class ThrownExpBottleController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 ce4002b34..944655485 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 @@ -21,6 +21,7 @@ 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 { @@ -52,7 +53,15 @@ public class ThrownPotionController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 accb7b479..5d98f050e 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 @@ -20,6 +20,7 @@ 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 { @@ -51,7 +52,15 @@ public class ThrownTridentController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 fc16acf25..13e41b9e5 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 @@ -20,6 +20,7 @@ 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 { @@ -51,7 +52,15 @@ public class TippedArrowController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 8bb578cdf..9df15360c 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 @@ -20,6 +20,7 @@ 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 { @@ -51,7 +52,15 @@ public class WitherSkullController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 e33c14465..6af858911 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 @@ -1832,18 +1832,6 @@ public class NMSImpl implements NMSBridge { return null; } - public static boolean fluidPush(NPC npc, Entity entity, Supplier func) { - if (npc == null) { - return func.get(); - } - Vec3D old = entity.getMot().add(0, 0, 0); - boolean res = func.get(); - if (!npc.isPushableByFluids()) { - entity.setMot(old); - } - return res; - } - public static void flyingMoveLogic(EntityLiving entity, Vec3D vec3d) { double d0; float f; diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/ArmorStandController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/ArmorStandController.java index 7e82d8bdc..dbc292091 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/ArmorStandController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/ArmorStandController.java @@ -74,7 +74,15 @@ public class ArmorStandController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/BatController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/BatController.java index d012662cc..66c239fb2 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 @@ -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.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 { @@ -72,7 +73,15 @@ public class BatController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -102,8 +111,6 @@ public class BatController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 a94ea02f4..4d1bdf813 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 @@ -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.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 { @@ -69,7 +70,15 @@ public class BeeController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -99,8 +108,6 @@ public class BeeController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 76b97f453..4da710527 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 @@ -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.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 { @@ -69,7 +70,15 @@ public class BlazeController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -99,8 +108,6 @@ public class BlazeController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 e5d72d69d..bf31ee820 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 @@ -97,7 +97,15 @@ public class CatController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -136,8 +144,6 @@ public class CatController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 926e674e9..5a5110bfc 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 @@ -87,7 +87,15 @@ public class CaveSpiderController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -126,8 +134,6 @@ public class CaveSpiderController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 631ffb66a..139842e55 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 @@ -97,7 +97,15 @@ public class ChickenController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -136,8 +144,6 @@ public class ChickenController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 35a882579..772ca9f11 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 @@ -110,7 +110,15 @@ public class CodController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -150,8 +158,6 @@ public class CodController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 5936f4f78..c45c87ab2 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 @@ -112,7 +112,15 @@ public class CowController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -151,8 +159,6 @@ public class CowController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 eeed0c502..7265fafaa 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 @@ -90,7 +90,15 @@ public class CreeperController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -128,8 +136,6 @@ public class CreeperController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 7b04590ae..5f5f2ae78 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 @@ -104,7 +104,15 @@ public class DolphinController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -144,8 +152,6 @@ public class DolphinController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 5262aed4c..bca18153b 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 @@ -87,7 +87,15 @@ public class DrownedController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -125,8 +133,6 @@ public class DrownedController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 b303c7d7c..a18153279 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 @@ -76,7 +76,15 @@ public class EnderDragonController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/EndermanController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/EndermanController.java index badc737b8..128a6b1ac 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 @@ -95,7 +95,15 @@ public class EndermanController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -133,8 +141,6 @@ public class EndermanController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 9fe06fabe..5edda40cf 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 @@ -87,7 +87,15 @@ public class EndermiteController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -125,8 +133,6 @@ public class EndermiteController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 ea202e206..3bf3bc623 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 @@ -81,7 +81,15 @@ public class EvokerController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -120,8 +128,6 @@ public class EvokerController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 da5ef7afd..08abd26ef 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 @@ -91,7 +91,15 @@ public class FoxController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -130,8 +138,6 @@ public class FoxController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 0dc753d76..b70566d80 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 @@ -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.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 { @@ -63,7 +64,15 @@ public class GhastController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -93,8 +102,6 @@ public class GhastController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 083233cb5..5d4deaac5 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 @@ -81,7 +81,15 @@ public class GiantController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -119,8 +127,6 @@ public class GiantController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 4c2fc935f..b839cdc37 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 @@ -81,7 +81,15 @@ public class GuardianController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -120,8 +128,6 @@ public class GuardianController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 e4b713a8c..8b5611772 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 @@ -81,7 +81,15 @@ public class GuardianElderController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -120,8 +128,6 @@ public class GuardianElderController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 4843fbe96..9ed594da4 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 @@ -109,7 +109,15 @@ public class HorseController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -161,8 +169,6 @@ public class HorseController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 bb2417115..50e1dc0ab 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 @@ -107,7 +107,15 @@ public class HorseDonkeyController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/HorseMuleController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/HorseMuleController.java index 0e780a4b2..0d0d936bf 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 @@ -108,7 +108,15 @@ public class HorseMuleController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -160,8 +168,6 @@ public class HorseMuleController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 09f4d2e61..95dcbbcb9 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 @@ -109,7 +109,15 @@ public class HorseSkeletonController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -161,8 +169,6 @@ public class HorseSkeletonController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 371bd41ed..06c80a6e0 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 @@ -109,7 +109,15 @@ public class HorseZombieController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -161,8 +169,6 @@ public class HorseZombieController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 b46445704..8e3ba3945 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 @@ -81,7 +81,15 @@ public class IllusionerController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -120,8 +128,6 @@ public class IllusionerController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 a4bde57ff..569ec49f3 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 @@ -81,7 +81,15 @@ public class IronGolemController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -119,8 +127,6 @@ public class IronGolemController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 06d81eeaf..7a8edba2f 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 @@ -107,7 +107,15 @@ public class LlamaController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/MagmaCubeController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/MagmaCubeController.java index 2424c8b47..ea9ba2f87 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 @@ -91,7 +91,15 @@ public class MagmaCubeController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -129,8 +137,6 @@ public class MagmaCubeController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 1ef483ff4..154f4f5be 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 @@ -100,7 +100,15 @@ public class MushroomCowController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -138,8 +146,6 @@ public class MushroomCowController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 f645d9a29..15417aa95 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 @@ -92,7 +92,15 @@ public class OcelotController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -131,8 +139,6 @@ public class OcelotController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 9ca78e19f..9be788327 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 @@ -91,7 +91,15 @@ public class PandaController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -130,8 +138,6 @@ public class PandaController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 9828ac4e0..c086d728a 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 @@ -28,6 +28,7 @@ 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 { @@ -74,7 +75,15 @@ public class ParrotController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/PhantomController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/PhantomController.java index 330d0d017..6b7c11fc3 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 @@ -94,7 +94,15 @@ public class PhantomController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -139,8 +147,6 @@ public class PhantomController extends MobEntityController { return false; } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 5d112dd8d..84c8ae7dd 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 @@ -92,7 +92,15 @@ public class PigController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -137,8 +145,6 @@ public class PigController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 396039fd4..29edb8539 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 @@ -81,7 +81,15 @@ public class PigZombieController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -119,8 +127,6 @@ public class PigZombieController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 6e17a1424..bac6971c2 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 @@ -91,7 +91,15 @@ public class PillagerController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -130,8 +138,6 @@ public class PillagerController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 2f2fa3a73..ff8b76ca6 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 @@ -27,6 +27,7 @@ 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 { @@ -73,7 +74,15 @@ public class PolarBearController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -103,8 +112,6 @@ public class PolarBearController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 53dc46a4d..1f6ed61d6 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 @@ -115,7 +115,15 @@ public class PufferFishController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -156,8 +164,6 @@ public class PufferFishController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 562aff97d..7d1952af2 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 @@ -92,7 +92,15 @@ public class RabbitController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -131,8 +139,6 @@ public class RabbitController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 ce9ccd005..cf00dbfb6 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 @@ -91,7 +91,15 @@ public class RavagerController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -130,8 +138,6 @@ public class RavagerController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 8444caeae..4e0ea6ea1 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 @@ -104,7 +104,15 @@ public class SalmonController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -144,8 +152,6 @@ public class SalmonController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 bd7522c47..082fb456c 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 @@ -91,7 +91,15 @@ public class SheepController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -129,8 +137,6 @@ public class SheepController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 0334970da..f7dd97107 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 @@ -82,7 +82,15 @@ public class ShulkerController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -120,8 +128,6 @@ public class ShulkerController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 06af9f523..1ed557e2b 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 @@ -81,7 +81,15 @@ public class SilverfishController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -119,8 +127,6 @@ public class SilverfishController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 437b9479f..d4f0cd57e 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 @@ -81,7 +81,15 @@ public class SkeletonController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -119,8 +127,6 @@ public class SkeletonController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 0389f36ca..e08d828b9 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 @@ -81,7 +81,15 @@ public class SkeletonStrayController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -119,8 +127,6 @@ public class SkeletonStrayController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 24745a2a8..23e5610d9 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 @@ -81,7 +81,15 @@ public class SkeletonWitherController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -119,8 +127,6 @@ public class SkeletonWitherController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 f4b8d133a..b23430ae1 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 @@ -91,7 +91,15 @@ public class SlimeController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -130,8 +138,6 @@ public class SlimeController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 c9f0e4587..ec8e53d45 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 @@ -81,7 +81,15 @@ public class SnowmanController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -119,8 +127,6 @@ public class SnowmanController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 b2a27b415..7f5597c12 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 @@ -81,7 +81,15 @@ public class SpiderController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -119,8 +127,6 @@ public class SpiderController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 7ef64bd2e..53e93b926 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 @@ -81,7 +81,15 @@ public class SquidController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -119,8 +127,6 @@ public class SquidController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 47f8460b5..6c2267910 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 @@ -105,7 +105,15 @@ public class TraderLlamaController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -144,8 +152,6 @@ public class TraderLlamaController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 7be9b3fb3..5dee81b79 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 @@ -104,7 +104,15 @@ public class TropicalFishController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -144,8 +152,6 @@ public class TropicalFishController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 2319c3eb8..c3f9ae75e 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 @@ -94,7 +94,15 @@ public class TurtleController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -134,8 +142,6 @@ public class TurtleController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 e2f76b0c5..ccbc7bdae 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 @@ -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.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 { @@ -66,7 +67,15 @@ public class VexController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -96,8 +105,6 @@ public class VexController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 6644f4768..9fb4a81af 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 @@ -115,7 +115,15 @@ public class VillagerController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -154,8 +162,6 @@ public class VillagerController extends MobEntityController { } } - - @Override public boolean et() { if (blockingATrade) { 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 cd40d7099..439b472ef 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 @@ -91,7 +91,15 @@ public class VindicatorController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -130,8 +138,6 @@ public class VindicatorController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 1f3196108..90c795ef1 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 @@ -113,7 +113,15 @@ public class WanderingTraderController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -152,8 +160,6 @@ public class WanderingTraderController extends MobEntityController { } } - - @Override public boolean et() { if (blockingATrade) { 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 6ff7e4e2d..e75aef0e7 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 @@ -80,7 +80,15 @@ public class WitchController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -118,8 +126,6 @@ public class WitchController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 9aa12a8a5..b119fc6ba 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 @@ -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.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 { @@ -63,7 +64,15 @@ public class WitherController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -92,8 +101,6 @@ public class WitherController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 58bab8035..46e153ab2 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 @@ -93,7 +93,15 @@ public class WolfController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -132,8 +140,6 @@ public class WolfController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 0bd71bbcb..c95b27d59 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 @@ -81,7 +81,15 @@ public class ZombieController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -119,8 +127,6 @@ public class ZombieController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 d88581517..bcbe0a090 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 @@ -81,7 +81,15 @@ public class ZombieHuskController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -119,8 +127,6 @@ public class ZombieHuskController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 1d2cd7d5b..97fb2b744 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 @@ -81,7 +81,15 @@ public class ZombieVillagerController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -119,8 +127,6 @@ public class ZombieVillagerController extends MobEntityController { } } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/AreaEffectCloudController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/AreaEffectCloudController.java index aaf785793..a874dc493 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/AreaEffectCloudController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/AreaEffectCloudController.java @@ -21,6 +21,7 @@ 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 AreaEffectCloudController extends MobEntityController { @@ -58,7 +59,15 @@ public class AreaEffectCloudController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + 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 47af2cee1..8ffffc10c 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 @@ -71,7 +71,15 @@ public class BoatController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + 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 f4e8f37b3..97ce24339 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 @@ -21,6 +21,7 @@ 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 DragonFireballController extends MobEntityController { @@ -58,7 +59,15 @@ public class DragonFireballController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + 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 dc28c12c7..a77e366f0 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 @@ -24,6 +24,7 @@ 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; import net.minecraft.server.v1_15_R1.WorldServer; @@ -74,7 +75,15 @@ public class EggController extends AbstractEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + 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 f3614defb..f8ac779e5 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 @@ -21,6 +21,7 @@ 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 EnderCrystalController extends MobEntityController { @@ -58,7 +59,15 @@ public class EnderCrystalController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + 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 56cb3925f..2145a3379 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 @@ -21,6 +21,7 @@ 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 EnderPearlController extends MobEntityController { @@ -58,7 +59,15 @@ public class EnderPearlController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + 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 ffb31298b..ffa1c1884 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 @@ -21,6 +21,7 @@ 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 EnderSignalController extends MobEntityController { @@ -58,7 +59,15 @@ public class EnderSignalController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + 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 dc7bae164..e8c8d3a90 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 @@ -69,7 +69,15 @@ public class EvokerFangsController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + 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 1f43d3261..17372fb10 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 @@ -21,6 +21,7 @@ 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 ExperienceOrbController extends MobEntityController { @@ -52,7 +53,15 @@ public class ExperienceOrbController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + 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 453bb4e80..26c0291ed 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 @@ -74,7 +74,15 @@ public class FallingBlockController extends AbstractEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + 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 741da0d9e..4c1538ba3 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 @@ -21,6 +21,7 @@ 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 FireworkController extends MobEntityController { @@ -52,7 +53,15 @@ public class FireworkController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + 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 23026bc17..d5f9da47b 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 @@ -31,6 +31,7 @@ import net.minecraft.server.v1_15_R1.Items; 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; @@ -66,7 +67,15 @@ public class FishingHookController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + 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 e4f08edb7..ae5320ba1 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 @@ -25,6 +25,7 @@ import net.minecraft.server.v1_15_R1.FluidType; 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; public class ItemController extends AbstractEntityController { @@ -64,7 +65,15 @@ public class ItemController extends AbstractEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + 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 b026e398f..a246e3c63 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 @@ -24,6 +24,7 @@ import net.minecraft.server.v1_15_R1.EnumDirection; 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 { @@ -64,7 +65,15 @@ public class ItemFrameController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + 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 8daa42bfe..e01ae171b 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 @@ -21,6 +21,7 @@ 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 LargeFireballController extends MobEntityController { @@ -52,7 +53,15 @@ public class LargeFireballController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + 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 1ba16a364..64ea31b47 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 @@ -21,6 +21,7 @@ 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 LeashController extends MobEntityController { @@ -52,7 +53,15 @@ public class LeashController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + 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 07436730e..d5994d578 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 @@ -25,6 +25,7 @@ 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; import net.minecraft.server.v1_15_R1.WorldServer; @@ -71,7 +72,15 @@ public class LlamaSpitController extends AbstractEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + 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 d06abb58a..687e0d478 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 @@ -21,6 +21,7 @@ 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 MinecartChestController extends MobEntityController { @@ -52,7 +53,15 @@ public class MinecartChestController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + 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 fd4133af8..8d18d2deb 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 @@ -21,6 +21,7 @@ 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 MinecartCommandController extends MobEntityController { @@ -52,7 +53,15 @@ public class MinecartCommandController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + 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 0d222e1a9..1aaab347f 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 @@ -21,6 +21,7 @@ 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 MinecartFurnaceController extends MobEntityController { @@ -52,7 +53,15 @@ public class MinecartFurnaceController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + 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 c4c78a14a..7ef17d382 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 @@ -16,6 +16,7 @@ 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 { @@ -47,7 +48,15 @@ public class MinecartHopperController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 8aa35a30c..07b02dc2e 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 @@ -21,6 +21,7 @@ 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 MinecartRideableController extends MobEntityController { @@ -52,7 +53,15 @@ public class MinecartRideableController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + 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 c5a83cf2f..d70938ba8 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 @@ -16,6 +16,7 @@ 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 { @@ -47,7 +48,15 @@ public class MinecartSpawnerController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 b3c669e30..3cee848d1 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 @@ -16,6 +16,7 @@ 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 { @@ -47,7 +48,15 @@ public class MinecartTNTController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 4c2ef9eba..732860665 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 @@ -21,6 +21,7 @@ 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 PaintingController extends MobEntityController { @@ -52,7 +53,15 @@ public class PaintingController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + 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 23577e5fe..73780258d 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 @@ -21,6 +21,7 @@ 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 ShulkerBulletController extends MobEntityController { @@ -52,7 +53,15 @@ public class ShulkerBulletController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + 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 8d757de74..a98bb4488 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 @@ -21,6 +21,7 @@ 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 SmallFireballController extends MobEntityController { @@ -52,7 +53,15 @@ public class SmallFireballController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + 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 e394d550d..3a9a46e51 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 @@ -21,6 +21,7 @@ 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 SnowballController extends MobEntityController { @@ -52,7 +53,15 @@ public class SnowballController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + 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 7655fbfa7..9885085d8 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 @@ -21,6 +21,7 @@ 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 SpectralArrowController extends MobEntityController { @@ -52,7 +53,15 @@ public class SpectralArrowController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + 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 0d5de56fa..043118626 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 @@ -21,6 +21,7 @@ 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 TNTPrimedController extends MobEntityController { @@ -52,7 +53,15 @@ public class TNTPrimedController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + 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 ae9e9a2d5..5de4b5a7e 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 @@ -21,6 +21,7 @@ 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 ThrownExpBottleController extends MobEntityController { @@ -52,7 +53,15 @@ public class ThrownExpBottleController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + 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 a01afdf23..16279ada9 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 @@ -22,6 +22,7 @@ import net.minecraft.server.v1_15_R1.FluidType; 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 { @@ -53,7 +54,15 @@ public class ThrownPotionController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + 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 9b64d1cb3..9123fbb0c 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 @@ -21,6 +21,7 @@ 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 ThrownTridentController extends MobEntityController { @@ -52,7 +53,15 @@ public class ThrownTridentController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + 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 3f4fea975..31be8c930 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 @@ -21,6 +21,7 @@ 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 TippedArrowController extends MobEntityController { @@ -52,7 +53,15 @@ public class TippedArrowController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + 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 5381dfac4..e6d2cda08 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 @@ -21,6 +21,7 @@ import net.minecraft.server.v1_15_R1.EntityWitherSkull; 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 { @@ -52,7 +53,15 @@ public class WitherSkullController extends MobEntityController { @Override public boolean b(Tag tag) { - return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); + if (npc == null) { + return super.b(tag); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.b(tag); + if (!npc.isPushableByFluids()) { + 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 0ffa0986f..f95a7928b 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 @@ -1886,18 +1886,6 @@ public class NMSImpl implements NMSBridge { return null; } - public static boolean fluidPush(NPC npc, Entity entity, Supplier func) { - if (npc == null) { - return func.get(); - } - Vec3D old = entity.getMot().add(0, 0, 0); - boolean res = func.get(); - if (!npc.isPushableByFluids()) { - entity.setMot(old); - } - return res; - } - public static void flyingMoveLogic(EntityLiving entity, Vec3D vec3d) { double d0; float f; diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/ArmorStandController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/ArmorStandController.java index ebc06cf9f..eb825656a 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/ArmorStandController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/ArmorStandController.java @@ -80,7 +80,15 @@ public class ArmorStandController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/BatController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/BatController.java index 41dc9317e..a45506fe0 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 @@ -26,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.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 { @@ -72,7 +73,15 @@ public class BatController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -102,8 +111,6 @@ public class BatController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 79b3363f5..2f78a53d9 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 @@ -26,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.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 { @@ -69,7 +70,15 @@ public class BeeController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -99,8 +108,6 @@ public class BeeController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 0586ed2a8..dfbe2a69b 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 @@ -26,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.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 { @@ -69,7 +70,15 @@ public class BlazeController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -99,8 +108,6 @@ public class BlazeController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 b5c1a8bf1..a805a8ea0 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 @@ -89,7 +89,15 @@ public class CatController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -127,8 +135,6 @@ public class CatController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { 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 1aecbd667..24a105e7c 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 @@ -79,7 +79,15 @@ public class CaveSpiderController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -117,8 +125,6 @@ public class CaveSpiderController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { 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 f0065e1d2..574a5f8b4 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 @@ -89,7 +89,15 @@ public class ChickenController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -127,8 +135,6 @@ public class ChickenController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { 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 f3d7e173d..c2e737c25 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 @@ -8,10 +8,10 @@ import org.bukkit.entity.Cod; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_16_R3.util.EntityMoveControl; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; -import net.citizensnpcs.nms.v1_16_R3.util.EntityMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; @@ -92,7 +92,15 @@ public class CodController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -140,8 +148,6 @@ public class CodController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { if (npc == null || !npc.isFlyable()) { 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 29fc749a9..a8d2f2b05 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 @@ -94,7 +94,15 @@ public class CowController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -143,8 +151,6 @@ public class CowController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { if (npc == null || !npc.isFlyable()) { 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 a385e3b21..cb1f4a68f 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 @@ -83,7 +83,15 @@ public class CreeperController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -120,8 +128,6 @@ public class CreeperController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { 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 4fb5436d8..28bcc246d 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 @@ -8,10 +8,10 @@ import org.bukkit.entity.Dolphin; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_16_R3.util.EntityMoveControl; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; -import net.citizensnpcs.nms.v1_16_R3.util.EntityMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; @@ -91,7 +91,15 @@ public class DolphinController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -133,8 +141,6 @@ public class DolphinController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { if (npc == null || !npc.isFlyable()) { 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 f2ff5def5..ee76f5096 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 @@ -79,7 +79,15 @@ public class DrownedController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -116,8 +124,6 @@ public class DrownedController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { if (npc == null || !npc.isFlyable()) { 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 c0c7188be..85de75525 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 @@ -76,7 +76,15 @@ public class EnderDragonController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/EndermanController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/EndermanController.java index 59e5bc89a..d0e573cd3 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 @@ -87,7 +87,15 @@ public class EndermanController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -124,8 +132,6 @@ public class EndermanController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { 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 1299248a7..5367c38f5 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 @@ -79,7 +79,15 @@ public class EndermiteController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -116,8 +124,6 @@ public class EndermiteController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { if (npc == null || !npc.isFlyable()) { 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 c3077c505..c6f6dbb72 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 @@ -73,7 +73,15 @@ public class EvokerController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -111,8 +119,6 @@ public class EvokerController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { 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 412502654..97fec4d66 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 @@ -83,7 +83,15 @@ public class FoxController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -121,8 +129,6 @@ public class FoxController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { 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 e0a1ff88e..9f2f113a8 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 @@ -26,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.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 { @@ -63,7 +64,15 @@ public class GhastController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -93,8 +102,6 @@ public class GhastController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 31e5eab1f..734eb362d 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 @@ -73,7 +73,15 @@ public class GiantController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -110,8 +118,6 @@ public class GiantController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { 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 ac4cff6fc..99aa76f09 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 @@ -73,7 +73,15 @@ public class GuardianController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -111,8 +119,6 @@ public class GuardianController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { 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 3b7474a1a..b0d28c241 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 @@ -73,7 +73,15 @@ public class GuardianElderController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -111,8 +119,6 @@ public class GuardianElderController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { 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 221ffe37a..6114e65a5 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 @@ -73,7 +73,15 @@ public class HoglinController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -110,8 +118,6 @@ public class HoglinController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { 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 f84542442..efed6b710 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 @@ -101,7 +101,15 @@ public class HorseController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -147,8 +155,6 @@ public class HorseController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public boolean er() { return npc != null && npc.getNavigator().isNavigating() ? false : super.er(); 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 bb025d577..df3cb065a 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 @@ -99,7 +99,15 @@ public class HorseDonkeyController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/HorseMuleController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/HorseMuleController.java index 0c6c2fd8e..be095aff8 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 @@ -100,7 +100,15 @@ public class HorseMuleController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -146,8 +154,6 @@ public class HorseMuleController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public boolean er() { return npc != null && npc.getNavigator().isNavigating() ? false : super.er(); 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 d3aafc4c0..ada071955 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 @@ -101,7 +101,15 @@ public class HorseSkeletonController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -147,8 +155,6 @@ public class HorseSkeletonController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public boolean er() { return npc != null && npc.getNavigator().isNavigating() ? false : super.er(); 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 1b09d0aae..f826ff7af 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 @@ -101,7 +101,15 @@ public class HorseZombieController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -147,8 +155,6 @@ public class HorseZombieController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public boolean er() { return npc != null && npc.getNavigator().isNavigating() ? false : super.er(); 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 3ca63d313..f8624a6cf 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 @@ -73,7 +73,15 @@ public class IllusionerController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -111,8 +119,6 @@ public class IllusionerController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { 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 da2aba0b0..9357480c7 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 @@ -73,7 +73,15 @@ public class IronGolemController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -110,8 +118,6 @@ public class IronGolemController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { 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 d56a9976b..a4328f568 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 @@ -99,7 +99,15 @@ public class LlamaController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/MagmaCubeController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/MagmaCubeController.java index de5adc3d7..aed41db23 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 @@ -8,10 +8,10 @@ import org.bukkit.entity.MagmaCube; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_16_R3.util.EntityMoveControl; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; -import net.citizensnpcs.nms.v1_16_R3.util.EntityMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; @@ -83,7 +83,15 @@ public class MagmaCubeController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -120,8 +128,6 @@ public class MagmaCubeController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { if (npc == null || !npc.isFlyable()) { 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 bde3c2122..cd516dd21 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 @@ -86,7 +86,15 @@ public class MushroomCowController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -130,8 +138,6 @@ public class MushroomCowController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { if (npc == null || !npc.isFlyable()) { 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 4b8f67b66..e9b680540 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 @@ -84,7 +84,15 @@ public class OcelotController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -122,8 +130,6 @@ public class OcelotController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { 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 77530ae8f..bb1627980 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 @@ -83,7 +83,15 @@ public class PandaController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -121,8 +129,6 @@ public class PandaController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { 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 0a47f16e7..9b2c821e6 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 @@ -29,6 +29,7 @@ import net.minecraft.server.v1_16_R3.FluidType; 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 { @@ -66,7 +67,15 @@ public class ParrotController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/PhantomController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/PhantomController.java index 612a3b84a..c0001dfa8 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 @@ -8,10 +8,10 @@ import org.bukkit.entity.Phantom; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_16_R3.util.EntityMoveControl; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; -import net.citizensnpcs.nms.v1_16_R3.util.EntityMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; @@ -96,7 +96,15 @@ public class PhantomController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -140,8 +148,6 @@ public class PhantomController extends MobEntityController { return false; } - - @Override public void g(Vec3D vec3d) { 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 a03761628..943c5aeee 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 @@ -85,7 +85,15 @@ public class PigController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -123,8 +131,6 @@ public class PigController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public boolean er() { // block carrot-on-a-stick behaviour 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 e8317be57..872ab2811 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 @@ -73,7 +73,15 @@ public class PigZombieController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -110,8 +118,6 @@ public class PigZombieController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { 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 4a6ca1deb..29e5d58a1 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 @@ -73,7 +73,15 @@ public class PiglinBruteController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -110,8 +118,6 @@ public class PiglinBruteController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { 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 d9155bb2d..1801e0a23 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 @@ -73,7 +73,15 @@ public class PiglinController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -110,8 +118,6 @@ public class PiglinController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { 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 bd620657c..7a8a58468 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 @@ -83,7 +83,15 @@ public class PillagerController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -121,8 +129,6 @@ public class PillagerController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { 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 36a3b746b..76d100034 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 @@ -27,6 +27,7 @@ import net.minecraft.server.v1_16_R3.FluidType; 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 { @@ -73,7 +74,15 @@ public class PolarBearController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -103,8 +112,6 @@ public class PolarBearController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 fea40510e..c432d5015 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 @@ -8,10 +8,10 @@ import org.bukkit.entity.PufferFish; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_16_R3.util.EntityMoveControl; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; -import net.citizensnpcs.nms.v1_16_R3.util.EntityMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.trait.versioned.PufferFishTrait; @@ -97,7 +97,15 @@ public class PufferFishController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -146,8 +154,6 @@ public class PufferFishController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { if (npc == null || !npc.isFlyable()) { 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 bd8c882c4..38870d598 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 @@ -84,7 +84,15 @@ public class RabbitController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -122,8 +130,6 @@ public class RabbitController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { 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 23040c0ae..d1f9ef77f 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 @@ -83,7 +83,15 @@ public class RavagerController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -121,8 +129,6 @@ public class RavagerController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { 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 942f957bb..3e1e37f92 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 @@ -8,10 +8,10 @@ import org.bukkit.entity.Salmon; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_16_R3.util.EntityMoveControl; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; -import net.citizensnpcs.nms.v1_16_R3.util.EntityMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; @@ -86,7 +86,15 @@ public class SalmonController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -134,8 +142,6 @@ public class SalmonController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { if (npc == null || !npc.isFlyable()) { 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 d58d9b07d..e59c3014e 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 @@ -83,7 +83,15 @@ public class SheepController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -120,8 +128,6 @@ public class SheepController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { 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 6f42ebdd3..222c75634 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 @@ -74,7 +74,15 @@ public class ShulkerController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -111,8 +119,6 @@ public class ShulkerController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { 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 ff28e1d52..0aa79b3a8 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 @@ -73,7 +73,15 @@ public class SilverfishController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -110,8 +118,6 @@ public class SilverfishController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { 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 63bbcf52b..985d30f38 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 @@ -73,7 +73,15 @@ public class SkeletonController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -110,8 +118,6 @@ public class SkeletonController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { 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 99f4abaae..e8a1846fa 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 @@ -73,7 +73,15 @@ public class SkeletonStrayController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -110,8 +118,6 @@ public class SkeletonStrayController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { 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 d16fca267..2ae8fa0a9 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 @@ -73,7 +73,15 @@ public class SkeletonWitherController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -110,8 +118,6 @@ public class SkeletonWitherController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { 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 864f68731..372ee0562 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 @@ -8,10 +8,10 @@ import org.bukkit.entity.Slime; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_16_R3.util.EntityMoveControl; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; -import net.citizensnpcs.nms.v1_16_R3.util.EntityMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; @@ -83,7 +83,15 @@ public class SlimeController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -121,8 +129,6 @@ public class SlimeController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { 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 5d16b4ea7..68fa341b9 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 @@ -73,7 +73,15 @@ public class SnowmanController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -110,8 +118,6 @@ public class SnowmanController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { 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 22b6d88e0..bbb6fde55 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 @@ -73,7 +73,15 @@ public class SpiderController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -110,8 +118,6 @@ public class SpiderController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { 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 1a27689a1..29d03973b 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 @@ -73,7 +73,15 @@ public class SquidController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -110,8 +118,6 @@ public class SquidController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { 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 0f72ea261..7b9ba88ef 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 @@ -73,7 +73,15 @@ public class StriderController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -110,8 +118,6 @@ public class StriderController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { 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 aa277d230..5b7d90806 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 @@ -97,7 +97,15 @@ public class TraderLlamaController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -135,8 +143,6 @@ public class TraderLlamaController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { 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 410d37d2e..782d4b33d 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 @@ -8,10 +8,10 @@ import org.bukkit.entity.TropicalFish; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_16_R3.util.EntityMoveControl; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; -import net.citizensnpcs.nms.v1_16_R3.util.EntityMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; @@ -86,7 +86,15 @@ public class TropicalFishController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -134,8 +142,6 @@ public class TropicalFishController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { if (npc == null || !npc.isFlyable()) { 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 468006c66..ef6c15297 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 @@ -8,10 +8,10 @@ import org.bukkit.entity.Turtle; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_16_R3.util.EntityMoveControl; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; -import net.citizensnpcs.nms.v1_16_R3.util.EntityMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; @@ -86,7 +86,15 @@ public class TurtleController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -123,8 +131,6 @@ public class TurtleController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { 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 e9fd0b97f..b7216e8d4 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 @@ -26,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.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 { @@ -66,7 +67,15 @@ public class VexController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -96,8 +105,6 @@ public class VexController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 8aa31d902..72f372941 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 @@ -97,7 +97,15 @@ public class VillagerController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -156,8 +164,6 @@ public class VillagerController extends MobEntityController { return super.eN(); } - - @Override public void g(Vec3D vec3d) { if (npc == null || !npc.isFlyable()) { 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 d3ad50ae4..56c416a7b 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 @@ -83,7 +83,15 @@ public class VindicatorController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -121,8 +129,6 @@ public class VindicatorController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { 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 d968ecd59..782b61b7b 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 @@ -95,7 +95,15 @@ public class WanderingTraderController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -154,8 +162,6 @@ public class WanderingTraderController extends MobEntityController { return super.eN(); } - - @Override public void g(Vec3D vec3d) { if (npc == null || !npc.isFlyable()) { 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 388171095..7fe4c09d6 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 @@ -73,7 +73,15 @@ public class WitchController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -110,8 +118,6 @@ public class WitchController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { 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 7695043ff..eb42d041d 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 @@ -26,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.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 { @@ -63,7 +64,15 @@ public class WitherController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -92,8 +101,6 @@ public class WitherController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { 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 e9ad8bdd3..eccbd110d 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 @@ -85,7 +85,15 @@ public class WolfController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -123,8 +131,6 @@ public class WolfController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { 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 faa5e521d..f3b03c996 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 @@ -73,7 +73,15 @@ public class ZoglinController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -110,8 +118,6 @@ public class ZoglinController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { 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 10d4eb9bb..6b14c9a79 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 @@ -73,7 +73,15 @@ public class ZombieController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -110,8 +118,6 @@ public class ZombieController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { 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 1707af95b..62117be3b 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 @@ -73,7 +73,15 @@ public class ZombieHuskController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -110,8 +118,6 @@ public class ZombieHuskController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { 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 9639782e8..9dfe79c26 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 @@ -73,7 +73,15 @@ public class ZombieVillagerController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override @@ -110,8 +118,6 @@ public class ZombieVillagerController extends MobEntityController { return npc == null ? super.d(save) : false; } - - @Override public void g(Vec3D vec3d) { 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 f5966ba40..c280c95f6 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 @@ -21,6 +21,7 @@ import net.minecraft.server.v1_16_R3.EntityTypes; 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 { @@ -58,7 +59,15 @@ public class AreaEffectCloudController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 1ef98eab7..7db44d350 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 @@ -71,7 +71,15 @@ public class BoatController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 c9a6c0107..33789447c 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 @@ -21,6 +21,7 @@ import net.minecraft.server.v1_16_R3.EntityTypes; 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 { @@ -58,7 +59,15 @@ public class DragonFireballController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 278618a8f..0ea5885e9 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 @@ -24,6 +24,7 @@ import net.minecraft.server.v1_16_R3.EntityTypes; 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; @@ -74,7 +75,15 @@ public class EggController extends AbstractEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 51ca5be00..d7c078ecd 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 @@ -21,6 +21,7 @@ import net.minecraft.server.v1_16_R3.EntityTypes; 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 { @@ -58,7 +59,15 @@ public class EnderCrystalController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 9071ad355..7bbc3992c 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 @@ -21,6 +21,7 @@ import net.minecraft.server.v1_16_R3.EntityTypes; 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 { @@ -58,7 +59,15 @@ public class EnderPearlController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 28463114a..73c2ac831 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 @@ -21,6 +21,7 @@ import net.minecraft.server.v1_16_R3.EntityTypes; 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 { @@ -58,7 +59,15 @@ public class EnderSignalController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 d681b14f8..3331faaab 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 @@ -69,7 +69,15 @@ public class EvokerFangsController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 964425bab..bf2261d2a 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 @@ -21,6 +21,7 @@ import net.minecraft.server.v1_16_R3.EntityTypes; 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 { @@ -52,7 +53,15 @@ public class ExperienceOrbController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 6cd127281..211e35339 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 @@ -74,7 +74,15 @@ public class FallingBlockController extends AbstractEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 fa6bfe200..8d7a4791d 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 @@ -21,6 +21,7 @@ import net.minecraft.server.v1_16_R3.EntityTypes; 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 { @@ -52,7 +53,15 @@ public class FireworkController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 f9887d84b..3aa0f3d09 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 @@ -33,6 +33,7 @@ import net.minecraft.server.v1_16_R3.Items; import net.minecraft.server.v1_16_R3.NBTTagCompound; import net.minecraft.server.v1_16_R3.PlayerInteractManager; 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; @@ -68,7 +69,15 @@ public class FishingHookController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 6fefa5444..3e286652c 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 @@ -25,6 +25,7 @@ import net.minecraft.server.v1_16_R3.FluidType; 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; public class ItemController extends AbstractEntityController { @@ -64,7 +65,15 @@ public class ItemController extends AbstractEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 2f45a1282..49d10ac49 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 @@ -24,6 +24,7 @@ import net.minecraft.server.v1_16_R3.EnumDirection; 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 { @@ -64,7 +65,15 @@ public class ItemFrameController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 88554c465..1a1badd6f 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 @@ -21,6 +21,7 @@ import net.minecraft.server.v1_16_R3.EntityTypes; 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 { @@ -52,7 +53,15 @@ public class LargeFireballController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 f0956663a..79a62271b 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 @@ -21,6 +21,7 @@ import net.minecraft.server.v1_16_R3.EntityTypes; 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 { @@ -52,7 +53,15 @@ public class LeashController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 4fcc9cae2..caf8f4c6d 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 @@ -25,6 +25,7 @@ import net.minecraft.server.v1_16_R3.EntityTypes; 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; @@ -71,7 +72,15 @@ public class LlamaSpitController extends AbstractEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 531eb6900..62488dcb0 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 @@ -21,6 +21,7 @@ import net.minecraft.server.v1_16_R3.EntityTypes; 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 { @@ -52,7 +53,15 @@ public class MinecartChestController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 7677e87da..1d4be72ad 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 @@ -21,6 +21,7 @@ import net.minecraft.server.v1_16_R3.EntityTypes; 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 { @@ -52,7 +53,15 @@ public class MinecartCommandController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 0516c6b8e..9b55bf6a4 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 @@ -21,6 +21,7 @@ import net.minecraft.server.v1_16_R3.EntityTypes; 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 { @@ -52,7 +53,15 @@ public class MinecartFurnaceController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 72e2e53e3..d76414896 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 @@ -16,6 +16,7 @@ import net.minecraft.server.v1_16_R3.EntityTypes; 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 { @@ -47,7 +48,15 @@ public class MinecartHopperController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 3f01693e0..794034f05 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 @@ -21,6 +21,7 @@ import net.minecraft.server.v1_16_R3.EntityTypes; 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 { @@ -52,7 +53,15 @@ public class MinecartRideableController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 f60edde32..05a364991 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 @@ -16,6 +16,7 @@ import net.minecraft.server.v1_16_R3.EntityTypes; 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 { @@ -47,7 +48,15 @@ public class MinecartSpawnerController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 c9323a48a..fa7ed6733 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 @@ -16,6 +16,7 @@ import net.minecraft.server.v1_16_R3.EntityTypes; 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 { @@ -47,7 +48,15 @@ public class MinecartTNTController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 ff6f0f140..188c1c2d8 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 @@ -21,6 +21,7 @@ import net.minecraft.server.v1_16_R3.EntityTypes; 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 { @@ -52,7 +53,15 @@ public class PaintingController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 86516157d..a1b0925e4 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 @@ -21,6 +21,7 @@ import net.minecraft.server.v1_16_R3.EntityTypes; 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 { @@ -52,7 +53,15 @@ public class ShulkerBulletController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 8e22fe697..e27c86cc1 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 @@ -21,6 +21,7 @@ import net.minecraft.server.v1_16_R3.EntityTypes; 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 { @@ -52,7 +53,15 @@ public class SmallFireballController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 0146b2c75..a0bba6ad2 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 @@ -21,6 +21,7 @@ import net.minecraft.server.v1_16_R3.EntityTypes; 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 { @@ -52,7 +53,15 @@ public class SnowballController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 24d374b56..0f02bdabb 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 @@ -21,6 +21,7 @@ import net.minecraft.server.v1_16_R3.EntityTypes; 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 { @@ -52,7 +53,15 @@ public class SpectralArrowController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 acf1a26b0..ecdcc2786 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 @@ -21,6 +21,7 @@ import net.minecraft.server.v1_16_R3.EntityTypes; 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 { @@ -52,7 +53,15 @@ public class TNTPrimedController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 337ecf46a..344b05d33 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 @@ -21,6 +21,7 @@ import net.minecraft.server.v1_16_R3.EntityTypes; 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 { @@ -52,7 +53,15 @@ public class ThrownExpBottleController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 280ca5cf1..4b50befda 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 @@ -22,6 +22,7 @@ import net.minecraft.server.v1_16_R3.FluidType; 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 { @@ -53,7 +54,15 @@ public class ThrownPotionController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 247fb83fa..6df0b38f7 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 @@ -21,6 +21,7 @@ import net.minecraft.server.v1_16_R3.EntityTypes; 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 { @@ -52,7 +53,15 @@ public class ThrownTridentController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 d1efbfe76..95bc25366 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 @@ -21,6 +21,7 @@ import net.minecraft.server.v1_16_R3.EntityTypes; 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 { @@ -52,7 +53,15 @@ public class TippedArrowController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 8aa594693..fe5ab4598 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 @@ -21,6 +21,7 @@ import net.minecraft.server.v1_16_R3.EntityWitherSkull; 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 { @@ -52,7 +53,15 @@ public class WitherSkullController extends MobEntityController { @Override public boolean a(Tag tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); + if (npc == null) { + return super.a(tag, d0); + } + Vec3D old = getMot().add(0, 0, 0); + boolean res = super.a(tag, d0); + if (!npc.isPushableByFluids()) { + setMot(old); + } + return res; } @Override 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 5d38d8553..5cbd8b8e4 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 @@ -1915,18 +1915,6 @@ public class NMSImpl implements NMSBridge { return null; } - public static boolean fluidPush(NPC npc, Entity entity, Supplier func) { - if (npc == null) { - return func.get(); - } - Vec3D old = entity.getMot().add(0, 0, 0); - boolean res = func.get(); - if (!npc.isPushableByFluids()) { - entity.setMot(old); - } - return res; - } - public static void flyingMoveLogic(EntityLiving entity, Vec3D vec3d) { if (entity.doAITick() || entity.cs()) { double d0 = 0.08D; diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/ArmorStandController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/ArmorStandController.java index 9dc8a94c4..4c90088a4 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/ArmorStandController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/ArmorStandController.java @@ -135,7 +135,15 @@ public class ArmorStandController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/AxolotlController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/AxolotlController.java index c707cb14e..522e635c4 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,10 +9,10 @@ import org.bukkit.util.Vector; import com.mojang.serialization.Dynamic; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_17_R1.util.EntityMoveControl; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; -import net.citizensnpcs.nms.v1_17_R1.util.EntityMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; @@ -107,8 +107,6 @@ public class AxolotlController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -242,7 +240,15 @@ public class AxolotlController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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 05d3a097c..9e3f1c753 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 @@ -26,6 +26,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class BatController extends MobEntityController { public BatController() { @@ -86,8 +87,6 @@ public class BatController extends MobEntityController { } } - - @Override public SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -172,7 +171,15 @@ public class BatController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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 4b04f0777..38d339921 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 @@ -26,6 +26,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class BeeController extends MobEntityController { public BeeController() { @@ -83,8 +84,6 @@ public class BeeController extends MobEntityController { } } - - @Override public SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -165,7 +164,15 @@ public class BeeController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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 5d75ba14b..4e06ba8c5 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 @@ -26,6 +26,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class BlazeController extends MobEntityController { public BlazeController() { @@ -78,8 +79,6 @@ public class BlazeController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -160,7 +159,15 @@ public class BlazeController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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 a1b033559..6ef3e0019 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 @@ -98,8 +98,6 @@ public class CatController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -207,7 +205,15 @@ public class CatController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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 d7be3d7a4..8f9427e1c 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 @@ -97,8 +97,6 @@ public class CaveSpiderController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -206,7 +204,15 @@ public class CaveSpiderController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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 a72795431..5d1897d17 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 @@ -106,8 +106,6 @@ public class ChickenController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -215,7 +213,15 @@ public class ChickenController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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 282b580fc..56e997794 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,10 +7,10 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_17_R1.util.EntityMoveControl; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; -import net.citizensnpcs.nms.v1_17_R1.util.EntityMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; @@ -133,8 +133,6 @@ public class CodController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -245,7 +243,15 @@ public class CodController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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 bb28a8100..342c29141 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 @@ -103,8 +103,6 @@ public class CowController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -223,7 +221,15 @@ public class CowController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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 1106d8081..88ad8c94d 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 @@ -101,8 +101,6 @@ public class CreeperController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -227,7 +225,15 @@ public class CreeperController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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 6fe0e0dde..04c8479e5 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,10 +7,10 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_17_R1.util.EntityMoveControl; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; -import net.citizensnpcs.nms.v1_17_R1.util.EntityMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; @@ -100,8 +100,6 @@ public class DolphinController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -225,7 +223,15 @@ public class DolphinController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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 b0b365c85..ee7ae3c72 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 @@ -97,8 +97,6 @@ public class DrownedController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -196,7 +194,15 @@ public class DrownedController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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 7b54ae88b..a5371e50b 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 @@ -253,7 +253,15 @@ public class EnderDragonController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, d0); + } + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; } private static final MethodHandle HURT = NMS.getMethodHandle(EnderDragon.class, "b", true, List.class); 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 7ca131141..ded2bdb77 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 @@ -104,8 +104,6 @@ public class EndermanController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -221,7 +219,15 @@ public class EndermanController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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 2346a9e21..a0ccd965d 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 @@ -97,8 +97,6 @@ public class EndermiteController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -205,7 +203,15 @@ public class EndermiteController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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 08d168621..081c3d53f 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 @@ -91,8 +91,6 @@ public class EvokerController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -191,7 +189,15 @@ public class EvokerController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/FoxController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/FoxController.java index 19ae52db9..c238eaaae 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 @@ -92,8 +92,6 @@ public class FoxController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -201,7 +199,15 @@ public class FoxController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/GhastController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/GhastController.java index df69cff2d..055fd04c0 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 @@ -26,6 +26,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class GhastController extends MobEntityController { public GhastController() { @@ -73,8 +74,6 @@ public class GhastController extends MobEntityController { super.customServerAiStep(); } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -160,7 +159,15 @@ public class GhastController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/GiantController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/GiantController.java index 1255c974c..cd07df0c4 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 @@ -91,8 +91,6 @@ public class GiantController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -199,7 +197,15 @@ public class GiantController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/GlowSquidController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/GlowSquidController.java index 8f0a2b98a..be1d82b37 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 @@ -91,8 +91,6 @@ public class GlowSquidController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -199,7 +197,15 @@ public class GlowSquidController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/GoatController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/GoatController.java index 1043a25f6..073e80ba4 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 @@ -92,8 +92,6 @@ public class GoatController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -201,7 +199,15 @@ public class GoatController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/GuardianController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/GuardianController.java index 2b4606c67..c3789f556 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 @@ -97,8 +97,6 @@ public class GuardianController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -206,7 +204,15 @@ public class GuardianController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/GuardianElderController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/GuardianElderController.java index d9bd7709d..709490490 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 @@ -97,8 +97,6 @@ public class GuardianElderController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -206,7 +204,15 @@ public class GuardianElderController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/HoglinController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/HoglinController.java index 5f57faecf..354bd9c29 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 @@ -94,8 +94,6 @@ public class HoglinController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -193,7 +191,15 @@ public class HoglinController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/HorseController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/HorseController.java index 0684e9218..e108ff287 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 @@ -130,8 +130,6 @@ public class HorseController extends MobEntityController { npc.update(); } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -247,7 +245,15 @@ public class HorseController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/HorseDonkeyController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/HorseDonkeyController.java index e10ffbf00..a00e80060 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 @@ -244,7 +244,15 @@ public class HorseDonkeyController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/HorseMuleController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/HorseMuleController.java index 04a053e06..5f4d886e1 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 @@ -130,8 +130,6 @@ public class HorseMuleController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -247,7 +245,15 @@ public class HorseMuleController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/HorseSkeletonController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/HorseSkeletonController.java index 07dfab38d..beb11ffa9 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 @@ -130,8 +130,6 @@ public class HorseSkeletonController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -247,7 +245,15 @@ public class HorseSkeletonController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/HorseZombieController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/HorseZombieController.java index 729c851d4..4a3c6e995 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 @@ -130,8 +130,6 @@ public class HorseZombieController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -247,7 +245,15 @@ public class HorseZombieController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/IllusionerController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/IllusionerController.java index 9f2aca4f2..28dbef84d 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 @@ -91,8 +91,6 @@ public class IllusionerController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -191,7 +189,15 @@ public class IllusionerController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/IronGolemController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/IronGolemController.java index 8531b6239..4d93dc213 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 @@ -91,8 +91,6 @@ public class IronGolemController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -199,7 +197,15 @@ public class IronGolemController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/LlamaController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/LlamaController.java index 3e1e521b7..89789a19e 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 @@ -239,7 +239,15 @@ public class LlamaController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/MagmaCubeController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/MagmaCubeController.java index 22ea4fc56..586f38daa 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,10 +7,10 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftMagmaCube; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_17_R1.util.EntityMoveControl; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; -import net.citizensnpcs.nms.v1_17_R1.util.EntityMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; @@ -92,8 +92,6 @@ public class MagmaCubeController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -222,7 +220,15 @@ public class MagmaCubeController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/MushroomCowController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/MushroomCowController.java index dff3f07f5..452bfdc29 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 @@ -95,8 +95,6 @@ public class MushroomCowController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -210,7 +208,15 @@ public class MushroomCowController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/OcelotController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/OcelotController.java index f9a85879b..e0f6493a8 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 @@ -98,8 +98,6 @@ public class OcelotController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -207,7 +205,15 @@ public class OcelotController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/PandaController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PandaController.java index 67794f71b..694023bc6 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 @@ -92,8 +92,6 @@ public class PandaController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -201,7 +199,15 @@ public class PandaController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/ParrotController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/ParrotController.java index ac98aedfb..d31ff7a80 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 @@ -29,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class ParrotController extends MobEntityController { public ParrotController() { @@ -169,7 +170,15 @@ public class ParrotController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/PhantomController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PhantomController.java index f0e9ddff5..a7406b0e3 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,10 +7,10 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftPhantom; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_17_R1.util.EntityMoveControl; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; -import net.citizensnpcs.nms.v1_17_R1.util.EntityMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; @@ -116,8 +116,6 @@ public class PhantomController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -236,7 +234,15 @@ public class PhantomController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/PigController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PigController.java index be0c817e1..ad15b0c56 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 @@ -100,8 +100,6 @@ public class PigController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -216,7 +214,15 @@ public class PigController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/PigZombieController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PigZombieController.java index 9f1fe0c2d..3e39d18f7 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 @@ -91,8 +91,6 @@ public class PigZombieController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -192,7 +190,15 @@ public class PigZombieController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/PiglinBruteController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PiglinBruteController.java index ca1fda064..8de09b33c 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 @@ -94,8 +94,6 @@ public class PiglinBruteController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -193,7 +191,15 @@ public class PiglinBruteController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/PiglinController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PiglinController.java index e19e33a66..ec417ee8f 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 @@ -94,8 +94,6 @@ public class PiglinController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -193,7 +191,15 @@ public class PiglinController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/PillagerController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PillagerController.java index 2e734ad61..7ad1a4a9e 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 @@ -92,8 +92,6 @@ public class PillagerController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -201,7 +199,15 @@ public class PillagerController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/PolarBearController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PolarBearController.java index d253e9b3f..17b9fbb4a 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 @@ -27,6 +27,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class PolarBearController extends MobEntityController { public PolarBearController() { @@ -74,8 +75,6 @@ public class PolarBearController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -165,7 +164,15 @@ public class PolarBearController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/PufferFishController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PufferFishController.java index c7d364c3a..09566c224 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,10 +7,10 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftPufferFish; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_17_R1.util.EntityMoveControl; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; -import net.citizensnpcs.nms.v1_17_R1.util.EntityMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.trait.versioned.PufferFishTrait; @@ -128,8 +128,6 @@ public class PufferFishController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -261,7 +259,15 @@ public class PufferFishController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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) { 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 a1cba785f..92321d7fd 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 @@ -96,8 +96,6 @@ public class RabbitController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -221,7 +219,15 @@ public class RabbitController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/RavagerController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/RavagerController.java index e134aa812..2bc36d125 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 @@ -92,8 +92,6 @@ public class RavagerController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -201,7 +199,15 @@ public class RavagerController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/SalmonController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SalmonController.java index b7d4840e5..f9ffeb2ff 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,10 +7,10 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftSalmon; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_17_R1.util.EntityMoveControl; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; -import net.citizensnpcs.nms.v1_17_R1.util.EntityMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; @@ -125,8 +125,6 @@ public class SalmonController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -237,7 +235,15 @@ public class SalmonController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/SheepController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SheepController.java index b45335373..d5545f68d 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 @@ -92,8 +92,6 @@ public class SheepController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -200,7 +198,15 @@ public class SheepController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/ShulkerController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/ShulkerController.java index 2fb54e420..2d6dca957 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 @@ -95,8 +95,6 @@ public class ShulkerController extends MobEntityController { return new BodyRotationControl(this); } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -216,7 +214,15 @@ public class ShulkerController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/SilverfishController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SilverfishController.java index c506c1388..c3c18d806 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 @@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftSilverfish; import org.bukkit.util.Vector; - import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; @@ -92,8 +91,6 @@ public class SilverfishController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -200,7 +197,15 @@ public class SilverfishController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/SkeletonController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SkeletonController.java index 9404e1b70..e90837f7b 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 @@ -91,8 +91,6 @@ public class SkeletonController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -199,7 +197,15 @@ public class SkeletonController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/SkeletonStrayController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SkeletonStrayController.java index 48b82e2b1..4c9f8cb6d 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 @@ -91,8 +91,6 @@ public class SkeletonStrayController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -199,7 +197,15 @@ public class SkeletonStrayController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/SkeletonWitherController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SkeletonWitherController.java index 4ed5fcdb9..dd64d8dce 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 @@ -91,8 +91,6 @@ public class SkeletonWitherController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -199,7 +197,15 @@ public class SkeletonWitherController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/SlimeController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SlimeController.java index 5dbd84f1b..f892867e6 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,10 +7,10 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftSlime; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_17_R1.util.EntityMoveControl; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; -import net.citizensnpcs.nms.v1_17_R1.util.EntityMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; @@ -92,8 +92,6 @@ public class SlimeController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -223,7 +221,15 @@ public class SlimeController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/SnowmanController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SnowmanController.java index 706d62d38..01e3a9c8e 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 @@ -91,8 +91,6 @@ public class SnowmanController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -199,7 +197,15 @@ public class SnowmanController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/SpiderController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SpiderController.java index 9d5e10da5..842001395 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 @@ -91,8 +91,6 @@ public class SpiderController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -199,7 +197,15 @@ public class SpiderController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/SquidController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SquidController.java index f3c96b1f4..eedb81fb7 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 @@ -91,8 +91,6 @@ public class SquidController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -199,7 +197,15 @@ public class SquidController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/StriderController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/StriderController.java index 19aa8232d..d92cd3a0d 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 @@ -91,8 +91,6 @@ public class StriderController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -190,7 +188,15 @@ public class StriderController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/TraderLlamaController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/TraderLlamaController.java index 2049b3651..1b8c0cbc3 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 @@ -110,8 +110,6 @@ public class TraderLlamaController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -219,7 +217,15 @@ public class TraderLlamaController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/TropicalFishController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/TropicalFishController.java index b23924b97..90bb662e5 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,10 +7,10 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftTropicalFish; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_17_R1.util.EntityMoveControl; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; -import net.citizensnpcs.nms.v1_17_R1.util.EntityMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; @@ -127,8 +127,6 @@ public class TropicalFishController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -239,7 +237,15 @@ public class TropicalFishController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/TurtleController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/TurtleController.java index b9838ede1..6612e331f 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,10 +7,10 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftTurtle; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_17_R1.util.EntityMoveControl; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; -import net.citizensnpcs.nms.v1_17_R1.util.EntityMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; @@ -112,8 +112,6 @@ public class TurtleController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -214,7 +212,15 @@ public class TurtleController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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 { 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 58e5c5dce..dfeb30af7 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 @@ -26,6 +26,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class VexController extends MobEntityController { public VexController() { @@ -76,8 +77,6 @@ public class VexController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -158,7 +157,15 @@ public class VexController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/VillagerController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/VillagerController.java index b33da7867..91cc95875 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 @@ -106,8 +106,6 @@ public class VillagerController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -243,7 +241,15 @@ public class VillagerController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/VindicatorController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/VindicatorController.java index 5cd52399d..5efd80282 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 @@ -92,8 +92,6 @@ public class VindicatorController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -201,7 +199,15 @@ public class VindicatorController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/WanderingTraderController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/WanderingTraderController.java index 23a51b0d3..00f483d84 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 @@ -104,8 +104,6 @@ public class WanderingTraderController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -249,7 +247,15 @@ public class WanderingTraderController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/WitchController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/WitchController.java index 6d0aca217..5636491aa 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 @@ -91,8 +91,6 @@ public class WitchController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -199,7 +197,15 @@ public class WitchController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/WitherController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/WitherController.java index 83c19fad0..6674e1c0b 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 @@ -26,6 +26,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class WitherController extends MobEntityController { public WitherController() { @@ -77,8 +78,6 @@ public class WitherController extends MobEntityController { } } - - @Override public int getAlternativeTarget(int i) { return npc == null ? super.getAlternativeTarget(i) : 0; @@ -169,7 +168,15 @@ public class WitherController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/WolfController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/WolfController.java index 5804150e8..7ad58b2df 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 @@ -94,8 +94,6 @@ public class WolfController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -208,7 +206,15 @@ public class WolfController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/ZoglinController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/ZoglinController.java index 165dce9ab..1f9666812 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 @@ -93,8 +93,6 @@ public class ZoglinController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -192,7 +190,15 @@ public class ZoglinController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/ZombieController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/ZombieController.java index c7e185a54..38dd77778 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 @@ -91,8 +91,6 @@ public class ZombieController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -190,7 +188,15 @@ public class ZombieController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/ZombieHuskController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/ZombieHuskController.java index c1ab70e0a..0cc1c5c92 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 @@ -91,8 +91,6 @@ public class ZombieHuskController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -190,7 +188,15 @@ public class ZombieHuskController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/ZombieVillagerController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/ZombieVillagerController.java index c42bbcd47..1ab693900 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 @@ -91,8 +91,6 @@ public class ZombieVillagerController extends MobEntityController { } } - - @Override public SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -190,7 +188,15 @@ public class ZombieVillagerController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/AreaEffectCloudController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/AreaEffectCloudController.java index 46b3f8b33..f818c03e5 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 @@ -22,6 +22,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class AreaEffectCloudController extends MobEntityController { public AreaEffectCloudController() { @@ -109,7 +110,15 @@ public class AreaEffectCloudController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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 6358dba0e..d6045a147 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 @@ -243,7 +243,15 @@ public class BoatController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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 8b67b742b..2091bcaab 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 @@ -22,6 +22,7 @@ import net.minecraft.world.entity.projectile.DragonFireball; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class DragonFireballController extends MobEntityController { public DragonFireballController() { @@ -121,7 +122,15 @@ public class DragonFireballController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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 296a3daac..fe5e949c4 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 @@ -25,6 +25,7 @@ import net.minecraft.world.entity.projectile.ThrownEgg; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class EggController extends AbstractEntityController { public EggController() { @@ -127,7 +128,15 @@ public class EggController extends AbstractEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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 40dc8efc7..01909fedb 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 @@ -22,6 +22,7 @@ import net.minecraft.world.entity.boss.enderdragon.EndCrystal; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class EnderCrystalController extends MobEntityController { public EnderCrystalController() { @@ -109,7 +110,15 @@ public class EnderCrystalController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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 671873960..ff08203a5 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 @@ -23,6 +23,7 @@ import net.minecraft.world.entity.projectile.ThrownEnderpearl; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class EnderPearlController extends MobEntityController { public EnderPearlController() { @@ -113,7 +114,15 @@ public class EnderPearlController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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 e8fe57caf..8383a7470 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 @@ -23,6 +23,7 @@ import net.minecraft.world.entity.projectile.EyeOfEnder; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class EnderSignalController extends MobEntityController { public EnderSignalController() { @@ -110,7 +111,15 @@ public class EnderSignalController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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 9fb6a6c47..447b21fa1 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 @@ -118,7 +118,15 @@ public class EvokerFangsController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/ExperienceOrbController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ExperienceOrbController.java index 6b0b3ce3d..f8e6b1195 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 @@ -22,6 +22,7 @@ import net.minecraft.world.entity.ExperienceOrb; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class ExperienceOrbController extends MobEntityController { public ExperienceOrbController() { @@ -103,7 +104,15 @@ public class ExperienceOrbController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/FallingBlockController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/FallingBlockController.java index d90638439..579ae7a45 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/FallingBlockController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/FallingBlockController.java @@ -140,7 +140,15 @@ public class FallingBlockController extends AbstractEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, d0); + } + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(Tag, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; } private static final double EPSILON = 0.001; 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 e322ffe63..31193346e 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 @@ -23,6 +23,7 @@ import net.minecraft.world.entity.projectile.FireworkRocketEntity; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class FireworkController extends MobEntityController { public FireworkController() { @@ -104,7 +105,15 @@ public class FireworkController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/FishingHookController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/FishingHookController.java index cdacebf6d..c84a15b45 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 @@ -32,6 +32,7 @@ import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class FishingHookController extends MobEntityController { public FishingHookController() { @@ -128,7 +129,15 @@ public class FishingHookController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/GlowItemFrameController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/GlowItemFrameController.java index 08bd75565..b4d97e8d7 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/GlowItemFrameController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/GlowItemFrameController.java @@ -25,6 +25,7 @@ import net.minecraft.world.entity.decoration.GlowItemFrame; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class GlowItemFrameController extends MobEntityController { public GlowItemFrameController() { @@ -120,7 +121,15 @@ public class GlowItemFrameController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/ItemController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ItemController.java index c12d3c0fc..6e978b688 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ItemController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ItemController.java @@ -27,6 +27,7 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class ItemController extends AbstractEntityController { public ItemController() { @@ -123,7 +124,15 @@ public class ItemController extends AbstractEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/ItemFrameController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ItemFrameController.java index b8361a6e1..7aea81e0c 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ItemFrameController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ItemFrameController.java @@ -24,6 +24,7 @@ import net.minecraft.world.entity.decoration.ItemFrame; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class ItemFrameController extends MobEntityController { public ItemFrameController() { @@ -119,7 +120,15 @@ public class ItemFrameController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/LargeFireballController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/LargeFireballController.java index 071d56e9c..867733c81 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 @@ -22,6 +22,7 @@ import net.minecraft.world.entity.projectile.LargeFireball; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class LargeFireballController extends MobEntityController { public LargeFireballController() { @@ -115,7 +116,15 @@ public class LargeFireballController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/LeashController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/LeashController.java index a5a80f444..8487d018d 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 @@ -23,6 +23,7 @@ import net.minecraft.world.entity.decoration.LeashFenceKnotEntity; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class LeashController extends MobEntityController { public LeashController() { @@ -109,7 +110,15 @@ public class LeashController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/LlamaSpitController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/LlamaSpitController.java index 73fa5ba4a..9189ec13d 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 @@ -26,6 +26,7 @@ import net.minecraft.world.entity.projectile.LlamaSpit; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class LlamaSpitController extends AbstractEntityController { public LlamaSpitController() { @@ -124,7 +125,15 @@ public class LlamaSpitController extends AbstractEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/MarkerController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MarkerController.java index e0b8a8067..6cb311f4c 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 @@ -22,6 +22,7 @@ import net.minecraft.world.entity.Marker; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class MarkerController extends MobEntityController { public MarkerController() { @@ -103,7 +104,15 @@ public class MarkerController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/MinecartChestController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartChestController.java index a120ece8f..38a7e40a5 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 @@ -23,6 +23,7 @@ import net.minecraft.world.entity.vehicle.MinecartChest; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class MinecartChestController extends MobEntityController { public MinecartChestController() { @@ -104,7 +105,15 @@ public class MinecartChestController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/MinecartCommandController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartCommandController.java index aa9725e77..96cb6d28e 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 @@ -23,6 +23,7 @@ import net.minecraft.world.entity.vehicle.MinecartCommandBlock; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class MinecartCommandController extends MobEntityController { public MinecartCommandController() { @@ -104,7 +105,15 @@ public class MinecartCommandController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/MinecartFurnaceController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartFurnaceController.java index e3ad31183..e08137efc 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 @@ -23,6 +23,7 @@ import net.minecraft.world.entity.vehicle.MinecartFurnace; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class MinecartFurnaceController extends MobEntityController { public MinecartFurnaceController() { @@ -104,7 +105,15 @@ public class MinecartFurnaceController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/MinecartHopperController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartHopperController.java index 4de5b51cc..6ef129364 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 @@ -18,6 +18,7 @@ import net.minecraft.world.entity.vehicle.MinecartHopper; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class MinecartHopperController extends MobEntityController { public MinecartHopperController() { @@ -91,7 +92,15 @@ public class MinecartHopperController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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 626ea999a..f95b1d99b 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 @@ -22,6 +22,7 @@ import net.minecraft.world.entity.vehicle.Minecart; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class MinecartRideableController extends MobEntityController { public MinecartRideableController() { @@ -103,7 +104,15 @@ public class MinecartRideableController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/MinecartSpawnerController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartSpawnerController.java index bb5d4002e..578344a24 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 @@ -18,6 +18,7 @@ import net.minecraft.world.entity.vehicle.MinecartSpawner; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class MinecartSpawnerController extends MobEntityController { public MinecartSpawnerController() { @@ -91,7 +92,15 @@ public class MinecartSpawnerController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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 78b5f4b27..f5f426d89 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 @@ -18,6 +18,7 @@ import net.minecraft.world.entity.vehicle.MinecartTNT; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class MinecartTNTController extends MobEntityController { public MinecartTNTController() { @@ -91,7 +92,15 @@ public class MinecartTNTController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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 3ab7caaa8..724055fbf 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 @@ -22,6 +22,7 @@ import net.minecraft.world.entity.decoration.Painting; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class PaintingController extends MobEntityController { public PaintingController() { @@ -108,7 +109,15 @@ public class PaintingController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/ShulkerBulletController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ShulkerBulletController.java index 540207c95..37572430d 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 @@ -22,6 +22,7 @@ import net.minecraft.world.entity.projectile.ShulkerBullet; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class ShulkerBulletController extends MobEntityController { public ShulkerBulletController() { @@ -103,7 +104,15 @@ public class ShulkerBulletController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/SmallFireballController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/SmallFireballController.java index ca80547ff..853eb1f37 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 @@ -22,6 +22,7 @@ import net.minecraft.world.entity.projectile.SmallFireball; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class SmallFireballController extends MobEntityController { public SmallFireballController() { @@ -106,7 +107,15 @@ public class SmallFireballController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/SnowballController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/SnowballController.java index 4bc03b2d0..9a36435f5 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 @@ -22,6 +22,7 @@ import net.minecraft.world.entity.projectile.Snowball; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class SnowballController extends MobEntityController { public SnowballController() { @@ -103,7 +104,15 @@ public class SnowballController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/SpectralArrowController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/SpectralArrowController.java index eaed357ce..819dc2f67 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 @@ -23,6 +23,7 @@ import net.minecraft.world.entity.projectile.SpectralArrow; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class SpectralArrowController extends MobEntityController { public SpectralArrowController() { @@ -104,7 +105,15 @@ public class SpectralArrowController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/TNTPrimedController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/TNTPrimedController.java index ab3b7f2fa..20d941361 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 @@ -23,6 +23,7 @@ import net.minecraft.world.entity.item.PrimedTnt; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class TNTPrimedController extends MobEntityController { public TNTPrimedController() { @@ -104,7 +105,15 @@ public class TNTPrimedController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/ThrownExpBottleController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ThrownExpBottleController.java index 3ea2b5193..1ede5600f 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 @@ -23,6 +23,7 @@ import net.minecraft.world.entity.projectile.ThrownExperienceBottle; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class ThrownExpBottleController extends MobEntityController { public ThrownExpBottleController() { @@ -107,7 +108,15 @@ public class ThrownExpBottleController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/ThrownPotionController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ThrownPotionController.java index edb8b095b..c14002309 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ThrownPotionController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ThrownPotionController.java @@ -23,6 +23,7 @@ import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class ThrownPotionController extends MobEntityController { public ThrownPotionController() { @@ -108,7 +109,15 @@ public class ThrownPotionController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/ThrownTridentController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ThrownTridentController.java index 49cda50d4..6d1bcdcea 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 @@ -23,6 +23,7 @@ import net.minecraft.world.entity.projectile.ThrownTrident; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class ThrownTridentController extends MobEntityController { public ThrownTridentController() { @@ -104,7 +105,15 @@ public class ThrownTridentController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/TippedArrowController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/TippedArrowController.java index 4587652ed..21626f041 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 @@ -22,6 +22,7 @@ import net.minecraft.world.entity.projectile.Arrow; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class TippedArrowController extends MobEntityController { public TippedArrowController() { @@ -103,7 +104,15 @@ public class TippedArrowController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/WitherSkullController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/WitherSkullController.java index 00fa3bf20..e4e0f1b28 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 @@ -22,6 +22,7 @@ import net.minecraft.world.entity.projectile.WitherSkull; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class WitherSkullController extends MobEntityController { public WitherSkullController() { @@ -103,7 +104,15 @@ public class WitherSkullController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(Tag Tag, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(Tag, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(Tag, 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/util/NMSImpl.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/NMSImpl.java index a26df95d0..e828804b9 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/NMSImpl.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/NMSImpl.java @@ -1899,18 +1899,6 @@ public class NMSImpl implements NMSBridge { return null; } - public static boolean fluidPush(NPC npc, Entity entity, Supplier func) { - if (npc == null) { - return func.get(); - } - Vec3 old = entity.getDeltaMovement().add(0, 0, 0); - boolean res = func.get(); - if (!npc.isPushableByFluids()) { - entity.setDeltaMovement(old); - } - return res; - } - public static void flyingMoveLogic(LivingEntity entity, Vec3 vec3d) { if (entity.isEffectiveAi() || entity.isControlledByLocalInstance()) { double d0 = 0.08D; diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/ArmorStandController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/ArmorStandController.java index 24de07777..1def74180 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/ArmorStandController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/ArmorStandController.java @@ -144,7 +144,15 @@ public class ArmorStandController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/AxolotlController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/AxolotlController.java index d23c58791..504f42857 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 @@ -107,8 +107,6 @@ public class AxolotlController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -249,7 +247,15 @@ public class AxolotlController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/BatController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/BatController.java index ec874a7ec..086529448 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 @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class BatController extends MobEntityController { public BatController() { @@ -88,8 +89,6 @@ public class BatController extends MobEntityController { } } - - @Override public SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -181,7 +180,15 @@ public class BatController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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 121d11899..3658d1551 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 @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class BeeController extends MobEntityController { public BeeController() { @@ -85,8 +86,6 @@ public class BeeController extends MobEntityController { } } - - @Override public SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -174,7 +173,15 @@ public class BeeController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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 0799e1585..6fff1ba0f 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 @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class BlazeController extends MobEntityController { public BlazeController() { @@ -80,8 +81,6 @@ public class BlazeController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -169,7 +168,15 @@ public class BlazeController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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 d418a5315..99b2677f8 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 @@ -99,8 +99,6 @@ public class CatController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -215,7 +213,15 @@ public class CatController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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 8dae943b6..8d9463490 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 @@ -98,8 +98,6 @@ public class CaveSpiderController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -214,7 +212,15 @@ public class CaveSpiderController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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 bd4103b2e..04125a5a7 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 @@ -107,8 +107,6 @@ public class ChickenController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -223,7 +221,15 @@ public class ChickenController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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 47fcd26b4..bf3bfc5da 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,10 +7,10 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_18_R2.util.EntityMoveControl; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; -import net.citizensnpcs.nms.v1_18_R2.util.EntityMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; @@ -134,8 +134,6 @@ public class CodController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -254,7 +252,15 @@ public class CodController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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 2d74c5c83..f8ee5db2e 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 @@ -104,8 +104,6 @@ public class CowController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -231,7 +229,15 @@ public class CowController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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 b9ce859e2..d39522df3 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 @@ -101,8 +101,6 @@ public class CreeperController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -234,7 +232,15 @@ public class CreeperController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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 ed1c30af4..d116986d1 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 @@ -100,8 +100,6 @@ public class DolphinController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -233,7 +231,15 @@ public class DolphinController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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 4e45c93fc..8472eaef8 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 @@ -98,8 +98,6 @@ public class DrownedController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -204,7 +202,15 @@ public class DrownedController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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 e1d3e1022..573c2e7a2 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 @@ -262,7 +262,15 @@ public class EnderDragonController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + } + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; } private static final MethodHandle HURT = NMS.getMethodHandle(EnderDragon.class, "b", true, List.class); 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 3fed72b08..d0b7b7a85 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 @@ -101,8 +101,6 @@ public class EndermanController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -225,7 +223,15 @@ public class EndermanController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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 29e5ed877..bda768c8b 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 @@ -98,8 +98,6 @@ public class EndermiteController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -213,7 +211,15 @@ public class EndermiteController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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 d06864790..9ee806b3b 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 @@ -92,8 +92,6 @@ public class EvokerController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -199,7 +197,15 @@ public class EvokerController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/FoxController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/FoxController.java index 50e5922c6..4a465d76b 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 @@ -93,8 +93,6 @@ public class FoxController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -209,7 +207,15 @@ public class FoxController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/GhastController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/GhastController.java index 1b1ecca37..fb8da9187 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 @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class GhastController extends MobEntityController { public GhastController() { @@ -75,8 +76,6 @@ public class GhastController extends MobEntityController { super.customServerAiStep(); } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -169,7 +168,15 @@ public class GhastController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/GiantController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/GiantController.java index 67c47df6a..03df0ee29 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 @@ -92,8 +92,6 @@ public class GiantController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -207,7 +205,15 @@ public class GiantController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/GlowSquidController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/GlowSquidController.java index d2e481920..34316955d 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 @@ -92,8 +92,6 @@ public class GlowSquidController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -207,7 +205,15 @@ public class GlowSquidController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/GoatController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/GoatController.java index 63fa0988a..f98191a62 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 @@ -93,8 +93,6 @@ public class GoatController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -209,7 +207,15 @@ public class GoatController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/GuardianController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/GuardianController.java index fc79aad10..93059aa4d 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 @@ -98,8 +98,6 @@ public class GuardianController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -214,7 +212,15 @@ public class GuardianController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/GuardianElderController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/GuardianElderController.java index 87111596b..7bf9fec54 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 @@ -98,8 +98,6 @@ public class GuardianElderController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -214,7 +212,15 @@ public class GuardianElderController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/HoglinController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/HoglinController.java index 0851ce275..37c2d0c83 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 @@ -95,8 +95,6 @@ public class HoglinController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -201,7 +199,15 @@ public class HoglinController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/HorseController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/HorseController.java index 442266002..19573b5f2 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 @@ -131,8 +131,6 @@ public class HorseController extends MobEntityController { npc.update(); } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -255,7 +253,15 @@ public class HorseController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/HorseDonkeyController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/HorseDonkeyController.java index 7e01ee708..4e43f93fe 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 @@ -252,7 +252,15 @@ public class HorseDonkeyController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/HorseMuleController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/HorseMuleController.java index 9f6ffaa16..84dfc60e4 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 @@ -131,8 +131,6 @@ public class HorseMuleController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -255,7 +253,15 @@ public class HorseMuleController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/HorseSkeletonController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/HorseSkeletonController.java index 44f5ebf55..2bc43e943 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 @@ -131,8 +131,6 @@ public class HorseSkeletonController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -255,7 +253,15 @@ public class HorseSkeletonController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/HorseZombieController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/HorseZombieController.java index bfa2116e4..8e1335aff 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 @@ -131,8 +131,6 @@ public class HorseZombieController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -255,7 +253,15 @@ public class HorseZombieController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/IllusionerController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/IllusionerController.java index 1a20bb9e7..7e2d80538 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 @@ -92,8 +92,6 @@ public class IllusionerController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -199,7 +197,15 @@ public class IllusionerController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/IronGolemController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/IronGolemController.java index feb2ecd40..f20046e29 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 @@ -92,8 +92,6 @@ public class IronGolemController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -207,7 +205,15 @@ public class IronGolemController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/LlamaController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/LlamaController.java index 3f59420f2..eb2290ec9 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 @@ -247,7 +247,15 @@ public class LlamaController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/MagmaCubeController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/MagmaCubeController.java index 535830f66..1d96e521c 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,10 +7,10 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftMagmaCube; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_18_R2.util.EntityMoveControl; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; -import net.citizensnpcs.nms.v1_18_R2.util.EntityMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; @@ -93,8 +93,6 @@ public class MagmaCubeController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -230,7 +228,15 @@ public class MagmaCubeController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/MushroomCowController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/MushroomCowController.java index 616b7b96d..cf597b866 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 @@ -96,8 +96,6 @@ public class MushroomCowController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -218,7 +216,15 @@ public class MushroomCowController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/OcelotController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/OcelotController.java index b63931512..ffddfb010 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 @@ -99,8 +99,6 @@ public class OcelotController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -215,7 +213,15 @@ public class OcelotController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/PandaController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PandaController.java index 5e72f14ae..0e02d8cd6 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 @@ -93,8 +93,6 @@ public class PandaController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -209,7 +207,15 @@ public class PandaController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/ParrotController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/ParrotController.java index a8370c363..2a66396b8 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 @@ -31,6 +31,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class ParrotController extends MobEntityController { public ParrotController() { @@ -187,7 +188,15 @@ public class ParrotController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/PhantomController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PhantomController.java index 4c569ecdf..522cc23c0 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,10 +7,10 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftPhantom; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_18_R2.util.EntityMoveControl; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; -import net.citizensnpcs.nms.v1_18_R2.util.EntityMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; @@ -117,8 +117,6 @@ public class PhantomController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -244,7 +242,15 @@ public class PhantomController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/PigController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PigController.java index eea108ae0..b4a807390 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 @@ -100,8 +100,6 @@ public class PigController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -223,7 +221,15 @@ public class PigController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/PigZombieController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PigZombieController.java index 4dc8871b1..22c6c9ff9 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 @@ -92,8 +92,6 @@ public class PigZombieController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -198,7 +196,15 @@ public class PigZombieController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/PiglinBruteController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PiglinBruteController.java index face9e8ad..50a4f6858 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 @@ -95,8 +95,6 @@ public class PiglinBruteController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -201,7 +199,15 @@ public class PiglinBruteController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/PiglinController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PiglinController.java index a900cb1e2..26a930dbc 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 @@ -95,8 +95,6 @@ public class PiglinController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -201,7 +199,15 @@ public class PiglinController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/PillagerController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PillagerController.java index 848a24e36..cf6cc24b1 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 @@ -93,8 +93,6 @@ public class PillagerController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -209,7 +207,15 @@ public class PillagerController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/PolarBearController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PolarBearController.java index 912bac7f3..0cbc49501 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 @@ -29,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class PolarBearController extends MobEntityController { public PolarBearController() { @@ -76,8 +77,6 @@ public class PolarBearController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -174,7 +173,15 @@ public class PolarBearController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/PufferFishController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PufferFishController.java index d7c5767a5..5d53521ff 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,10 +7,10 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftPufferFish; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_18_R2.util.EntityMoveControl; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; -import net.citizensnpcs.nms.v1_18_R2.util.EntityMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.trait.versioned.PufferFishTrait; @@ -129,8 +129,6 @@ public class PufferFishController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -269,7 +267,15 @@ public class PufferFishController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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) { 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 cb58668f8..4b75f9193 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 @@ -97,8 +97,6 @@ public class RabbitController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -229,7 +227,15 @@ public class RabbitController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/RavagerController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/RavagerController.java index 0671393cf..baf796240 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 @@ -98,8 +98,6 @@ public class RavagerController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -214,7 +212,15 @@ public class RavagerController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/SalmonController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SalmonController.java index e0c8859f6..848f19ed7 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,10 +7,10 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftSalmon; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_18_R2.util.EntityMoveControl; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; -import net.citizensnpcs.nms.v1_18_R2.util.EntityMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; @@ -126,8 +126,6 @@ public class SalmonController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -245,7 +243,15 @@ public class SalmonController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/SheepController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SheepController.java index 90c46e2c2..bce85194d 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 @@ -93,8 +93,6 @@ public class SheepController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -208,7 +206,15 @@ public class SheepController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/ShulkerController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/ShulkerController.java index 1c681002a..525b8228b 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 @@ -96,8 +96,6 @@ public class ShulkerController extends MobEntityController { return new BodyRotationControl(this); } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -224,7 +222,15 @@ public class ShulkerController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/SilverfishController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SilverfishController.java index 8af6d89fd..0cb3dbb59 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 @@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftSilverfish; import org.bukkit.util.Vector; - import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; @@ -93,8 +92,6 @@ public class SilverfishController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -208,7 +205,15 @@ public class SilverfishController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/SkeletonController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SkeletonController.java index ca5705b5b..54ede3b00 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 @@ -92,8 +92,6 @@ public class SkeletonController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -207,7 +205,15 @@ public class SkeletonController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/SkeletonStrayController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SkeletonStrayController.java index f9153c14e..c3d219785 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 @@ -92,8 +92,6 @@ public class SkeletonStrayController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -207,7 +205,15 @@ public class SkeletonStrayController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/SkeletonWitherController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SkeletonWitherController.java index e18c27fce..d3daea0ca 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 @@ -92,8 +92,6 @@ public class SkeletonWitherController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -207,7 +205,15 @@ public class SkeletonWitherController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/SlimeController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SlimeController.java index 0847f47e2..cac0ab944 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,10 +7,10 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftSlime; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_18_R2.util.EntityMoveControl; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; -import net.citizensnpcs.nms.v1_18_R2.util.EntityMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; @@ -93,8 +93,6 @@ public class SlimeController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -231,7 +229,15 @@ public class SlimeController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/SnowmanController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SnowmanController.java index e94192d85..38c468c0f 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 @@ -92,8 +92,6 @@ public class SnowmanController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -207,7 +205,15 @@ public class SnowmanController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/SpiderController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SpiderController.java index d5ca693f2..c8c487d7f 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 @@ -92,8 +92,6 @@ public class SpiderController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -207,7 +205,15 @@ public class SpiderController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/SquidController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SquidController.java index df9332bb8..67a1d9c14 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 @@ -92,8 +92,6 @@ public class SquidController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -207,7 +205,15 @@ public class SquidController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/StriderController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/StriderController.java index cbe12a17c..17c436329 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 @@ -92,8 +92,6 @@ public class StriderController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -198,7 +196,15 @@ public class StriderController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/TraderLlamaController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/TraderLlamaController.java index fe1b30554..43769f559 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 @@ -111,8 +111,6 @@ public class TraderLlamaController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -227,7 +225,15 @@ public class TraderLlamaController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/TropicalFishController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/TropicalFishController.java index 0f37034d9..45b6bf57c 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,10 +7,10 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftTropicalFish; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_18_R2.util.EntityMoveControl; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; -import net.citizensnpcs.nms.v1_18_R2.util.EntityMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; @@ -128,8 +128,6 @@ public class TropicalFishController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -247,7 +245,15 @@ public class TropicalFishController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/TurtleController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/TurtleController.java index 52a4c8840..d0d7bc488 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,10 +7,10 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftTurtle; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_18_R2.util.EntityMoveControl; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; -import net.citizensnpcs.nms.v1_18_R2.util.EntityMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; @@ -113,8 +113,6 @@ public class TurtleController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -222,7 +220,15 @@ public class TurtleController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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 { 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 48d8b4a30..e8009d1ad 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 @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class VexController extends MobEntityController { public VexController() { @@ -78,8 +79,6 @@ public class VexController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -167,7 +166,15 @@ public class VexController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/VillagerController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/VillagerController.java index 0402643c1..7e5d5a36d 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 @@ -106,8 +106,6 @@ public class VillagerController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -250,7 +248,15 @@ public class VillagerController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/VindicatorController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/VindicatorController.java index b8c2f0088..8f0bf811d 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 @@ -93,8 +93,6 @@ public class VindicatorController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -209,7 +207,15 @@ public class VindicatorController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/WanderingTraderController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/WanderingTraderController.java index 60c3d2753..2453bd35d 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 @@ -104,8 +104,6 @@ public class WanderingTraderController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -256,7 +254,15 @@ public class WanderingTraderController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/WitchController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/WitchController.java index d2d1bf7e6..985948c0f 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 @@ -92,8 +92,6 @@ public class WitchController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -207,7 +205,15 @@ public class WitchController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/WitherController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/WitherController.java index 51ec454f5..d1fa4f523 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 @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class WitherController extends MobEntityController { public WitherController() { @@ -79,8 +80,6 @@ public class WitherController extends MobEntityController { } } - - @Override public int getAlternativeTarget(int i) { return npc == null ? super.getAlternativeTarget(i) : 0; @@ -178,7 +177,15 @@ public class WitherController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/WolfController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/WolfController.java index 6345c2f3b..09e1a7efa 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 @@ -95,8 +95,6 @@ public class WolfController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -216,7 +214,15 @@ public class WolfController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/ZoglinController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/ZoglinController.java index 7176ae997..eaff6dc81 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 @@ -94,8 +94,6 @@ public class ZoglinController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -200,7 +198,15 @@ public class ZoglinController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/ZombieController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/ZombieController.java index 44a0aa9bb..bde44e566 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 @@ -92,8 +92,6 @@ public class ZombieController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -198,7 +196,15 @@ public class ZombieController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/ZombieHuskController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/ZombieHuskController.java index 6e8b7830c..5c80c2250 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 @@ -92,8 +92,6 @@ public class ZombieHuskController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -198,7 +196,15 @@ public class ZombieHuskController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/ZombieVillagerController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/ZombieVillagerController.java index 962dfc501..f9d2eddfe 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 @@ -92,8 +92,6 @@ public class ZombieVillagerController extends MobEntityController { } } - - @Override public SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -198,7 +196,15 @@ public class ZombieVillagerController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/AreaEffectCloudController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/AreaEffectCloudController.java index bad233431..7714b4c41 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 @@ -24,6 +24,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class AreaEffectCloudController extends MobEntityController { public AreaEffectCloudController() { @@ -118,7 +119,15 @@ public class AreaEffectCloudController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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 74e8176b1..e2fa4d70f 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 @@ -251,7 +251,15 @@ public class BoatController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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 037d54c90..d72fdff1a 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 @@ -24,6 +24,7 @@ import net.minecraft.world.entity.projectile.DragonFireball; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class DragonFireballController extends MobEntityController { public DragonFireballController() { @@ -130,7 +131,15 @@ public class DragonFireballController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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 9dc2c4544..aeedab212 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 @@ -26,6 +26,7 @@ import net.minecraft.world.entity.projectile.ThrownEgg; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class EggController extends AbstractEntityController { public EggController() { @@ -135,7 +136,15 @@ public class EggController extends AbstractEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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 1bc9597f9..ae0e39ad9 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 @@ -24,6 +24,7 @@ import net.minecraft.world.entity.boss.enderdragon.EndCrystal; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class EnderCrystalController extends MobEntityController { public EnderCrystalController() { @@ -118,7 +119,15 @@ public class EnderCrystalController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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 704205fdf..b9c4a3c31 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 @@ -25,6 +25,7 @@ import net.minecraft.world.entity.projectile.ThrownEnderpearl; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class EnderPearlController extends MobEntityController { public EnderPearlController() { @@ -122,7 +123,15 @@ public class EnderPearlController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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 466819177..296b9952f 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 @@ -25,6 +25,7 @@ import net.minecraft.world.entity.projectile.EyeOfEnder; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class EnderSignalController extends MobEntityController { public EnderSignalController() { @@ -119,7 +120,15 @@ public class EnderSignalController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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 4bd2cf166..dd355581c 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 @@ -127,7 +127,15 @@ public class EvokerFangsController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/ExperienceOrbController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ExperienceOrbController.java index e105470ab..48fbad098 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 @@ -24,6 +24,7 @@ import net.minecraft.world.entity.ExperienceOrb; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class ExperienceOrbController extends MobEntityController { public ExperienceOrbController() { @@ -112,7 +113,15 @@ public class ExperienceOrbController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/FallingBlockController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/FallingBlockController.java index 8f94564bb..2f1bf61ae 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/FallingBlockController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/FallingBlockController.java @@ -145,7 +145,15 @@ public class FallingBlockController extends AbstractEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + } + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; } private static final double EPSILON = 0.001; 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 7fb9e7030..f139f9237 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 @@ -25,6 +25,7 @@ import net.minecraft.world.entity.projectile.FireworkRocketEntity; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class FireworkController extends MobEntityController { public FireworkController() { @@ -113,7 +114,15 @@ public class FireworkController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/FishingHookController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/FishingHookController.java index 42a672a7e..a14abda5d 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 @@ -33,6 +33,7 @@ import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class FishingHookController extends MobEntityController { public FishingHookController() { @@ -136,7 +137,15 @@ public class FishingHookController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/GlowItemFrameController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/GlowItemFrameController.java index bba834142..1b685bedb 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/GlowItemFrameController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/GlowItemFrameController.java @@ -26,6 +26,7 @@ import net.minecraft.world.entity.decoration.GlowItemFrame; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class GlowItemFrameController extends MobEntityController { public GlowItemFrameController() { @@ -128,7 +129,15 @@ public class GlowItemFrameController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/ItemController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ItemController.java index 4c7e38d98..f50931af4 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ItemController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ItemController.java @@ -29,6 +29,7 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class ItemController extends AbstractEntityController { public ItemController() { @@ -132,7 +133,15 @@ public class ItemController extends AbstractEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/ItemFrameController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ItemFrameController.java index f898412f1..eb316eed8 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ItemFrameController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ItemFrameController.java @@ -25,6 +25,7 @@ import net.minecraft.world.entity.decoration.ItemFrame; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class ItemFrameController extends MobEntityController { public ItemFrameController() { @@ -127,7 +128,15 @@ public class ItemFrameController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/LargeFireballController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/LargeFireballController.java index a9d35c4ee..13be6844b 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 @@ -24,6 +24,7 @@ import net.minecraft.world.entity.projectile.LargeFireball; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class LargeFireballController extends MobEntityController { public LargeFireballController() { @@ -124,7 +125,15 @@ public class LargeFireballController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/LeashController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/LeashController.java index 20a0f7017..6af095453 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 @@ -25,6 +25,7 @@ import net.minecraft.world.entity.decoration.LeashFenceKnotEntity; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class LeashController extends MobEntityController { public LeashController() { @@ -118,7 +119,15 @@ public class LeashController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/LlamaSpitController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/LlamaSpitController.java index efa2e5d3a..495a846b6 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 @@ -27,6 +27,7 @@ import net.minecraft.world.entity.projectile.LlamaSpit; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class LlamaSpitController extends AbstractEntityController { public LlamaSpitController() { @@ -132,7 +133,15 @@ public class LlamaSpitController extends AbstractEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/MarkerController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MarkerController.java index 54295649a..9c17a1b4d 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 @@ -24,6 +24,7 @@ import net.minecraft.world.entity.Marker; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class MarkerController extends MobEntityController { public MarkerController() { @@ -112,7 +113,15 @@ public class MarkerController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/MinecartChestController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartChestController.java index e3e9a56a8..df4c364c5 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 @@ -25,6 +25,7 @@ import net.minecraft.world.entity.vehicle.MinecartChest; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class MinecartChestController extends MobEntityController { public MinecartChestController() { @@ -113,7 +114,15 @@ public class MinecartChestController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/MinecartCommandController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartCommandController.java index 0402b9c5d..271f0b510 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 @@ -25,6 +25,7 @@ import net.minecraft.world.entity.vehicle.MinecartCommandBlock; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class MinecartCommandController extends MobEntityController { public MinecartCommandController() { @@ -113,7 +114,15 @@ public class MinecartCommandController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/MinecartFurnaceController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartFurnaceController.java index 14a7bf746..9f1c6a2b8 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 @@ -25,6 +25,7 @@ import net.minecraft.world.entity.vehicle.MinecartFurnace; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class MinecartFurnaceController extends MobEntityController { public MinecartFurnaceController() { @@ -113,7 +114,15 @@ public class MinecartFurnaceController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/MinecartHopperController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartHopperController.java index edc49f814..1789beafa 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 @@ -20,6 +20,7 @@ import net.minecraft.world.entity.vehicle.MinecartHopper; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class MinecartHopperController extends MobEntityController { public MinecartHopperController() { @@ -100,7 +101,15 @@ public class MinecartHopperController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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 066d21a4a..5215dd027 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 @@ -24,6 +24,7 @@ import net.minecraft.world.entity.vehicle.Minecart; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class MinecartRideableController extends MobEntityController { public MinecartRideableController() { @@ -112,7 +113,15 @@ public class MinecartRideableController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/MinecartSpawnerController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartSpawnerController.java index 525561b9d..45cbab7c7 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 @@ -20,6 +20,7 @@ import net.minecraft.world.entity.vehicle.MinecartSpawner; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class MinecartSpawnerController extends MobEntityController { public MinecartSpawnerController() { @@ -100,7 +101,15 @@ public class MinecartSpawnerController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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 c6db4a177..672190182 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 @@ -20,6 +20,7 @@ import net.minecraft.world.entity.vehicle.MinecartTNT; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class MinecartTNTController extends MobEntityController { public MinecartTNTController() { @@ -100,7 +101,15 @@ public class MinecartTNTController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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 ba835e596..b920d023e 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 @@ -24,6 +24,7 @@ import net.minecraft.world.entity.decoration.Painting; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class PaintingController extends MobEntityController { public PaintingController() { @@ -117,7 +118,15 @@ public class PaintingController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/ShulkerBulletController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ShulkerBulletController.java index 8528f4855..c3cbcc119 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 @@ -24,6 +24,7 @@ import net.minecraft.world.entity.projectile.ShulkerBullet; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class ShulkerBulletController extends MobEntityController { public ShulkerBulletController() { @@ -112,7 +113,15 @@ public class ShulkerBulletController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/SmallFireballController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/SmallFireballController.java index 18864587d..a3597a0d1 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 @@ -24,6 +24,7 @@ import net.minecraft.world.entity.projectile.SmallFireball; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class SmallFireballController extends MobEntityController { public SmallFireballController() { @@ -115,7 +116,15 @@ public class SmallFireballController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/SnowballController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/SnowballController.java index dd1229a85..5fc4c365a 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 @@ -24,6 +24,7 @@ import net.minecraft.world.entity.projectile.Snowball; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class SnowballController extends MobEntityController { public SnowballController() { @@ -112,7 +113,15 @@ public class SnowballController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/SpectralArrowController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/SpectralArrowController.java index 733c2e9b9..171b056cd 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 @@ -25,6 +25,7 @@ import net.minecraft.world.entity.projectile.SpectralArrow; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class SpectralArrowController extends MobEntityController { public SpectralArrowController() { @@ -113,7 +114,15 @@ public class SpectralArrowController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/TNTPrimedController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/TNTPrimedController.java index 3c430bad9..0ca33ce2d 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 @@ -25,6 +25,7 @@ import net.minecraft.world.entity.item.PrimedTnt; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class TNTPrimedController extends MobEntityController { public TNTPrimedController() { @@ -113,7 +114,15 @@ public class TNTPrimedController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/ThrownExpBottleController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ThrownExpBottleController.java index 19c8ca213..f269deabe 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 @@ -25,6 +25,7 @@ import net.minecraft.world.entity.projectile.ThrownExperienceBottle; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class ThrownExpBottleController extends MobEntityController { public ThrownExpBottleController() { @@ -116,7 +117,15 @@ public class ThrownExpBottleController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/ThrownPotionController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ThrownPotionController.java index a018cbb80..3644e60a7 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ThrownPotionController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ThrownPotionController.java @@ -25,6 +25,7 @@ import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class ThrownPotionController extends MobEntityController { public ThrownPotionController() { @@ -117,7 +118,15 @@ public class ThrownPotionController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/ThrownTridentController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ThrownTridentController.java index f8de0cac8..edfeb74e9 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 @@ -25,6 +25,7 @@ import net.minecraft.world.entity.projectile.ThrownTrident; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class ThrownTridentController extends MobEntityController { public ThrownTridentController() { @@ -113,7 +114,15 @@ public class ThrownTridentController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/TippedArrowController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/TippedArrowController.java index 51b968de1..8f4da33ef 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 @@ -24,6 +24,7 @@ import net.minecraft.world.entity.projectile.Arrow; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class TippedArrowController extends MobEntityController { public TippedArrowController() { @@ -112,7 +113,15 @@ public class TippedArrowController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/WitherSkullController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/WitherSkullController.java index f6766e4c2..a954555d5 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 @@ -24,6 +24,7 @@ import net.minecraft.world.entity.projectile.WitherSkull; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class WitherSkullController extends MobEntityController { public WitherSkullController() { @@ -112,7 +113,15 @@ public class WitherSkullController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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/util/NMSImpl.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/NMSImpl.java index df9ceb11f..f7af3bebb 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/NMSImpl.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/NMSImpl.java @@ -1904,18 +1904,6 @@ public class NMSImpl implements NMSBridge { return null; } - public static boolean fluidPush(NPC npc, Entity entity, Supplier func) { - if (npc == null) { - return func.get(); - } - Vec3 old = entity.getDeltaMovement().add(0, 0, 0); - boolean res = func.get(); - if (!npc.isPushableByFluids()) { - entity.setDeltaMovement(old); - } - return res; - } - public static void flyingMoveLogic(LivingEntity entity, Vec3 vec3d) { if (entity.isEffectiveAi() || entity.isControlledByLocalInstance()) { double d0 = 0.08D; diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/AllayController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/AllayController.java index a41c62a0d..0593b4798 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/AllayController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/AllayController.java @@ -236,7 +236,15 @@ public class AllayController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ArmorStandController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ArmorStandController.java index b8c422948..fe22868ee 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ArmorStandController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ArmorStandController.java @@ -144,7 +144,15 @@ public class ArmorStandController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/AxolotlController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/AxolotlController.java index 92728212a..c2729b7c7 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/AxolotlController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/AxolotlController.java @@ -108,8 +108,6 @@ public class AxolotlController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -250,7 +248,15 @@ public class AxolotlController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/BatController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/BatController.java index 378f66dc9..e75debb0c 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/BatController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/BatController.java @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class BatController extends MobEntityController { public BatController() { @@ -179,7 +180,15 @@ public class BatController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/BeeController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/BeeController.java index b54651de4..03a781ee8 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/BeeController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/BeeController.java @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class BeeController extends MobEntityController { public BeeController() { @@ -85,8 +86,6 @@ public class BeeController extends MobEntityController { } } - - @Override public SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -174,7 +173,15 @@ public class BeeController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/BlazeController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/BlazeController.java index dcbd7e130..4d55200b3 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/BlazeController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/BlazeController.java @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class BlazeController extends MobEntityController { public BlazeController() { @@ -80,8 +81,6 @@ public class BlazeController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -169,7 +168,15 @@ public class BlazeController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CamelController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CamelController.java index 55345b2c4..750d4cb56 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CamelController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CamelController.java @@ -259,7 +259,15 @@ public class CamelController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CatController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CatController.java index ae7a4512e..7635214cf 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CatController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CatController.java @@ -100,8 +100,6 @@ public class CatController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -216,7 +214,15 @@ public class CatController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CaveSpiderController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CaveSpiderController.java index 5836ef449..f8764c248 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CaveSpiderController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CaveSpiderController.java @@ -99,8 +99,6 @@ public class CaveSpiderController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -215,7 +213,15 @@ public class CaveSpiderController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ChickenController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ChickenController.java index f16c1dd41..e522d76bd 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ChickenController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ChickenController.java @@ -108,8 +108,6 @@ public class ChickenController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -224,7 +222,15 @@ public class ChickenController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CodController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CodController.java index f2d545338..b3f2c8180 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CodController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CodController.java @@ -7,10 +7,10 @@ import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_19_R3.util.EntityMoveControl; import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; -import net.citizensnpcs.nms.v1_19_R3.util.EntityMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; @@ -135,8 +135,6 @@ public class CodController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -255,7 +253,15 @@ public class CodController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CowController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CowController.java index 34154a5fa..3972c6e3c 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CowController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CowController.java @@ -105,8 +105,6 @@ public class CowController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -232,7 +230,15 @@ public class CowController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CreeperController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CreeperController.java index 3ce84ff5a..d361f1cfb 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CreeperController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CreeperController.java @@ -102,8 +102,6 @@ public class CreeperController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -235,7 +233,15 @@ public class CreeperController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/DolphinController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/DolphinController.java index 71212ab92..86915201c 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/DolphinController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/DolphinController.java @@ -101,8 +101,6 @@ public class DolphinController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -234,7 +232,15 @@ public class DolphinController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/DrownedController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/DrownedController.java index 8f9772886..278b3eb8f 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/DrownedController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/DrownedController.java @@ -99,8 +99,6 @@ public class DrownedController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -205,7 +203,15 @@ public class DrownedController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EnderDragonController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EnderDragonController.java index a0c0a76fe..ef53fd794 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EnderDragonController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EnderDragonController.java @@ -264,7 +264,15 @@ public class EnderDragonController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + } + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; } private static final MethodHandle HURT = NMS.getMethodHandle(EnderDragon.class, "c", true, List.class); diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EndermanController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EndermanController.java index 0d4db524f..165b36023 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EndermanController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EndermanController.java @@ -102,8 +102,6 @@ public class EndermanController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -226,7 +224,15 @@ public class EndermanController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EndermiteController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EndermiteController.java index e5bef88ab..0505eae05 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EndermiteController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EndermiteController.java @@ -99,8 +99,6 @@ public class EndermiteController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -214,7 +212,15 @@ public class EndermiteController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EvokerController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EvokerController.java index 228ad1c4e..611fce96e 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EvokerController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EvokerController.java @@ -93,8 +93,6 @@ public class EvokerController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -200,7 +198,15 @@ public class EvokerController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/FoxController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/FoxController.java index a4531b721..dd9677b5e 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/FoxController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/FoxController.java @@ -94,8 +94,6 @@ public class FoxController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -210,7 +208,15 @@ public class FoxController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/FrogController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/FrogController.java index 19b72f31f..68bea53ac 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/FrogController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/FrogController.java @@ -97,8 +97,6 @@ public class FrogController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -213,7 +211,15 @@ public class FrogController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GhastController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GhastController.java index 7a9c3f896..f3a2f7aa5 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GhastController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GhastController.java @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class GhastController extends MobEntityController { public GhastController() { @@ -75,8 +76,6 @@ public class GhastController extends MobEntityController { super.customServerAiStep(); } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -169,7 +168,15 @@ public class GhastController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GiantController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GiantController.java index 27c2c2823..1e2c260b2 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GiantController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GiantController.java @@ -93,8 +93,6 @@ public class GiantController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -208,7 +206,15 @@ public class GiantController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GlowSquidController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GlowSquidController.java index dfdfa6aa7..27aae980c 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GlowSquidController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GlowSquidController.java @@ -93,8 +93,6 @@ public class GlowSquidController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -208,7 +206,15 @@ public class GlowSquidController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GoatController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GoatController.java index 5feafc106..4e6ecd482 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GoatController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GoatController.java @@ -94,8 +94,6 @@ public class GoatController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -210,7 +208,15 @@ public class GoatController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GuardianController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GuardianController.java index f78cb9514..4b515a0fa 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GuardianController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GuardianController.java @@ -99,8 +99,6 @@ public class GuardianController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -215,7 +213,15 @@ public class GuardianController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GuardianElderController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GuardianElderController.java index ca594ddfe..452dfddc6 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GuardianElderController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GuardianElderController.java @@ -99,8 +99,6 @@ public class GuardianElderController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -215,7 +213,15 @@ public class GuardianElderController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HoglinController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HoglinController.java index 455491155..c76a1b1ee 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HoglinController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HoglinController.java @@ -203,7 +203,15 @@ public class HoglinController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseController.java index 2cbd26f1d..87f266d89 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseController.java @@ -127,8 +127,6 @@ public class HorseController extends MobEntityController { npc.update(); } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -256,7 +254,15 @@ public class HorseController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseDonkeyController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseDonkeyController.java index 32723702e..08051079e 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseDonkeyController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseDonkeyController.java @@ -253,7 +253,15 @@ public class HorseDonkeyController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseMuleController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseMuleController.java index 72d437918..944e9aebc 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseMuleController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseMuleController.java @@ -127,8 +127,6 @@ public class HorseMuleController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -256,7 +254,15 @@ public class HorseMuleController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseSkeletonController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseSkeletonController.java index 56c2ef956..de6bfdbe4 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseSkeletonController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseSkeletonController.java @@ -127,8 +127,6 @@ public class HorseSkeletonController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -256,7 +254,15 @@ public class HorseSkeletonController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseZombieController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseZombieController.java index c88100a9a..0e87938be 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseZombieController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseZombieController.java @@ -127,8 +127,6 @@ public class HorseZombieController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -256,7 +254,15 @@ public class HorseZombieController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/IllusionerController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/IllusionerController.java index a01d6c8d5..c1b30622d 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/IllusionerController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/IllusionerController.java @@ -93,8 +93,6 @@ public class IllusionerController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -200,7 +198,15 @@ public class IllusionerController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/IronGolemController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/IronGolemController.java index 5663ec571..d1b51aea6 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/IronGolemController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/IronGolemController.java @@ -93,8 +93,6 @@ public class IronGolemController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -208,7 +206,15 @@ public class IronGolemController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/LlamaController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/LlamaController.java index 81ec2fe21..b877e8299 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/LlamaController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/LlamaController.java @@ -253,7 +253,15 @@ public class LlamaController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/MagmaCubeController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/MagmaCubeController.java index 51c843dd1..ab218e8ed 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/MagmaCubeController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/MagmaCubeController.java @@ -7,10 +7,10 @@ import org.bukkit.craftbukkit.v1_19_R3.entity.CraftMagmaCube; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_19_R3.util.EntityMoveControl; import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; -import net.citizensnpcs.nms.v1_19_R3.util.EntityMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; @@ -94,8 +94,6 @@ public class MagmaCubeController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -231,7 +229,15 @@ public class MagmaCubeController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/MushroomCowController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/MushroomCowController.java index 266be4de2..238adf4ef 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/MushroomCowController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/MushroomCowController.java @@ -97,8 +97,6 @@ public class MushroomCowController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -219,7 +217,15 @@ public class MushroomCowController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/OcelotController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/OcelotController.java index 0470e55c6..07ec38810 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/OcelotController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/OcelotController.java @@ -100,8 +100,6 @@ public class OcelotController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -216,7 +214,15 @@ public class OcelotController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PandaController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PandaController.java index f55e8139d..5b3e37c57 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PandaController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PandaController.java @@ -94,8 +94,6 @@ public class PandaController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -210,7 +208,15 @@ public class PandaController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ParrotController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ParrotController.java index 6b95e8bf4..5a261725e 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ParrotController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ParrotController.java @@ -31,6 +31,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class ParrotController extends MobEntityController { public ParrotController() { @@ -178,7 +179,15 @@ public class ParrotController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PhantomController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PhantomController.java index 9ba973aed..dcdd015b2 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PhantomController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PhantomController.java @@ -7,10 +7,10 @@ import org.bukkit.craftbukkit.v1_19_R3.entity.CraftPhantom; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_19_R3.util.EntityMoveControl; import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; -import net.citizensnpcs.nms.v1_19_R3.util.EntityMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; @@ -118,8 +118,6 @@ public class PhantomController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -245,7 +243,15 @@ public class PhantomController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PigController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PigController.java index 7e864bc5a..a62003188 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PigController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PigController.java @@ -95,8 +95,6 @@ public class PigController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -224,7 +222,15 @@ public class PigController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PigZombieController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PigZombieController.java index db9efb1ca..ff630bd76 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PigZombieController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PigZombieController.java @@ -93,8 +93,6 @@ public class PigZombieController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -199,7 +197,15 @@ public class PigZombieController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PiglinBruteController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PiglinBruteController.java index e41a11259..bb8994c33 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PiglinBruteController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PiglinBruteController.java @@ -96,8 +96,6 @@ public class PiglinBruteController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -202,7 +200,15 @@ public class PiglinBruteController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PiglinController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PiglinController.java index acc14eea8..921bd3189 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PiglinController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PiglinController.java @@ -96,8 +96,6 @@ public class PiglinController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -202,7 +200,15 @@ public class PiglinController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PillagerController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PillagerController.java index 5a6d7fe70..8134d2748 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PillagerController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PillagerController.java @@ -94,8 +94,6 @@ public class PillagerController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -210,7 +208,15 @@ public class PillagerController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PolarBearController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PolarBearController.java index f0681a672..2e87ab6a5 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PolarBearController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PolarBearController.java @@ -29,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class PolarBearController extends MobEntityController { public PolarBearController() { @@ -76,8 +77,6 @@ public class PolarBearController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -174,7 +173,15 @@ public class PolarBearController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PufferFishController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PufferFishController.java index e699da2c2..a09ecfbab 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PufferFishController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PufferFishController.java @@ -7,10 +7,10 @@ import org.bukkit.craftbukkit.v1_19_R3.entity.CraftPufferFish; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_19_R3.util.EntityMoveControl; import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; -import net.citizensnpcs.nms.v1_19_R3.util.EntityMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.trait.versioned.PufferFishTrait; @@ -130,8 +130,6 @@ public class PufferFishController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -270,7 +268,15 @@ public class PufferFishController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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) { diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/RabbitController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/RabbitController.java index 3f95818eb..0c1a87c03 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/RabbitController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/RabbitController.java @@ -98,8 +98,6 @@ public class RabbitController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -230,7 +228,15 @@ public class RabbitController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/RavagerController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/RavagerController.java index 5c93c760f..6a3cf589f 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/RavagerController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/RavagerController.java @@ -94,8 +94,6 @@ public class RavagerController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -215,7 +213,15 @@ public class RavagerController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SalmonController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SalmonController.java index 67b683404..97be48a5e 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SalmonController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SalmonController.java @@ -7,10 +7,10 @@ import org.bukkit.craftbukkit.v1_19_R3.entity.CraftSalmon; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_19_R3.util.EntityMoveControl; import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; -import net.citizensnpcs.nms.v1_19_R3.util.EntityMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; @@ -127,8 +127,6 @@ public class SalmonController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -246,7 +244,15 @@ public class SalmonController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SheepController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SheepController.java index 7ff5f1049..9080c694c 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SheepController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SheepController.java @@ -94,8 +94,6 @@ public class SheepController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -209,7 +207,15 @@ public class SheepController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ShulkerController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ShulkerController.java index c2c2a418e..d36a2c142 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ShulkerController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ShulkerController.java @@ -97,8 +97,6 @@ public class ShulkerController extends MobEntityController { return new BodyRotationControl(this); } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -225,7 +223,15 @@ public class ShulkerController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SilverfishController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SilverfishController.java index dfca722ef..1ba031c5a 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SilverfishController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SilverfishController.java @@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R3.entity.CraftSilverfish; import org.bukkit.util.Vector; - import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; @@ -94,8 +93,6 @@ public class SilverfishController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -209,7 +206,15 @@ public class SilverfishController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SkeletonController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SkeletonController.java index fd9decebf..41ddcc731 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SkeletonController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SkeletonController.java @@ -93,8 +93,6 @@ public class SkeletonController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -208,7 +206,15 @@ public class SkeletonController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SkeletonStrayController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SkeletonStrayController.java index acea925f9..c08661157 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SkeletonStrayController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SkeletonStrayController.java @@ -93,8 +93,6 @@ public class SkeletonStrayController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -208,7 +206,15 @@ public class SkeletonStrayController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SkeletonWitherController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SkeletonWitherController.java index c6fafbbd7..71b039c5d 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SkeletonWitherController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SkeletonWitherController.java @@ -93,8 +93,6 @@ public class SkeletonWitherController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -208,7 +206,15 @@ public class SkeletonWitherController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SlimeController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SlimeController.java index 66b1814e2..08cfb719f 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SlimeController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SlimeController.java @@ -7,10 +7,10 @@ import org.bukkit.craftbukkit.v1_19_R3.entity.CraftSlime; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_19_R3.util.EntityMoveControl; import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; -import net.citizensnpcs.nms.v1_19_R3.util.EntityMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; @@ -94,8 +94,6 @@ public class SlimeController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -232,7 +230,15 @@ public class SlimeController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SnifferController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SnifferController.java index 533454779..0df69c33f 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SnifferController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SnifferController.java @@ -224,7 +224,15 @@ public class SnifferController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SnowmanController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SnowmanController.java index 55551bf64..e1d48ecbe 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SnowmanController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SnowmanController.java @@ -93,8 +93,6 @@ public class SnowmanController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -208,7 +206,15 @@ public class SnowmanController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SpiderController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SpiderController.java index a29c476da..d8c5d26f6 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SpiderController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SpiderController.java @@ -93,8 +93,6 @@ public class SpiderController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -208,7 +206,15 @@ public class SpiderController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SquidController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SquidController.java index ba5b5a711..9eb7a0e44 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SquidController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SquidController.java @@ -93,8 +93,6 @@ public class SquidController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -208,7 +206,15 @@ public class SquidController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/StriderController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/StriderController.java index 08e47f6b4..46d1e7f4c 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/StriderController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/StriderController.java @@ -93,8 +93,6 @@ public class StriderController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -199,7 +197,15 @@ public class StriderController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/TadpoleController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/TadpoleController.java index a30ddbdef..afde37538 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/TadpoleController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/TadpoleController.java @@ -7,10 +7,10 @@ import org.bukkit.craftbukkit.v1_19_R3.entity.CraftTadpole; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_19_R3.util.EntityMoveControl; import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; -import net.citizensnpcs.nms.v1_19_R3.util.EntityMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; @@ -127,8 +127,6 @@ public class TadpoleController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -246,7 +244,15 @@ public class TadpoleController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/TraderLlamaController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/TraderLlamaController.java index 29d7a5f64..b5ec1919d 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/TraderLlamaController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/TraderLlamaController.java @@ -112,8 +112,6 @@ public class TraderLlamaController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -228,7 +226,15 @@ public class TraderLlamaController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/TropicalFishController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/TropicalFishController.java index cf608ded8..b020022ea 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/TropicalFishController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/TropicalFishController.java @@ -7,10 +7,10 @@ import org.bukkit.craftbukkit.v1_19_R3.entity.CraftTropicalFish; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_19_R3.util.EntityMoveControl; import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; -import net.citizensnpcs.nms.v1_19_R3.util.EntityMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; @@ -129,8 +129,6 @@ public class TropicalFishController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -248,7 +246,15 @@ public class TropicalFishController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/TurtleController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/TurtleController.java index 62f1fc4c2..a25742f5d 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/TurtleController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/TurtleController.java @@ -7,10 +7,10 @@ import org.bukkit.craftbukkit.v1_19_R3.entity.CraftTurtle; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_19_R3.util.EntityMoveControl; import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; -import net.citizensnpcs.nms.v1_19_R3.util.EntityMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; @@ -114,8 +114,6 @@ public class TurtleController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -223,7 +221,15 @@ public class TurtleController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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 { diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/VexController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/VexController.java index 5f364c9db..6c6091f7c 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/VexController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/VexController.java @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class VexController extends MobEntityController { public VexController() { @@ -78,8 +79,6 @@ public class VexController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -167,7 +166,15 @@ public class VexController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/VillagerController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/VillagerController.java index 3727b4871..43c1ee329 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/VillagerController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/VillagerController.java @@ -251,7 +251,15 @@ public class VillagerController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/VindicatorController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/VindicatorController.java index cbc769b52..abe47de2f 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/VindicatorController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/VindicatorController.java @@ -94,8 +94,6 @@ public class VindicatorController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -210,7 +208,15 @@ public class VindicatorController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WanderingTraderController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WanderingTraderController.java index edf0d6c71..baedc8b0d 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WanderingTraderController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WanderingTraderController.java @@ -105,8 +105,6 @@ public class WanderingTraderController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -257,7 +255,15 @@ public class WanderingTraderController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WardenController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WardenController.java index 8ee52e6d3..c708c6408 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WardenController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WardenController.java @@ -205,7 +205,15 @@ public class WardenController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WitchController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WitchController.java index c355189f4..7539a585f 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WitchController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WitchController.java @@ -93,8 +93,6 @@ public class WitchController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -208,7 +206,15 @@ public class WitchController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WitherController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WitherController.java index dcc506a77..f0d37aa43 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WitherController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WitherController.java @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class WitherController extends MobEntityController { public WitherController() { @@ -79,8 +80,6 @@ public class WitherController extends MobEntityController { } } - - @Override public int getAlternativeTarget(int i) { return npc == null ? super.getAlternativeTarget(i) : 0; @@ -178,7 +177,15 @@ public class WitherController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WolfController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WolfController.java index e809812dd..39810a665 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WolfController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WolfController.java @@ -96,8 +96,6 @@ public class WolfController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -217,7 +215,15 @@ public class WolfController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ZoglinController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ZoglinController.java index dde99c8b3..f8a15dc00 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ZoglinController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ZoglinController.java @@ -95,8 +95,6 @@ public class ZoglinController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -201,7 +199,15 @@ public class ZoglinController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ZombieController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ZombieController.java index 348bad320..1f475c6ce 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ZombieController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ZombieController.java @@ -93,8 +93,6 @@ public class ZombieController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -199,7 +197,15 @@ public class ZombieController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ZombieHuskController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ZombieHuskController.java index abddaf495..c01e51b86 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ZombieHuskController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ZombieHuskController.java @@ -93,8 +93,6 @@ public class ZombieHuskController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -199,7 +197,15 @@ public class ZombieHuskController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ZombieVillagerController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ZombieVillagerController.java index ebb7bbde2..e50d57cc1 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ZombieVillagerController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ZombieVillagerController.java @@ -93,8 +93,6 @@ public class ZombieVillagerController extends MobEntityController { } } - - @Override public SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -200,7 +198,15 @@ public class ZombieVillagerController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/AreaEffectCloudController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/AreaEffectCloudController.java index f3479c73e..5d4ee62ad 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/AreaEffectCloudController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/AreaEffectCloudController.java @@ -24,6 +24,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class AreaEffectCloudController extends MobEntityController { public AreaEffectCloudController() { @@ -118,7 +119,15 @@ public class AreaEffectCloudController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/BlockDisplayController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/BlockDisplayController.java index 755581c89..230c75992 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/BlockDisplayController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/BlockDisplayController.java @@ -24,6 +24,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class BlockDisplayController extends MobEntityController { public BlockDisplayController() { @@ -117,7 +118,15 @@ public class BlockDisplayController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/BoatController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/BoatController.java index f68f74dbe..b024f442c 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/BoatController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/BoatController.java @@ -252,7 +252,15 @@ public class BoatController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ChestBoatController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ChestBoatController.java index 7db0d712f..dc14ed9df 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ChestBoatController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ChestBoatController.java @@ -253,7 +253,15 @@ public class ChestBoatController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/DragonFireballController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/DragonFireballController.java index be213fd80..112435da6 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/DragonFireballController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/DragonFireballController.java @@ -24,6 +24,7 @@ import net.minecraft.world.entity.projectile.DragonFireball; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class DragonFireballController extends MobEntityController { public DragonFireballController() { @@ -130,7 +131,15 @@ public class DragonFireballController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EggController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EggController.java index 39a750135..7af296542 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EggController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EggController.java @@ -26,6 +26,7 @@ import net.minecraft.world.entity.projectile.ThrownEgg; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class EggController extends AbstractEntityController { public EggController() { @@ -135,7 +136,15 @@ public class EggController extends AbstractEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EnderCrystalController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EnderCrystalController.java index c5e644dcc..ed0f3ef1c 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EnderCrystalController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EnderCrystalController.java @@ -24,6 +24,7 @@ import net.minecraft.world.entity.boss.enderdragon.EndCrystal; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class EnderCrystalController extends MobEntityController { public EnderCrystalController() { @@ -118,7 +119,15 @@ public class EnderCrystalController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EnderPearlController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EnderPearlController.java index 34ea023c9..a2abef946 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EnderPearlController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EnderPearlController.java @@ -25,6 +25,7 @@ import net.minecraft.world.entity.projectile.ThrownEnderpearl; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class EnderPearlController extends MobEntityController { public EnderPearlController() { @@ -122,7 +123,15 @@ public class EnderPearlController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EnderSignalController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EnderSignalController.java index 19e29d8e2..eac76c4ca 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EnderSignalController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EnderSignalController.java @@ -25,6 +25,7 @@ import net.minecraft.world.entity.projectile.EyeOfEnder; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class EnderSignalController extends MobEntityController { public EnderSignalController() { @@ -119,7 +120,15 @@ public class EnderSignalController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EvokerFangsController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EvokerFangsController.java index 7bd9e7693..810cee7e5 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EvokerFangsController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EvokerFangsController.java @@ -127,7 +127,15 @@ public class EvokerFangsController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ExperienceOrbController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ExperienceOrbController.java index a7ff2813e..f58a8bfd7 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ExperienceOrbController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ExperienceOrbController.java @@ -24,6 +24,7 @@ import net.minecraft.world.entity.ExperienceOrb; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class ExperienceOrbController extends MobEntityController { public ExperienceOrbController() { @@ -112,7 +113,15 @@ public class ExperienceOrbController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/FallingBlockController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/FallingBlockController.java index e69bde449..4e7f54d65 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/FallingBlockController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/FallingBlockController.java @@ -144,7 +144,15 @@ public class FallingBlockController extends AbstractEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + } + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; } private static final double EPSILON = 0.001; diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/FireworkController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/FireworkController.java index b61a9222f..7754b6525 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/FireworkController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/FireworkController.java @@ -25,6 +25,7 @@ import net.minecraft.world.entity.projectile.FireworkRocketEntity; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class FireworkController extends MobEntityController { public FireworkController() { @@ -113,7 +114,15 @@ public class FireworkController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/FishingHookController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/FishingHookController.java index f2329c1ed..35f8b6339 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/FishingHookController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/FishingHookController.java @@ -34,6 +34,7 @@ import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class FishingHookController extends MobEntityController { public FishingHookController() { @@ -147,7 +148,15 @@ public class FishingHookController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/GlowItemFrameController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/GlowItemFrameController.java index 4979c8284..10e7690d6 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/GlowItemFrameController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/GlowItemFrameController.java @@ -27,6 +27,7 @@ import net.minecraft.world.entity.decoration.GlowItemFrame; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class GlowItemFrameController extends MobEntityController { public GlowItemFrameController() { @@ -129,7 +130,15 @@ public class GlowItemFrameController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/InteractionController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/InteractionController.java index 4f860d621..cd0a0579a 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/InteractionController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/InteractionController.java @@ -24,6 +24,7 @@ import net.minecraft.world.entity.Interaction; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class InteractionController extends MobEntityController { public InteractionController() { @@ -112,7 +113,15 @@ public class InteractionController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ItemController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ItemController.java index 00d2c6121..3ecbdb50a 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ItemController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ItemController.java @@ -29,6 +29,7 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class ItemController extends AbstractEntityController { public ItemController() { @@ -132,7 +133,15 @@ public class ItemController extends AbstractEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ItemDisplayController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ItemDisplayController.java index 0a3cd97dd..29a8ac1a7 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ItemDisplayController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ItemDisplayController.java @@ -27,6 +27,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class ItemDisplayController extends MobEntityController { public ItemDisplayController() { @@ -124,7 +125,15 @@ public class ItemDisplayController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ItemFrameController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ItemFrameController.java index f0ee60a59..0ae629ed2 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ItemFrameController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ItemFrameController.java @@ -26,6 +26,7 @@ import net.minecraft.world.entity.decoration.ItemFrame; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class ItemFrameController extends MobEntityController { public ItemFrameController() { @@ -128,7 +129,15 @@ public class ItemFrameController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/LargeFireballController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/LargeFireballController.java index 67cb78d74..56c190e33 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/LargeFireballController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/LargeFireballController.java @@ -24,6 +24,7 @@ import net.minecraft.world.entity.projectile.LargeFireball; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class LargeFireballController extends MobEntityController { public LargeFireballController() { @@ -124,7 +125,15 @@ public class LargeFireballController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/LeashController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/LeashController.java index 37d9b790c..2a442c355 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/LeashController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/LeashController.java @@ -25,6 +25,7 @@ import net.minecraft.world.entity.decoration.LeashFenceKnotEntity; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class LeashController extends MobEntityController { public LeashController() { @@ -118,7 +119,15 @@ public class LeashController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/LlamaSpitController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/LlamaSpitController.java index a65442c43..bb43ee324 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/LlamaSpitController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/LlamaSpitController.java @@ -27,6 +27,7 @@ import net.minecraft.world.entity.projectile.LlamaSpit; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class LlamaSpitController extends AbstractEntityController { public LlamaSpitController() { @@ -132,7 +133,15 @@ public class LlamaSpitController extends AbstractEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MarkerController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MarkerController.java index 185ca07de..622582cea 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MarkerController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MarkerController.java @@ -24,6 +24,7 @@ import net.minecraft.world.entity.Marker; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class MarkerController extends MobEntityController { public MarkerController() { @@ -112,7 +113,15 @@ public class MarkerController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartChestController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartChestController.java index f65b947e4..3c591aa82 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartChestController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartChestController.java @@ -25,6 +25,7 @@ import net.minecraft.world.entity.vehicle.MinecartChest; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class MinecartChestController extends MobEntityController { public MinecartChestController() { @@ -113,7 +114,15 @@ public class MinecartChestController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartCommandController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartCommandController.java index 25ad84b22..05922b580 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartCommandController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartCommandController.java @@ -25,6 +25,7 @@ import net.minecraft.world.entity.vehicle.MinecartCommandBlock; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class MinecartCommandController extends MobEntityController { public MinecartCommandController() { @@ -113,7 +114,15 @@ public class MinecartCommandController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartFurnaceController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartFurnaceController.java index 900f24ba1..1b7e8d288 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartFurnaceController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartFurnaceController.java @@ -25,6 +25,7 @@ import net.minecraft.world.entity.vehicle.MinecartFurnace; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class MinecartFurnaceController extends MobEntityController { public MinecartFurnaceController() { @@ -113,7 +114,15 @@ public class MinecartFurnaceController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartHopperController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartHopperController.java index 5d6322276..9201e127e 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartHopperController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartHopperController.java @@ -20,6 +20,7 @@ import net.minecraft.world.entity.vehicle.MinecartHopper; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class MinecartHopperController extends MobEntityController { public MinecartHopperController() { @@ -100,7 +101,15 @@ public class MinecartHopperController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartRideableController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartRideableController.java index f04c9d8aa..c00999709 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartRideableController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartRideableController.java @@ -24,6 +24,7 @@ import net.minecraft.world.entity.vehicle.Minecart; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class MinecartRideableController extends MobEntityController { public MinecartRideableController() { @@ -112,7 +113,15 @@ public class MinecartRideableController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartSpawnerController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartSpawnerController.java index 6a80bc064..207eadb5a 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartSpawnerController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartSpawnerController.java @@ -20,6 +20,7 @@ import net.minecraft.world.entity.vehicle.MinecartSpawner; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class MinecartSpawnerController extends MobEntityController { public MinecartSpawnerController() { @@ -100,7 +101,15 @@ public class MinecartSpawnerController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartTNTController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartTNTController.java index 5142cf5a6..6c2e10b0b 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartTNTController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartTNTController.java @@ -20,6 +20,7 @@ import net.minecraft.world.entity.vehicle.MinecartTNT; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class MinecartTNTController extends MobEntityController { public MinecartTNTController() { @@ -100,7 +101,15 @@ public class MinecartTNTController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/PaintingController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/PaintingController.java index 9fd9c60c7..421a3bac2 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/PaintingController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/PaintingController.java @@ -24,6 +24,7 @@ import net.minecraft.world.entity.decoration.Painting; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class PaintingController extends MobEntityController { public PaintingController() { @@ -117,7 +118,15 @@ public class PaintingController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ShulkerBulletController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ShulkerBulletController.java index f6e90bf8d..ac98128cb 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ShulkerBulletController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ShulkerBulletController.java @@ -24,6 +24,7 @@ import net.minecraft.world.entity.projectile.ShulkerBullet; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class ShulkerBulletController extends MobEntityController { public ShulkerBulletController() { @@ -112,7 +113,15 @@ public class ShulkerBulletController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/SmallFireballController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/SmallFireballController.java index aa8cded7a..64f1a297f 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/SmallFireballController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/SmallFireballController.java @@ -24,6 +24,7 @@ import net.minecraft.world.entity.projectile.SmallFireball; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class SmallFireballController extends MobEntityController { public SmallFireballController() { @@ -115,7 +116,15 @@ public class SmallFireballController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/SnowballController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/SnowballController.java index d0ca2786a..0ccef6902 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/SnowballController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/SnowballController.java @@ -24,6 +24,7 @@ import net.minecraft.world.entity.projectile.Snowball; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class SnowballController extends MobEntityController { public SnowballController() { @@ -112,7 +113,15 @@ public class SnowballController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/SpectralArrowController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/SpectralArrowController.java index fc3908782..f4bff5e23 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/SpectralArrowController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/SpectralArrowController.java @@ -25,6 +25,7 @@ import net.minecraft.world.entity.projectile.SpectralArrow; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class SpectralArrowController extends MobEntityController { public SpectralArrowController() { @@ -113,7 +114,15 @@ public class SpectralArrowController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/TNTPrimedController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/TNTPrimedController.java index 7bb3fc166..6708e749e 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/TNTPrimedController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/TNTPrimedController.java @@ -25,6 +25,7 @@ import net.minecraft.world.entity.item.PrimedTnt; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class TNTPrimedController extends MobEntityController { public TNTPrimedController() { @@ -113,7 +114,15 @@ public class TNTPrimedController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/TextDisplayController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/TextDisplayController.java index 2fba7bffd..7872931ee 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/TextDisplayController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/TextDisplayController.java @@ -24,6 +24,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class TextDisplayController extends MobEntityController { public TextDisplayController() { @@ -111,7 +112,15 @@ public class TextDisplayController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ThrownExpBottleController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ThrownExpBottleController.java index 03a09bffa..fbaa0c6bd 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ThrownExpBottleController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ThrownExpBottleController.java @@ -25,6 +25,7 @@ import net.minecraft.world.entity.projectile.ThrownExperienceBottle; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class ThrownExpBottleController extends MobEntityController { public ThrownExpBottleController() { @@ -116,7 +117,15 @@ public class ThrownExpBottleController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ThrownPotionController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ThrownPotionController.java index 4a49d6684..c7839fc0b 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ThrownPotionController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ThrownPotionController.java @@ -25,6 +25,7 @@ import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class ThrownPotionController extends MobEntityController { public ThrownPotionController() { @@ -117,7 +118,15 @@ public class ThrownPotionController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ThrownTridentController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ThrownTridentController.java index e3e6cc723..f427ed435 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ThrownTridentController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ThrownTridentController.java @@ -25,6 +25,7 @@ import net.minecraft.world.entity.projectile.ThrownTrident; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class ThrownTridentController extends MobEntityController { public ThrownTridentController() { @@ -113,7 +114,15 @@ public class ThrownTridentController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/TippedArrowController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/TippedArrowController.java index 145ee1a50..67894e344 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/TippedArrowController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/TippedArrowController.java @@ -24,6 +24,7 @@ import net.minecraft.world.entity.projectile.Arrow; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class TippedArrowController extends MobEntityController { public TippedArrowController() { @@ -112,7 +113,15 @@ public class TippedArrowController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/WitherSkullController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/WitherSkullController.java index bba145bc5..eb8ca7ddc 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/WitherSkullController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/WitherSkullController.java @@ -24,6 +24,7 @@ import net.minecraft.world.entity.projectile.WitherSkull; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class WitherSkullController extends MobEntityController { public WitherSkullController() { @@ -112,7 +113,15 @@ public class WitherSkullController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/NMSImpl.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/NMSImpl.java index e97e7a62d..dc456c947 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/NMSImpl.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/NMSImpl.java @@ -1,3 +1,4 @@ + package net.citizensnpcs.nms.v1_19_R3.util; import java.lang.invoke.MethodHandle; @@ -2028,18 +2029,6 @@ public class NMSImpl implements NMSBridge { return null; } - public static boolean fluidPush(NPC npc, Entity entity, Supplier func) { - if (npc == null) { - return func.get(); - } - Vec3 old = entity.getDeltaMovement().add(0, 0, 0); - boolean res = func.get(); - if (!npc.isPushableByFluids()) { - entity.setDeltaMovement(old); - } - return res; - } - public static void flyingMoveLogic(LivingEntity entity, Vec3 vec3d) { if (entity.isEffectiveAi() || entity.isControlledByLocalInstance()) { double d0 = 0.08D; diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/AllayController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/AllayController.java index 6613aa6bb..1e38a8fd2 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/AllayController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/AllayController.java @@ -236,7 +236,15 @@ public class AllayController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ArmorStandController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ArmorStandController.java index eebb2cf4c..47b1a2d0a 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ArmorStandController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ArmorStandController.java @@ -10,9 +10,9 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_20_R1.util.MobAI; +import net.citizensnpcs.nms.v1_20_R1.util.MobAI.ForwardingMobAI; import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl; -import net.citizensnpcs.nms.v1_20_R1.util.MobAI.ForwardingMobAI; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; @@ -144,7 +144,15 @@ public class ArmorStandController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/AxolotlController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/AxolotlController.java index cb601e037..e598bd671 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/AxolotlController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/AxolotlController.java @@ -108,8 +108,6 @@ public class AxolotlController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -250,7 +248,15 @@ public class AxolotlController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/BatController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/BatController.java index ad1c180c6..c51c1504f 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/BatController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/BatController.java @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class BatController extends MobEntityController { public BatController() { @@ -179,7 +180,15 @@ public class BatController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/BeeController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/BeeController.java index 22c17b0bd..297b42c60 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/BeeController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/BeeController.java @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class BeeController extends MobEntityController { public BeeController() { @@ -85,8 +86,6 @@ public class BeeController extends MobEntityController { } } - - @Override public SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -174,7 +173,15 @@ public class BeeController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/BlazeController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/BlazeController.java index 546275207..69ed9c9b3 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/BlazeController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/BlazeController.java @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class BlazeController extends MobEntityController { public BlazeController() { @@ -80,8 +81,6 @@ public class BlazeController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -169,7 +168,15 @@ public class BlazeController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/CamelController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/CamelController.java index 6c1121c37..bbd72efd9 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/CamelController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/CamelController.java @@ -259,7 +259,15 @@ public class CamelController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/CatController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/CatController.java index 5ea7dbbc2..a86c309d8 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/CatController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/CatController.java @@ -100,8 +100,6 @@ public class CatController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -216,7 +214,15 @@ public class CatController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/CaveSpiderController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/CaveSpiderController.java index 188a3e757..4d0c48293 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/CaveSpiderController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/CaveSpiderController.java @@ -99,8 +99,6 @@ public class CaveSpiderController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -215,7 +213,15 @@ public class CaveSpiderController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ChickenController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ChickenController.java index a263ce207..9b14ca49b 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ChickenController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ChickenController.java @@ -108,8 +108,6 @@ public class ChickenController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -224,7 +222,15 @@ public class ChickenController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/CodController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/CodController.java index bb07a854c..e67bb7284 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/CodController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/CodController.java @@ -135,8 +135,6 @@ public class CodController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -255,7 +253,15 @@ public class CodController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/CowController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/CowController.java index 02a8713f7..956c7b461 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/CowController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/CowController.java @@ -105,8 +105,6 @@ public class CowController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -232,7 +230,15 @@ public class CowController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/CreeperController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/CreeperController.java index 62201cfcd..2faa5fbb0 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/CreeperController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/CreeperController.java @@ -102,8 +102,6 @@ public class CreeperController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -235,7 +233,15 @@ public class CreeperController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/DolphinController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/DolphinController.java index e29d7aea9..75c3cf340 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/DolphinController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/DolphinController.java @@ -101,8 +101,6 @@ public class DolphinController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -234,7 +232,15 @@ public class DolphinController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/DrownedController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/DrownedController.java index f4ab376dd..720ca2c0c 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/DrownedController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/DrownedController.java @@ -99,8 +99,6 @@ public class DrownedController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -205,7 +203,15 @@ public class DrownedController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/EnderDragonController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/EnderDragonController.java index 2038b4adc..26608d555 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/EnderDragonController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/EnderDragonController.java @@ -264,7 +264,15 @@ public class EnderDragonController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + } + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; } private static final MethodHandle HURT = NMS.getMethodHandle(EnderDragon.class, "c", true, List.class); diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/EndermanController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/EndermanController.java index d9e23cc66..836b056c3 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/EndermanController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/EndermanController.java @@ -102,8 +102,6 @@ public class EndermanController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -226,7 +224,15 @@ public class EndermanController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/EndermiteController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/EndermiteController.java index 0149f1f19..19c971d31 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/EndermiteController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/EndermiteController.java @@ -99,8 +99,6 @@ public class EndermiteController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -214,7 +212,15 @@ public class EndermiteController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/EvokerController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/EvokerController.java index 82a02678c..11f383a72 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/EvokerController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/EvokerController.java @@ -93,8 +93,6 @@ public class EvokerController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -200,7 +198,15 @@ public class EvokerController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/FoxController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/FoxController.java index 3869ead2b..d7aa5e15a 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/FoxController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/FoxController.java @@ -94,8 +94,6 @@ public class FoxController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -210,7 +208,15 @@ public class FoxController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/FrogController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/FrogController.java index ff8293f1f..1a88bbf65 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/FrogController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/FrogController.java @@ -97,8 +97,6 @@ public class FrogController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -213,7 +211,15 @@ public class FrogController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/GhastController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/GhastController.java index 5e5d1dcb2..62979018b 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/GhastController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/GhastController.java @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class GhastController extends MobEntityController { public GhastController() { @@ -75,8 +76,6 @@ public class GhastController extends MobEntityController { super.customServerAiStep(); } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -169,7 +168,15 @@ public class GhastController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/GiantController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/GiantController.java index 706fae85a..24b478062 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/GiantController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/GiantController.java @@ -93,8 +93,6 @@ public class GiantController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -208,7 +206,15 @@ public class GiantController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/GlowSquidController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/GlowSquidController.java index 0b131084a..1503694a6 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/GlowSquidController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/GlowSquidController.java @@ -93,8 +93,6 @@ public class GlowSquidController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -208,7 +206,15 @@ public class GlowSquidController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/GoatController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/GoatController.java index 958223c3e..0357907ec 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/GoatController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/GoatController.java @@ -94,8 +94,6 @@ public class GoatController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -210,7 +208,15 @@ public class GoatController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/GuardianController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/GuardianController.java index b70d0b473..f49317987 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/GuardianController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/GuardianController.java @@ -99,8 +99,6 @@ public class GuardianController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -215,7 +213,15 @@ public class GuardianController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/GuardianElderController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/GuardianElderController.java index 60eeea193..787240fbc 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/GuardianElderController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/GuardianElderController.java @@ -99,8 +99,6 @@ public class GuardianElderController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -215,7 +213,15 @@ public class GuardianElderController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HoglinController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HoglinController.java index 9812dd068..6da957667 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HoglinController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HoglinController.java @@ -203,7 +203,15 @@ public class HoglinController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HorseController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HorseController.java index c20c11cec..405d0e772 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HorseController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HorseController.java @@ -127,8 +127,6 @@ public class HorseController extends MobEntityController { npc.update(); } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -256,7 +254,15 @@ public class HorseController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HorseDonkeyController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HorseDonkeyController.java index edeef6e44..8da349eaf 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HorseDonkeyController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HorseDonkeyController.java @@ -127,8 +127,6 @@ public class HorseDonkeyController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -256,7 +254,15 @@ public class HorseDonkeyController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HorseMuleController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HorseMuleController.java index 1111c52d2..e5ab9ca95 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HorseMuleController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HorseMuleController.java @@ -253,7 +253,15 @@ public class HorseMuleController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HorseSkeletonController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HorseSkeletonController.java index 2f6e65a1a..97d1c64dc 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HorseSkeletonController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HorseSkeletonController.java @@ -253,7 +253,15 @@ public class HorseSkeletonController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HorseZombieController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HorseZombieController.java index 731ab2711..2c0ff2ba2 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HorseZombieController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HorseZombieController.java @@ -127,8 +127,6 @@ public class HorseZombieController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -256,7 +254,15 @@ public class HorseZombieController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/IllusionerController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/IllusionerController.java index 856c56624..f56d9b7af 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/IllusionerController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/IllusionerController.java @@ -93,8 +93,6 @@ public class IllusionerController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -200,7 +198,15 @@ public class IllusionerController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/IronGolemController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/IronGolemController.java index 55d16d68d..6ec8ef0e0 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/IronGolemController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/IronGolemController.java @@ -93,8 +93,6 @@ public class IronGolemController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -208,7 +206,15 @@ public class IronGolemController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/LlamaController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/LlamaController.java index ac14643a4..533b95b81 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/LlamaController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/LlamaController.java @@ -253,7 +253,15 @@ public class LlamaController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/MagmaCubeController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/MagmaCubeController.java index c7cbede63..5c3a3caba 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/MagmaCubeController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/MagmaCubeController.java @@ -94,8 +94,6 @@ public class MagmaCubeController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -231,7 +229,15 @@ public class MagmaCubeController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/MushroomCowController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/MushroomCowController.java index c9f68ae54..c041e8d02 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/MushroomCowController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/MushroomCowController.java @@ -97,8 +97,6 @@ public class MushroomCowController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -219,7 +217,15 @@ public class MushroomCowController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/OcelotController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/OcelotController.java index 89ebe0ddb..2931ae8f5 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/OcelotController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/OcelotController.java @@ -100,8 +100,6 @@ public class OcelotController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -216,7 +214,15 @@ public class OcelotController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PandaController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PandaController.java index 5d1a45cce..ffc23887d 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PandaController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PandaController.java @@ -94,8 +94,6 @@ public class PandaController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -210,7 +208,15 @@ public class PandaController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ParrotController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ParrotController.java index 43363090d..fe0a50259 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ParrotController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ParrotController.java @@ -31,6 +31,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class ParrotController extends MobEntityController { public ParrotController() { @@ -178,7 +179,15 @@ public class ParrotController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PhantomController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PhantomController.java index 12dac8ccc..41d5d4c96 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PhantomController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PhantomController.java @@ -118,8 +118,6 @@ public class PhantomController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -245,7 +243,15 @@ public class PhantomController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PigController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PigController.java index 877285346..6efecea94 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PigController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PigController.java @@ -95,8 +95,6 @@ public class PigController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -224,7 +222,15 @@ public class PigController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PigZombieController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PigZombieController.java index 9718d6915..9d44fa6a8 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PigZombieController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PigZombieController.java @@ -93,8 +93,6 @@ public class PigZombieController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -199,7 +197,15 @@ public class PigZombieController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PiglinBruteController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PiglinBruteController.java index 0c7a22145..e59c00713 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PiglinBruteController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PiglinBruteController.java @@ -96,8 +96,6 @@ public class PiglinBruteController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -202,7 +200,15 @@ public class PiglinBruteController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PiglinController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PiglinController.java index 0bbf3a27d..9729ed244 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PiglinController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PiglinController.java @@ -96,8 +96,6 @@ public class PiglinController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -202,7 +200,15 @@ public class PiglinController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PillagerController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PillagerController.java index 14ec3d035..d7d3bb3be 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PillagerController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PillagerController.java @@ -94,8 +94,6 @@ public class PillagerController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -210,7 +208,15 @@ public class PillagerController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PolarBearController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PolarBearController.java index b786878eb..a2c0d04f0 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PolarBearController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PolarBearController.java @@ -29,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class PolarBearController extends MobEntityController { public PolarBearController() { @@ -76,8 +77,6 @@ public class PolarBearController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -174,7 +173,15 @@ public class PolarBearController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PufferFishController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PufferFishController.java index f30106f53..29a7c7438 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PufferFishController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PufferFishController.java @@ -130,8 +130,6 @@ public class PufferFishController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -270,7 +268,15 @@ public class PufferFishController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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) { diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/RabbitController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/RabbitController.java index 25724e034..3fab9b439 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/RabbitController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/RabbitController.java @@ -98,8 +98,6 @@ public class RabbitController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -230,7 +228,15 @@ public class RabbitController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/RavagerController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/RavagerController.java index 1ec7c7372..72cb59ce0 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/RavagerController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/RavagerController.java @@ -94,8 +94,6 @@ public class RavagerController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -215,7 +213,15 @@ public class RavagerController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SalmonController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SalmonController.java index c38243a83..e27fc64d3 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SalmonController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SalmonController.java @@ -127,8 +127,6 @@ public class SalmonController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -246,7 +244,15 @@ public class SalmonController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SheepController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SheepController.java index cb7c212d1..4e3af7ccc 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SheepController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SheepController.java @@ -94,8 +94,6 @@ public class SheepController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -209,7 +207,15 @@ public class SheepController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ShulkerController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ShulkerController.java index c707e15e1..ffda08650 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ShulkerController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ShulkerController.java @@ -97,8 +97,6 @@ public class ShulkerController extends MobEntityController { return new BodyRotationControl(this); } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -225,7 +223,15 @@ public class ShulkerController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SilverfishController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SilverfishController.java index b1b1b3551..7d63e4876 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SilverfishController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SilverfishController.java @@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_20_R1.entity.CraftSilverfish; import org.bukkit.util.Vector; - import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder; import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox; @@ -94,8 +93,6 @@ public class SilverfishController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -209,7 +206,15 @@ public class SilverfishController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SkeletonController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SkeletonController.java index 17696075a..fc69ae38b 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SkeletonController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SkeletonController.java @@ -93,8 +93,6 @@ public class SkeletonController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -208,7 +206,15 @@ public class SkeletonController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SkeletonStrayController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SkeletonStrayController.java index f148f3594..f318c1e0e 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SkeletonStrayController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SkeletonStrayController.java @@ -93,8 +93,6 @@ public class SkeletonStrayController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -208,7 +206,15 @@ public class SkeletonStrayController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SkeletonWitherController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SkeletonWitherController.java index 56d623589..001b5997b 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SkeletonWitherController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SkeletonWitherController.java @@ -93,8 +93,6 @@ public class SkeletonWitherController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -208,7 +206,15 @@ public class SkeletonWitherController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SlimeController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SlimeController.java index 00acee619..013fb4ee5 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SlimeController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SlimeController.java @@ -94,8 +94,6 @@ public class SlimeController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -232,7 +230,15 @@ public class SlimeController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SnifferController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SnifferController.java index 8cebfdd4a..6169137ee 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SnifferController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SnifferController.java @@ -224,7 +224,15 @@ public class SnifferController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SnowmanController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SnowmanController.java index 9766e1910..ec858d476 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SnowmanController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SnowmanController.java @@ -93,8 +93,6 @@ public class SnowmanController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -208,7 +206,15 @@ public class SnowmanController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SpiderController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SpiderController.java index 834f4ea11..84423b9b2 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SpiderController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SpiderController.java @@ -93,8 +93,6 @@ public class SpiderController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -208,7 +206,15 @@ public class SpiderController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SquidController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SquidController.java index 5bdeaded6..9036483b5 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SquidController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SquidController.java @@ -93,8 +93,6 @@ public class SquidController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -208,7 +206,15 @@ public class SquidController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/StriderController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/StriderController.java index a3382ece2..67cffea8f 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/StriderController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/StriderController.java @@ -93,8 +93,6 @@ public class StriderController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -199,7 +197,15 @@ public class StriderController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/TadpoleController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/TadpoleController.java index 8c6f83810..6bc71641a 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/TadpoleController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/TadpoleController.java @@ -127,8 +127,6 @@ public class TadpoleController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -246,7 +244,15 @@ public class TadpoleController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/TraderLlamaController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/TraderLlamaController.java index a8cb412f9..398cfc2b3 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/TraderLlamaController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/TraderLlamaController.java @@ -112,8 +112,6 @@ public class TraderLlamaController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -228,7 +226,15 @@ public class TraderLlamaController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/TropicalFishController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/TropicalFishController.java index be8527f9e..57535d669 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/TropicalFishController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/TropicalFishController.java @@ -129,8 +129,6 @@ public class TropicalFishController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -248,7 +246,15 @@ public class TropicalFishController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/TurtleController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/TurtleController.java index 38b6cd08c..fb1d46310 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/TurtleController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/TurtleController.java @@ -114,8 +114,6 @@ public class TurtleController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -223,7 +221,15 @@ public class TurtleController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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 { diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/VexController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/VexController.java index f468b5b85..174520442 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/VexController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/VexController.java @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class VexController extends MobEntityController { public VexController() { @@ -78,8 +79,6 @@ public class VexController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -167,7 +166,15 @@ public class VexController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/VillagerController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/VillagerController.java index 91b919bfc..9256676c4 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/VillagerController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/VillagerController.java @@ -251,7 +251,15 @@ public class VillagerController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/VindicatorController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/VindicatorController.java index 238ebdd2e..415499893 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/VindicatorController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/VindicatorController.java @@ -94,8 +94,6 @@ public class VindicatorController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -210,7 +208,15 @@ public class VindicatorController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/WanderingTraderController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/WanderingTraderController.java index fa982e3ba..a22fb1672 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/WanderingTraderController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/WanderingTraderController.java @@ -105,8 +105,6 @@ public class WanderingTraderController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -257,7 +255,15 @@ public class WanderingTraderController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/WardenController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/WardenController.java index 7b16a0cb2..99a128d5c 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/WardenController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/WardenController.java @@ -205,7 +205,15 @@ public class WardenController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/WitchController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/WitchController.java index 5f43822ea..903358c9c 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/WitchController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/WitchController.java @@ -93,8 +93,6 @@ public class WitchController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -208,7 +206,15 @@ public class WitchController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/WitherController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/WitherController.java index cb5ce6c7e..23b5209e0 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/WitherController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/WitherController.java @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class WitherController extends MobEntityController { public WitherController() { @@ -79,8 +80,6 @@ public class WitherController extends MobEntityController { } } - - @Override public int getAlternativeTarget(int i) { return npc == null ? super.getAlternativeTarget(i) : 0; @@ -178,7 +177,15 @@ public class WitherController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/WolfController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/WolfController.java index 5f5927d25..929379372 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/WolfController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/WolfController.java @@ -96,8 +96,6 @@ public class WolfController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -217,7 +215,15 @@ public class WolfController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ZoglinController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ZoglinController.java index 02dfd251b..91b946147 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ZoglinController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ZoglinController.java @@ -95,8 +95,6 @@ public class ZoglinController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -201,7 +199,15 @@ public class ZoglinController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ZombieController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ZombieController.java index 52f10b7d5..d8cf1d8d3 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ZombieController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ZombieController.java @@ -93,8 +93,6 @@ public class ZombieController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -199,7 +197,15 @@ public class ZombieController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ZombieHuskController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ZombieHuskController.java index 2c9eed96b..a08b5fcd9 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ZombieHuskController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ZombieHuskController.java @@ -93,8 +93,6 @@ public class ZombieHuskController extends MobEntityController { } } - - @Override protected SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -199,7 +197,15 @@ public class ZombieHuskController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ZombieVillagerController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ZombieVillagerController.java index 5a534593f..99ff98e48 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ZombieVillagerController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ZombieVillagerController.java @@ -93,8 +93,6 @@ public class ZombieVillagerController extends MobEntityController { } } - - @Override public SoundEvent getAmbientSound() { return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); @@ -200,7 +198,15 @@ public class ZombieVillagerController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/AreaEffectCloudController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/AreaEffectCloudController.java index 82c4ee291..bbdd2c128 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/AreaEffectCloudController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/AreaEffectCloudController.java @@ -24,6 +24,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class AreaEffectCloudController extends MobEntityController { public AreaEffectCloudController() { @@ -118,7 +119,15 @@ public class AreaEffectCloudController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/BlockDisplayController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/BlockDisplayController.java index 76d3011a0..4aae3417d 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/BlockDisplayController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/BlockDisplayController.java @@ -24,6 +24,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class BlockDisplayController extends MobEntityController { public BlockDisplayController() { @@ -117,7 +118,15 @@ public class BlockDisplayController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/BoatController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/BoatController.java index 824056e43..857441589 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/BoatController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/BoatController.java @@ -252,7 +252,15 @@ public class BoatController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ChestBoatController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ChestBoatController.java index f9f752418..7337c9e5c 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ChestBoatController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ChestBoatController.java @@ -253,7 +253,15 @@ public class ChestBoatController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/DragonFireballController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/DragonFireballController.java index ab31a22ee..65bab13a1 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/DragonFireballController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/DragonFireballController.java @@ -24,6 +24,7 @@ import net.minecraft.world.entity.projectile.DragonFireball; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class DragonFireballController extends MobEntityController { public DragonFireballController() { @@ -130,7 +131,15 @@ public class DragonFireballController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/EggController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/EggController.java index 3b303503b..1b9d23d91 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/EggController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/EggController.java @@ -26,6 +26,7 @@ import net.minecraft.world.entity.projectile.ThrownEgg; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class EggController extends AbstractEntityController { public EggController() { @@ -135,7 +136,15 @@ public class EggController extends AbstractEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/EnderCrystalController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/EnderCrystalController.java index 94f8d3b6f..edd5a3796 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/EnderCrystalController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/EnderCrystalController.java @@ -24,6 +24,7 @@ import net.minecraft.world.entity.boss.enderdragon.EndCrystal; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class EnderCrystalController extends MobEntityController { public EnderCrystalController() { @@ -118,7 +119,15 @@ public class EnderCrystalController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/EnderPearlController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/EnderPearlController.java index 2523d8476..be98c1d59 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/EnderPearlController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/EnderPearlController.java @@ -25,6 +25,7 @@ import net.minecraft.world.entity.projectile.ThrownEnderpearl; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class EnderPearlController extends MobEntityController { public EnderPearlController() { @@ -122,7 +123,15 @@ public class EnderPearlController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/EnderSignalController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/EnderSignalController.java index b71d28dce..013ba429f 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/EnderSignalController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/EnderSignalController.java @@ -25,6 +25,7 @@ import net.minecraft.world.entity.projectile.EyeOfEnder; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class EnderSignalController extends MobEntityController { public EnderSignalController() { @@ -119,7 +120,15 @@ public class EnderSignalController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/EvokerFangsController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/EvokerFangsController.java index 7bf880682..2ee1683fe 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/EvokerFangsController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/EvokerFangsController.java @@ -127,7 +127,15 @@ public class EvokerFangsController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ExperienceOrbController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ExperienceOrbController.java index 716188a14..f88fa1021 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ExperienceOrbController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ExperienceOrbController.java @@ -24,6 +24,7 @@ import net.minecraft.world.entity.ExperienceOrb; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class ExperienceOrbController extends MobEntityController { public ExperienceOrbController() { @@ -112,7 +113,15 @@ public class ExperienceOrbController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/FallingBlockController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/FallingBlockController.java index 6ff4dbedc..fde7d6ea5 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/FallingBlockController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/FallingBlockController.java @@ -144,7 +144,15 @@ public class FallingBlockController extends AbstractEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + } + Vec3 old = getDeltaMovement().add(0, 0, 0); + boolean res = super.updateFluidHeightAndDoFluidPushing(tagkey, d0); + if (!npc.isPushableByFluids()) { + setDeltaMovement(old); + } + return res; } private static final double EPSILON = 0.001; diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/FireworkController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/FireworkController.java index 35d26b5b1..40ee4ffb4 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/FireworkController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/FireworkController.java @@ -25,6 +25,7 @@ import net.minecraft.world.entity.projectile.FireworkRocketEntity; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class FireworkController extends MobEntityController { public FireworkController() { @@ -113,7 +114,15 @@ public class FireworkController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/FishingHookController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/FishingHookController.java index fbe84d012..7f10b9210 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/FishingHookController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/FishingHookController.java @@ -34,6 +34,7 @@ import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class FishingHookController extends MobEntityController { public FishingHookController() { @@ -147,7 +148,15 @@ public class FishingHookController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/GlowItemFrameController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/GlowItemFrameController.java index 4c004c361..e140a9915 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/GlowItemFrameController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/GlowItemFrameController.java @@ -27,6 +27,7 @@ import net.minecraft.world.entity.decoration.GlowItemFrame; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class GlowItemFrameController extends MobEntityController { public GlowItemFrameController() { @@ -129,7 +130,15 @@ public class GlowItemFrameController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/InteractionController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/InteractionController.java index a1ff41806..e57654454 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/InteractionController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/InteractionController.java @@ -24,6 +24,7 @@ import net.minecraft.world.entity.Interaction; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class InteractionController extends MobEntityController { public InteractionController() { @@ -112,7 +113,15 @@ public class InteractionController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ItemController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ItemController.java index cdc2fdefd..299b63fff 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ItemController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ItemController.java @@ -29,6 +29,7 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class ItemController extends AbstractEntityController { public ItemController() { @@ -132,7 +133,15 @@ public class ItemController extends AbstractEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ItemDisplayController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ItemDisplayController.java index 728bb7ba1..62f8fb693 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ItemDisplayController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ItemDisplayController.java @@ -27,6 +27,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class ItemDisplayController extends MobEntityController { public ItemDisplayController() { @@ -124,7 +125,15 @@ public class ItemDisplayController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ItemFrameController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ItemFrameController.java index eacfb11e7..55e5c2971 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ItemFrameController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ItemFrameController.java @@ -26,6 +26,7 @@ import net.minecraft.world.entity.decoration.ItemFrame; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class ItemFrameController extends MobEntityController { public ItemFrameController() { @@ -128,7 +129,15 @@ public class ItemFrameController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/LargeFireballController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/LargeFireballController.java index eb42f4b6a..c4d24f4b1 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/LargeFireballController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/LargeFireballController.java @@ -24,6 +24,7 @@ import net.minecraft.world.entity.projectile.LargeFireball; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class LargeFireballController extends MobEntityController { public LargeFireballController() { @@ -124,7 +125,15 @@ public class LargeFireballController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/LeashController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/LeashController.java index 5bf5b2b45..7fd016d05 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/LeashController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/LeashController.java @@ -25,6 +25,7 @@ import net.minecraft.world.entity.decoration.LeashFenceKnotEntity; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class LeashController extends MobEntityController { public LeashController() { @@ -118,7 +119,15 @@ public class LeashController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/LlamaSpitController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/LlamaSpitController.java index 685e68c7e..585e83106 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/LlamaSpitController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/LlamaSpitController.java @@ -27,6 +27,7 @@ import net.minecraft.world.entity.projectile.LlamaSpit; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class LlamaSpitController extends AbstractEntityController { public LlamaSpitController() { @@ -132,7 +133,15 @@ public class LlamaSpitController extends AbstractEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MarkerController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MarkerController.java index cc2f0d972..a1ad86f7c 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MarkerController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MarkerController.java @@ -24,6 +24,7 @@ import net.minecraft.world.entity.Marker; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class MarkerController extends MobEntityController { public MarkerController() { @@ -112,7 +113,15 @@ public class MarkerController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartChestController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartChestController.java index cf355ff8a..b48d82f04 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartChestController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartChestController.java @@ -25,6 +25,7 @@ import net.minecraft.world.entity.vehicle.MinecartChest; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class MinecartChestController extends MobEntityController { public MinecartChestController() { @@ -113,7 +114,15 @@ public class MinecartChestController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartCommandController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartCommandController.java index fe6935948..f686bb03c 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartCommandController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartCommandController.java @@ -25,6 +25,7 @@ import net.minecraft.world.entity.vehicle.MinecartCommandBlock; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class MinecartCommandController extends MobEntityController { public MinecartCommandController() { @@ -113,7 +114,15 @@ public class MinecartCommandController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartFurnaceController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartFurnaceController.java index a495a307b..a43d23721 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartFurnaceController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartFurnaceController.java @@ -25,6 +25,7 @@ import net.minecraft.world.entity.vehicle.MinecartFurnace; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class MinecartFurnaceController extends MobEntityController { public MinecartFurnaceController() { @@ -113,7 +114,15 @@ public class MinecartFurnaceController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartHopperController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartHopperController.java index 517af4a52..db91c7dd6 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartHopperController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartHopperController.java @@ -20,6 +20,7 @@ import net.minecraft.world.entity.vehicle.MinecartHopper; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class MinecartHopperController extends MobEntityController { public MinecartHopperController() { @@ -100,7 +101,15 @@ public class MinecartHopperController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartRideableController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartRideableController.java index 73ec3d2ed..a7844e81c 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartRideableController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartRideableController.java @@ -24,6 +24,7 @@ import net.minecraft.world.entity.vehicle.Minecart; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class MinecartRideableController extends MobEntityController { public MinecartRideableController() { @@ -112,7 +113,15 @@ public class MinecartRideableController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartSpawnerController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartSpawnerController.java index 0a0784aa9..0551cbdf8 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartSpawnerController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartSpawnerController.java @@ -20,6 +20,7 @@ import net.minecraft.world.entity.vehicle.MinecartSpawner; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class MinecartSpawnerController extends MobEntityController { public MinecartSpawnerController() { @@ -100,7 +101,15 @@ public class MinecartSpawnerController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartTNTController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartTNTController.java index a5eb7be1a..577a70dd1 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartTNTController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartTNTController.java @@ -20,6 +20,7 @@ import net.minecraft.world.entity.vehicle.MinecartTNT; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class MinecartTNTController extends MobEntityController { public MinecartTNTController() { @@ -100,7 +101,15 @@ public class MinecartTNTController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/PaintingController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/PaintingController.java index 1817f4b2e..c6ef3e927 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/PaintingController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/PaintingController.java @@ -24,6 +24,7 @@ import net.minecraft.world.entity.decoration.Painting; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class PaintingController extends MobEntityController { public PaintingController() { @@ -117,7 +118,15 @@ public class PaintingController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ShulkerBulletController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ShulkerBulletController.java index f99c56bc4..32bf82ac0 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ShulkerBulletController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ShulkerBulletController.java @@ -24,6 +24,7 @@ import net.minecraft.world.entity.projectile.ShulkerBullet; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class ShulkerBulletController extends MobEntityController { public ShulkerBulletController() { @@ -112,7 +113,15 @@ public class ShulkerBulletController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/SmallFireballController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/SmallFireballController.java index f646bbd02..f666578aa 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/SmallFireballController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/SmallFireballController.java @@ -24,6 +24,7 @@ import net.minecraft.world.entity.projectile.SmallFireball; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class SmallFireballController extends MobEntityController { public SmallFireballController() { @@ -115,7 +116,15 @@ public class SmallFireballController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/SnowballController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/SnowballController.java index 11a9772bb..4877ec39b 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/SnowballController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/SnowballController.java @@ -24,6 +24,7 @@ import net.minecraft.world.entity.projectile.Snowball; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class SnowballController extends MobEntityController { public SnowballController() { @@ -112,7 +113,15 @@ public class SnowballController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/SpectralArrowController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/SpectralArrowController.java index fa2d6a0c3..dd0c2bc35 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/SpectralArrowController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/SpectralArrowController.java @@ -25,6 +25,7 @@ import net.minecraft.world.entity.projectile.SpectralArrow; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class SpectralArrowController extends MobEntityController { public SpectralArrowController() { @@ -113,7 +114,15 @@ public class SpectralArrowController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/TNTPrimedController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/TNTPrimedController.java index 190766307..2d040fbb0 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/TNTPrimedController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/TNTPrimedController.java @@ -25,6 +25,7 @@ import net.minecraft.world.entity.item.PrimedTnt; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class TNTPrimedController extends MobEntityController { public TNTPrimedController() { @@ -113,7 +114,15 @@ public class TNTPrimedController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/TextDisplayController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/TextDisplayController.java index 96351a996..9ee96dc3c 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/TextDisplayController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/TextDisplayController.java @@ -24,6 +24,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class TextDisplayController extends MobEntityController { public TextDisplayController() { @@ -111,7 +112,15 @@ public class TextDisplayController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ThrownExpBottleController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ThrownExpBottleController.java index 7e974381b..de6cbecaa 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ThrownExpBottleController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ThrownExpBottleController.java @@ -25,6 +25,7 @@ import net.minecraft.world.entity.projectile.ThrownExperienceBottle; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class ThrownExpBottleController extends MobEntityController { public ThrownExpBottleController() { @@ -116,7 +117,15 @@ public class ThrownExpBottleController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ThrownPotionController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ThrownPotionController.java index 2e2c4bb4e..eb1116311 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ThrownPotionController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ThrownPotionController.java @@ -25,6 +25,7 @@ import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class ThrownPotionController extends MobEntityController { public ThrownPotionController() { @@ -117,7 +118,15 @@ public class ThrownPotionController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ThrownTridentController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ThrownTridentController.java index f398df610..27b4d532c 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ThrownTridentController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ThrownTridentController.java @@ -25,6 +25,7 @@ import net.minecraft.world.entity.projectile.ThrownTrident; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class ThrownTridentController extends MobEntityController { public ThrownTridentController() { @@ -113,7 +114,15 @@ public class ThrownTridentController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/TippedArrowController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/TippedArrowController.java index 9fe494b64..ca2939f86 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/TippedArrowController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/TippedArrowController.java @@ -24,6 +24,7 @@ import net.minecraft.world.entity.projectile.Arrow; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class TippedArrowController extends MobEntityController { public TippedArrowController() { @@ -112,7 +113,15 @@ public class TippedArrowController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/WitherSkullController.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/WitherSkullController.java index a2faa18c7..cd5e6ab65 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/WitherSkullController.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/WitherSkullController.java @@ -24,6 +24,7 @@ import net.minecraft.world.entity.projectile.WitherSkull; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class WitherSkullController extends MobEntityController { public WitherSkullController() { @@ -112,7 +113,15 @@ public class WitherSkullController extends MobEntityController { @Override public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { - return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + if (npc == null) { + return super.updateFluidHeightAndDoFluidPushing(tagkey, 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_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/NMSImpl.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/NMSImpl.java index ad630e412..c047ed21f 100644 --- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/NMSImpl.java +++ b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/NMSImpl.java @@ -2028,18 +2028,6 @@ public class NMSImpl implements NMSBridge { return null; } - public static boolean fluidPush(NPC npc, Entity entity, Supplier func) { - if (npc == null) { - return func.get(); - } - Vec3 old = entity.getDeltaMovement().add(0, 0, 0); - boolean res = func.get(); - if (!npc.isPushableByFluids()) { - entity.setDeltaMovement(old); - } - return res; - } - public static void flyingMoveLogic(LivingEntity entity, Vec3 vec3d) { if (entity.isEffectiveAi() || entity.isControlledByLocalInstance()) { double d0 = 0.08D;