Commit Graph

295 Commits

Author SHA1 Message Date
Amaury Carrade
34b3a66220 Added an emptiness representation in the explorer GUI.
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).
2015-09-10 16:00:14 +02:00
Amaury Carrade
e7acbb36c4 Implemented the statistic books of the list GUI in the new architecture.
* NEW: added statistics to the new list GUI.
2015-09-10 15:27:09 +02:00
Amaury Carrade
1ddc923b73 Fixed explorer GUI to be able to use getSize() in onUpdate().
* BUG: getSize() always returns 0 in the onUpdate method of explorer GUIs.
2015-09-10 15:26:27 +02:00
Amaury Carrade
a403efcd4e Added an option to the explorer GUI: keep the scrolling area empty even without scrolls.
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.
2015-09-10 15:14:18 +02:00
Amaury Carrade
149e1225c1 Improved the pagination buttons of the explorer GUI.
* 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.
2015-09-10 01:40:29 +02:00
Amaury Carrade
e1f25a084d Implemented the deletion confirmation GUI with the new system.
* NEW: migrated the deletion confirmation GUI to the new system.
2015-09-10 01:37:05 +02:00
Amaury Carrade
80089c7bf5 Improved the GUI manager.
* 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.
2015-09-10 00:55:10 +02:00
Adrien Prokopowicz
efd62283ea * NEW: ActionGui: Added documentation. 2015-08-31 21:31:57 +02:00
Adrien Prokopowicz
54931ae078 * BUG: Gui: Use Player instead of HumanEntity to track Gui's owners. 2015-08-31 21:31:23 +02:00
Adrien Prokopowicz
a5449899f1 Finally finished the 2D Explorer API !
* 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.
2015-08-31 11:36:24 +02:00
Adrien Prokopowicz
0ad44db92b Keep working on the GUI API.
* 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.
2015-07-30 08:52:18 +02:00
Adrien Prokopowicz
586644e486 Added makeItem() utilities to GuiUtils.
* NEW: GuiUtils: Added makeItem() utilities.
* NEW: GuiUtils: Re-added the hideAttributes() method.
* NEW: ActionGui: Updated the action() methods to use the 
  GuiUtils.makeItem() utilities.
