* NEW: Refactored PluginLogger for multi-thread usage and message formatting.
* NEW: Posters and maps that could not be migrated are now saved back
to their original files.
* NEW: Moved the maptool-migration command to the /maptool migrate subcommand.
* NEW: PosterMap can now be used without having row/column count information.
* NEW: Added a detailed help message for the migration command.
* BUG: Fixed UUIDFetcher's HTTP GET request sending.
* BUG: Fixed Name->UUID time-specific matching.
* OPT: Removed the CommandPermission structure, it is actually useless.
* OPT: Renamed Migrator to MigratorExecutor.
* NEW: UUIDFetcher can now fetch uuids at a specific timestamp.
* BUG: Old map files are not loaded twice anymore.
* OPT: Reduced minimum time between requests.
* NEW: Added Migration worker.
* NEW: Added the maptool-migration op-only command.
* NEW: Added pre-v3 map files loading support.
* NEW: Implemented v3 migration preparation.
* NEW: Commands : added support for runtime permission checking.
* NEW: Worker threads are now named based upon their worker's name.
* BUG: Fix MapItemManager exiting if it has not been properly initialized.
* NEW: Implemented the per-player map limit.
* NEW: Implemented the global map limit.
* NEW: The map manager can now raise exceptions for some requests.
* NEW: The configuration can now have deprecated field names.
These fields are automatically migrated if present in the config file.
* NEW: The configuration now writes default values when loading the plugin.
* BUG: Fixed configuration loading.
* BUG: Fixed player store loading's thread-safety.
* OPT: Cleaned up map loading events initialisation.
* NEW: Implemented the RendererExecutor for splitted and scaled images.
* NEW: Implemented image saving.
* NEW: Worker callbacks now take as a parameter the return value of the Runnable.
* NEW: Worker runnables can now request data from the main thread using the Future API.
* BUG: null is now a valid value for the "name" field.
* BUG: Fix map loading for Posters and Single maps.
* OPT: The PosterImage class now only makes the primary calculations when instanciated.
The splitting is now a separate method.
* OPT: When a map data entry is invalid, only the error message is shown in console
rather than the full backtrace.
* NEW: Added proper license headers.
* NEW: New image loading management.
* NEW: Added a threaded worker to run the image loading/saving.
* OPT: Moved images to the images/ subdirectory.
* NEW: Added the commands and image packages.
* NEW: ImageMap is now an abstract class rather than an interface,
allowing to add several useful common methods.
* NEW: The MapType enumeration is now part of the ImageMap class.
* NEW: Added some utility methods to the MapType enumeration.
* NEW: imageName, ownerName and worldName are now common map properties.
* NEW: The PosterImage class (was previously Poster) is now used to hold
the sub-images in the PosterMap class, instead of holding an array of
SingleMaps.
* NEW: Completely rewrote the image splitting algorithm.
* NEW: Removed the MapData and PosterData classes. They were uselessly
wrapped by the PosterMap and SingleMap classes.
* BUG: Fixed some method's accessibility.
* OPT: Cleaned up the map renderer a bit.
* NEW: Added the PluginLogger class to standardize console logging.
* NEW: URLs are parsed before starting any downloading task, and an error
is shown to the user if the parsing failed.
* BUG: Exceptions are now catched at the highest possible level, so that
appropriate error messages/logs can be generated.
* OPT: Standardized code formatting a bit.
* BUG: Fix image scaling and writing.
* BUG: Using HTTPS should not prevent downloading a map.
* BUG: Exceptions during download are now correctly handled.
* BUG: Fix the "download success" message.
* OPT: Cleaned some old commented code.