Adds a "dirty"-flag, set on receiving velocity. If a player still
ascends while exceeding max-jump-phase, a violation will be triggered,
regardless of the taken distance. This has not been tested against hacks
yet, and might well have little effect. It does aim against step and
block-jumping on protected regions, but there might be another limiting
method necessary to make this fully effective.
This needs more consideration, for backwards compatibility the pure-API
modules might compile against an older API version (defensively!),
while the API-only MCAccess might need an extra module compiling against
what it needs.
Mostly MCAccess must be reset after reloading the configuration, a rare
case, but wanted for testing. For this a component has been added, which
allows automatic setting of MCAccess on reload, in consequence the
CheckListener registers all checks as components with the NoCheatPlusAPI
(CheckListener.addCheck).
Components can not be registered twice anymore.
All TickListeners will be removed in onDisable.
Possibly others.
Fix: reset players hover ticks if moves are not checked (sleep, dead,
vehicle, disabled).
Optimize: Only check on-ground, if the players hover tick counts
reach the limit. Players are reset when moving anyway.
Player gets ejected, then both teleport then re-enter. Includes some
sanity checks. Also should work for players exiting vehicles. Might
conflict with Worldguard region flags and similar. [Missing: proper
treatment of vehicle-enter/exit.]
Fall damage events for violations are not cancelled anymore due to the
"moved too quickly" bypass. Instead the player is dealt 3 more damage
than normal and added to the hover checking if that is activated.
Further a config flag allows to specify if to reset the NoFall data, set
to false by default, thus victims of Minecraft false-positives are at
doubled suffering.
punished
Set to bleeding, because the last commits are. Bukkit-API-only access
shortly tested. There will be issues, but this might help over the
darkest of days.
Moving big parts of code between sub-projects. Some refactoring was
needed to unlink some classes. Deprecated methods removed. Some utility
methods were moved to differently named utilities. Few signatures
changed (e.g. BlockProperties.init). Most changes should only concern
bugs or developers who dug into some NCP deeply (not sure those exist).
It should still all be there.
Only set the hover ticks on teleporting events. On setting back players
in MovingListener.onTick, this will be prevented now. However actions
might still cause trouble, so some non-blocking stuff would be good here
(a removeFroHover set, some other way of keeping track).
Remove uncancelling events. Ignore sleeping [might need adaption to
not trigger anything on getting up], account for cancelled events
and reset postions and feed yawrate accordingly.
Cancel damage events rather than keeping fall distance plus damaging the
player. This should punish players less for bugs in MC or NCP, while
still dealing the accurate damage.
The players can still keep hovering, but that's what the hover checks
will be for.
Gains a little bit of consistency for negative time differences. Also
might be faster for the case of seldom shifting, though most likely
by an insignificant amount.