2015-07-24 19:58:56 +02:00
Adrien Prokopowicz
90968c6009 Implemented user interaction to ExplorerGui.
* NEW: ExplorerGui: Added interaction modes.
* NEW: ExplorerGui: Implemented user interaction.
* NEW: ExplorerGui: Added getPickedUpItem and onPutItem events.
* NEW: Gui: Added getInventory() getter.
* NEW: Added the GuiUtils module, which provides various utility methods.
2015-07-24 18:18:46 +02:00
Adrien Prokopowicz
6ecfc1a561 Added new Explorer GUI class (and tests).
* 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.
2015-07-19 16:58:10 +02:00
Adrien Prokopowicz
59f099a116 Added new Action GUI class (and tests).
* 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.
2015-07-15 02:24:27 +02:00
Adrien Prokopowicz
1ffc64e580 * BUG: GUI: Click events are now correctly forwarded to the Gui class. 2015-07-15 00:34:12 +02:00
Adrien Prokopowicz
9f279a2ba7 Merge origin/feature-explorer-gui-13 into feature-explorer-gui-13 2015-07-15 00:26:36 +02:00
Adrien Prokopowicz
654503aa56 Started working on a new GUI API.
* NEW: Added new Gui base class.
2015-07-15 00:25:29 +02:00
Amaury Carrade
e99eb8f79d Moar space for the maps in the detailed view.
* 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.
2015-07-14 04:39:26 +02:00
Amaury Carrade
4f3e856a73 Added some statistics on the maps list GUI.
* 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.
2015-07-14 03:13:49 +02:00
Amaury Carrade
a3195327ac Added the “rename” button (not implemented yet)
* NEW: Rename button (yet to be implemented).
* OPT: Update of the GUIs to use the `open` method.
2015-07-13 21:55:39 +02:00
Amaury Carrade
ad9d57071b Added JavaDoc and updated the GUI API to prepare the future anvil API.
* NEW: JavaDoc on the GUI API
* NEW: Added a method to call to open the GUI (replacing the direct call to `player.openInventory()`.
2015-07-13 18:16:11 +02:00
Amaury Carrade
831a5214ed You can now delete an image through the GUI.
* 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.
2015-07-12 23:03:01 +02:00
Amaury Carrade
d69e2aa34b Improved map parts preview with a checkerboard-like display.
* NEW: checkerboard-like display of the map part, alternating between paper and empty-map.
2015-07-12 16:26:01 +02:00
Amaury Carrade
7809c95d80 Added a map details GUI.
* 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.
2015-07-12 16:04:54 +02:00
Amaury Carrade
cd9b310aa2 Changed the images display in the GUI a little bit.
* NEW: The title of the tooltip of an image is now the name of this image (currently, “Map” everywhere).
* NEW: moved the map ID in the tooltip.
2015-07-12 03:16:38 +02:00
Amaury Carrade
bebac6e621 More intuitive way of getting the map(s) through the GUI.
* 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.
2015-07-12 03:03:53 +02:00
Amaury Carrade
e1cd920d4c One GUI to rule them all, One GUI to find them, One GUI to bring them all and in the darkness bind them.
* NEW: removed the category selector GUI.
* NEW: the map list GUI lists all the maps.
2015-07-12 01:45:17 +02:00
Amaury Carrade
892f6d2834 Updated the vanilla infos remover to log all InvocationTargetException encountered.
* OPT: InvocationTargetException are logged in the GuiUtils class.
2015-07-11 20:55:30 +02:00
Amaury Carrade
c738359d2e Improved the GUI API.
* 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).
2015-07-10 21:44:45 +02:00
Amaury Carrade
9084d28401 Merge branch 'indev' of github.com:Coutume/ImageOnMap into feature-explorer-gui-13 2015-07-10 19:51:51 +02:00
Adrien Prokopowicz
b0caf6604f * NEW: Updated .gitignore for IntelliJ and other IDEs. 2015-07-10 19:48:33 +02:00
Amaury Carrade
a1fa5b1f00 Images count in the tooltips of the category selection GUI.
* NEW: Added images count per category in the main selection GUI.
* OPT: Removed the “Choose a category” part of the selection GUI's title.
2015-07-10 19:38:00 +02:00
Amaury Carrade
07bc9cf4a5 You can now destroy from your inventory a map, or all maps from a poster, by putting a map in the map list GUI.
* NEW: Remove a whole map (poster or single) from the inventory by putting a piece in the map list GUI.
2015-07-10 19:38:00 +02:00
Amaury Carrade
0a79eee89b Fixed & enhanced GUI API (blame @IamBlueSlime for bugs).
* 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.
2015-07-10 19:37:59 +02:00
Amaury Carrade
26d28787be Removed useless and ugly vanilla infos (such as “Unknown map”) from the tooltips.
* 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.
2015-07-10 19:37:59 +02:00
Amaury Carrade
2dfc0bf794 Implemented the beginning of the GUI: command /maptool manage, paginated & per-category 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.
2015-07-10 19:37:59 +02:00
Amaury Carrade
1534b574f2 Added a GUI API 2015-07-10 19:37:59 +02:00
Adrien Prokopowicz
ec6b4ec997 Merge branch 'indev' 2015-06-03 21:56:13 +02:00
Adrien Prokopowicz
3ace5f5edf Merge indev into master 2015-06-03 21:55:45 +02:00
Prokopyl
ce61923268 * BUG: Fix command permissions management. 2015-06-03 20:53:07 +02:00
Prokopyl
2a49d94d1e Migration is now fully functional !
* 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.
2015-04-12 01:28:05 +02:00
Prokopyl
6725c15002 Fixed migration for players who changed names before migrating.
* 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.
2015-04-10 02:22:47 +02:00
Prokopyl
90dd9eb24d Migration preparation done.
* 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.
2015-04-09 22:32:51 +02:00
Prokopyl
aa27636962 * NEW: The plugin now tries to load images from the old "Image" directory if the new one does not exist. 2015-04-08 14:17:10 +02:00
Prokopyl
b87dfdf231 Implemented the map item limit (global and per-player).
* 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.
2015-04-04 06:05:47 +02:00
Prokopyl
27f836977f * NEW: Added the "map item cache" and the associated /maptool getremaining (or getrest) command. 2015-04-01 03:53:52 +02:00
Prokopyl
2280e96125 * NEW: Poster map items now show position information. 2015-04-01 02:22:06 +02:00
Prokopyl
ca8cebd0a0 * BUG: Newly created maps now have their names assigned correctly. 2015-03-31 21:41:37 +02:00
Prokopyl
860fed25e5 * OPT: The map database is now thread-safe. 2015-03-31 20:48:44 +02:00