getFlyingSpeed is called every tick to determine the scalar speed set in setSpeed (usually by MoveControl). In FlyingMoveControl (which is used by Bee), the Flying Speed attribute has already been multiplied into the setSpeed argument (i.e. handled).
However, in the method getFlyingSpeed shown above, when the mob is not ridden by a player, the speed is locked to 0.02 and ignores the result of getSpeed, so the setSpeed action taken by FlyingMoveControl doesn’t take effect.
This method only appears in 1.20.1+, and I’m not sure what the mechanic is like in 1.19-.
This issue in 1.20.1 appears to come from this method in
LivingEntity:getFlyingSpeedis called every tick to determine the scalar speed set insetSpeed(usually byMoveControl). InFlyingMoveControl(which is used byBee), the Flying Speed attribute has already been multiplied into thesetSpeedargument (i.e. handled).However, in the method
getFlyingSpeedshown above, when the mob is not ridden by a player, the speed is locked to 0.02 and ignores the result ofgetSpeed, so thesetSpeedaction taken byFlyingMoveControldoesn’t take effect.This method only appears in 1.20.1+, and I’m not sure what the mechanic is like in 1.19-.