Mob spawners are treated as solid blocks as far as the game is concerned for lighting and other tasks but for rendering they can be seen through, therefor we special case them so that the antixray doesn't show the fake blocks around them.
You can now specify how many letters of the command must be typed before it will be tab completed this will help deter people from just spamming round all the commands to see if there is one incorrectly set up.
0 will tab complete all commands
-1 will disable tab complete
1 will mean you have to type the first letter
2 will mean you have to the second letter... etc...
These classes / methods / fields have been deprecated as their functionality may be broken or changed some time in the future by Mojang. Deprecating them now raises awareness and gives time for developers to evaluate the impact the use of these items may have on their code and rectify it accordingly.
Most of these methods still have plenty of use given that only one player with each name can exist at a time. Deprecating these methods renders even basic functionality such as /msg <name> impossible without causing compiler warnings. We will maintain this API and it should be considered safe and appropriate for most use cases.
This fixes an issue where a chunk would be unloaded but remain in lastChunkAccessed meaning calls on getChunkAt could return a chunk that is no longer loaded, this caused an issue where the chunk could be reloaded whilst in use reverting any block changes. This caused findEndPortal to return null even after createEndPortal which would crash the server trying to teleport to a null location.
Optimize player lookup and various player operations. We mainly do this by keeping a map instead of iterating through all players. We also speed up the duplicate login check and a few other checks by simply checking for one matching player.
Thanks @aikar for some of the implementation