I created a series of command blocks that summon a fireball and then uses trigonometry to calculate the movement requred for it to go where the player is facing. This is then used to modify the fireball's nbt Motion data. The fireball flies off course and corrects itself in a glitchy manner.
Note that it is controlled by a single impulse command block so nothing is happening to the fireball while it's in the air.
Recreation:
- Download the datapack and unzip it
- Add it to a singleplayer world
use the command: /function fb:fire
The same issue also happens, if you set the motion and power nbt of Ghast fireballs, Wither skulls and Dragon fireballs to zero. The entitys go into the ground and re-appear in the air. When you exit the world and log back in the entitys stay in the air as intended.