Once and for all.
Thanks to Thinkofdeath & the users who put up with these changes, it was for a good cause, however at this point in time we do not feel it is possible to correct the large number of exploits present in player movement without the cooperation of Mojang. We will be seeking their cooperation, however in the mean time it is recommended that users install an anticheat plugin such as NoCheat+ to ensure some level of protection.
This will fix some strange behaviour users have been seeing in relation to player movements.
* Now Tracks Commands
* Resolved Performance issue with Bukkit HandlerList method. Now all timings simply uses the Spigot System
* Performance Improvement simply not using TimedRegisteredListener too
* Bug with SyncChunkLoad tracking resolved. Now properly tracks many aspects of sync chunk load.
* Reset/On/Off accuracy - should no longer have any issues turning it on/off during runtime, so this has been re-enabled.
* Paste command on RCON now works
* Now tracks everything related to plugins too, so you can easily see total plugin cost
* Now tracks Tasks better and where they came from
* Now tracks plugins event handlers to the Listener/Method name too.
* Merged some Bukkit Patches so all timings changes are in 1 patch.
* Moved back to a CLQ for CustomTimingsHandler for thread safety for when tasks are created Async but then executed sync.
Hopefully no plugins are somehow leaking buffers, but disabling the ResourceLeakDetector is a good thing for performance of the Netty IO subsytem (it's been disabled in BungeeCord for a while now).
Also only prevent the movement event as the teleporting back it is done elsewhere.
Finally fix the lag handling to work on the next tick when the movement packets come in
Whilst it is possible for a change such as this to be breaking, the version bump in itself is very small and Guava only removes APIs after 18 months deprecation. Given the proliferation of servers such as MCPC bundling Guava versions of 14.0 upwards as well as the fact that developers should steer clear away from using deprecated APIs, it is very unlikely this change will cause any issues. Furthermore this version brings multiple bug fixes and represents the minimum version required by Minecraft itself.
Based on work by Peter Lawrey, this commit prevents unbounded growth of the integer cache and instead caps it to a value specified in the configuration (1024 by default). Should prevent thrashing, especially around world generation.