On teleports initiated by NCP set-back location is kept, as well as some
parts of the fly data should not be cleared but reset according to the
set-back location.
Bed checks take into account that there could be a set-back location if
ground is not set.
Especially over stairs one would encounter problems, because the setback
location was not set anymore for the "lost-ground" workaround. This
effectively reverts former removal of setting it then.
To avoid compatibility issues with exemptions the yawrate
feeding/checking is now only done if angle is enabled. As a compromise
both are still checked, even if speed has already cancelled the event,
because the "fast turning" checks both accumulate data and depend on not
missing players attempts.
This might not fully fix all fly bypasses, but it prevents the Passable
check from resetting players into the air for moves that may cover any
distance from air into ground, leading to resetting the player into the
air, which allows for a fly bypass, effectively. Preferring the data's
set-back location will set the player back onto ground if it is
passable,
this still leaves some area for cheat attempts, but the order of speed
and passable checks shows the dilemma that either can undo the others
effects with the set-back locations used by the checks. [Subject to
review.]
This avoids missing moving events that might go into blocks, for
instance, the setBack location will either be set from before or get set
on player join. [Still edge cases missing, world changes, world removal]
If set to false only the time since last shot is taken into account.
This allows an instant first shot always but still prevents "machine
gun" hacks, which might be a good option for servers with much lag.