* NEW: Gui: can now have a parent. If so, a closing GUI will
open its parent, like a modal dialog.
* NEW: Gui: can now be immune to the next close event, if needed.
* BUG: Gui: getOpenGui() does not throw an NPE anymore if no open
GUI was found.
* OPT: PromptGui: removed unneeded fields.
* NEW: Added new InventoryGui class.
This class only manages inventory-based GUI.
* NEW: Gui: Added the registerListener() method, which allows
any Gui subclass to lazily register their own GUI Listeners.
* NEW: ActionGui: Added the GuiAction annotation.
* NEW: ConfirmDeleteMapGui: Updated to use the @GuiAction annotations.
* NEW: ExplorerGui: Added a default empty indicator.
* NEW: ExplorerGui: Updated to use the @GuiAction annotations.
* NEW: ExplorerGui: Added current page getters & setters.
* NEW: MapDetailGui: Updated to use the @GuiAction annotations.
* BUG: ActionGui: Fix event handler call if the method takes an
InventoryClickEvent as a parameter.
* BUG: ConfirmDeleteMapGui: Fix exception handling.
* BUG: ExplorerGui: Fix the hasData() method.
* BUG: ExplorerGui: Fix the empty indicator.
* BUG: ExplorerGui: Fix the keep*ScrollingSpace implementation.
* BUG: ExplorerGui: Fix item pickup when using coordinates.
* BUG: ExplorerGui: All callbacks can now take coordinates instead
of data.
* OPT: ConfirmDeleteMapGui: Messages are now defined as constants.
* OPT: ConfirmDeleteMapGui: GUI's data is now final.
* OPT: MapDetailGui: Cleaned up GUI initialization a bit.
* OPT: MapListGui: Cleaned up ItemStack generation.
* OPT: MapDetailGui: Clarified UI tooltips.
* NEW: added icons from the olg details GUI.
* NEW: rewrote the map parts items (from the old GUI).
* BUG: the list GUI don't open the details one when a single map is right-clicked.
It's an item displayed on the center of the GUI if there isn't any data to display.
* NEW: added an item displayed if the explorer GUI is empty.
* NEW: implementation of this empty item in the list GUI.
* NEW: small adjustments on the statistics (removed the last empty line from the lore)
* BUG: the old method was still used to remove the item attributes (the one from the `gui` package).
To be able to place controls, or by style/coherence if the developer wants that.
* NEW: added explicit options to keep the scrolling area empty even without scrolls.
* NEW: updated the pagination button to more clean ones, and through an overrideable method, to allow a more in-depth personalization if needed. The way used to implement this may be improved, but it's not very important.
* NEW: added a version of `ActionGui.updateAction` with only the action and an ItemStack as argument.
* NEW: reformatted the code a little bit to make it more readable.
* NEW: added Javadoc when it was missing.
* NEW: changed the name of the fallback action method in `ActionGui`, from `onAction_unknown` to `unknown_action` (coherence of the methods names).
* NEW: the action methods (both declared and unknown) can now take an extra argument: the triggered InventoryClickEvent. This argument is completely optional, so this will not break any code, and if the event is not needed, it can just be skipped.
* NEW: renamed the setData(int, int) method to setDataShape(int, int), because this method does not actually set any data.
* NEW: ExplorerGui: Implemented 2D data support.
* NEW: ExplorerGui: Implemented retreiving items using coordinates rather than data.
* NEW: ExplorerGui: Added right-click event support.
* NEW: Gui: Added support for dragging events.
* NEW: Maps given to the player now have their attributes hidden.
* BUG: PluginLogger: Fixed exception handling when logging a message with arguments.
* NEW: The manage command now opens the MapList GUI.
* NEW: MapListGui: First actual implementation.
* NEW: MapManager/PlayerMapStore: Added the getMaps() method.
* BUG: GuiUtils: The hideAttributes() method does not crash anymore if
the ItemFlags API is not available.
* OPT: ExplorerGui: Inventory variables are now computed only on data update.
* NEW: GuiUtils: Added makeItem() utilities.
* NEW: GuiUtils: Re-added the hideAttributes() method.
* NEW: ActionGui: Updated the action() methods to use the
GuiUtils.makeItem() utilities.
* NEW: Added new Explorer GUI type (not yet complete).
* NEW: Added testing implementation of MaterialGui.
* NEW: Added testing implementation of MapListGui (not functional).
* NEW: Gui: Added the MAX_INVENTORY_COLUMN_SIZE constant.
* NEW: ActionGui: Added the onAction_unknown event.
* NEW: ActionGui: Added the updateAction methods.
* BUG: ActionGui can now find action handlers in subclasses.
* BUG: ActionGui: Actions in the player's inventory are not cancelled anymore.
* NEW: Added new Action GUI type.
* NEW: Added testing implementation of ConfirmDeleteMapGui.
* BUG: Newly opened GUIs are now correctly registered.
* BUG: GUI: Fixed NPE when first generating the inventory.
* BUG: GUIs opened from another GUI do not interfere anymore when
the parent GUI is closed.
* NEW: The preview of the map takes all the available space except a line and a column for the sliders. The other tools are placed between the horizontal sliders.
* NEW: Added a book displaying statistics on the maps list GUI, with images rendered, Minecraft maps used, and Minecraft-maps-limits-related statistics if these limits exists.
* NEW: Added a delete button to the details view.
* NEW: A click on the delete button opens a confirmation GUI with two big buttons, one to confirm, the other to cancel.
* NEW: Right-clicking on a GUI opens another one with details about the map.
* NEW: The details GUI displays the map on a screen with scrollbars to consult the map per-minecraft-map.
* NEW: Each part of the map can be taken independently.
* NEW: Single maps are intuitively taken from the GUI, like any other chest item (shift-click supported).
* NEW: The posters are still given (until the splatter map, see #11), but the inventory is no longer closed.
* BUG: Fixed players unable to shift-click an item from the player inventory to the GUI.
* NEW: Added a direct access to the InventoryAction in the methods.
* OPT: Code style, avoiding too many nested blocs.
* OPT: Raw types in the class attributes (meh @IamBlueSlime).
* NEW: Added another onClick signature with the full event as the last parameter.
* NEW: Added a new method triggered when an item is dropped in the inventory GUI (`onItemDeposit`), with various signatures.
* BUG: Click triggered on click on a slot with the same raw number on the player inventory (out of the GUI).
* BUG: Fixed items ate by the GUI when dragged on it by cancelling all drags on managed inventories.
* NEW: Added a reflection-based API to remove all vanilla infos from the tooltips. Only effective on Bukkit 1.8.3+.
* NEW: Now using this API to remove the “Unknown map” or “Scaled at 1:8” texts from the maps in the GUI.
* NEW: Command `/maptool manage` to open a GUI used to manage the maps.
* NEW: GUI to manage the maps, organized per-category (first GUI to select the map type; then a GUI to view them). Pages of 21 maps (3×7).
* NEW: You can get a map by left-clicking on it on the GUI.
* 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.