Bukkit/CraftBukkit — pull request #814 by jordonus (2012-07-07 12:11:08+00:00)
Title: Separation of player data handling from world 0 to its own implementation.

There is quite a mess when it comes to handling player data, especially when accessing the implementation of the PlayerDataFile interface. The implementation is instantiated as part of the world0 data manger and stored in the ServerConfigurationManager as the field "playerFileData".

This was used to save and access player data in some places while in others they simply addressed world0's data manager directly... making it extremely difficult to replace it with your own implementation without changing core code or using runtime rewriting (via plugins).

I have attempted to address this issue by uncoupling the implementation of the PlayerFileData interface used to store players from the data manager for World 0. I have also updated references and reworked some code so that they all reference the playerFileData field of the ServerConfigurationManager.

Player handling, as it is, currently needs some work to allow any real customization / configuration (something I hope to work on) but this is a working fix to address a short term need that I had.