Commit Graph

296 Commits

Author SHA1 Message Date
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 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
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
Prokopyl b192214609 * BUG: Maps are correctly updated if there are map objects already loaded when the plugin is enabled. 2015-03-31 20:04:56 +02:00
Prokopyl 6c95e8a95e * NEW: Implemented the list, get and delete maptool commands. 2015-03-31 19:17:06 +02:00
Prokopyl 244a3d7122 * BUG: Fix poster image saving when rendering. 2015-03-30 00:44:44 +02:00
Prokopyl 5c9feddd6e Added image-to-map rendering.
* 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.
2015-03-26 16:03:40 +01:00
Prokopyl 5c369c65cd * NEW: Implemented the new map data storing system. 2015-03-26 06:39:48 +01:00
Prokopyl 15e5c5457f * NEW: Worker runnables can now have callbacks.
These are executed in the Bukkit main thread, therefore 
allowing to use the Bukkit API in a thread-safe manner.
2015-03-19 02:01:26 +01:00
Prokopyl 7a8ec83d6a Implemented the command management classes (inspired from CommandTools).
* NEW: Added command management classes.
* NEW: Added an unfinished implementation of /maptool new.
* NEW: Added the shortcut command /tomap (alias of /maptool new).
2015-03-18 01:49:30 +01:00
Prokopyl e4bd514a6e * OPT: Fix a few compilation warnings. 2015-03-17 00:32:42 +01:00
Prokopyl 1cb42e4965 Started refactoring. Plugin is not working yet !
* 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.
2015-03-16 20:40:44 +01:00
Prokopyl bdf35e9eef * BUG: Map items show correctly their position if they are part of a multiple-map poster. 2015-02-18 15:27:07 +01:00
Prokopyl aa7aa32592 * NEW: Updated version to 2.99. 2015-02-17 20:01:44 +01:00
Prokopyl 3e19bb0b74 * OPT: Remove the unfinished AnimatedMap implementation for now. 2015-02-17 19:28:58 +01:00
ProkopyL e31c20191f Code cleanup, starting to reorganize packages, and various (unstable!) updates.
* 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.
2015-02-17 18:31:55 +01:00
ProkopyL d541aede3f Cleaning up exception and error management.
* 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.
2015-02-15 13:19:05 +01:00
ProkopyL e19d8b5f39 Fixes for #3.
* 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.
2015-02-14 22:14:22 +01:00
ProkopyL 6474acecdf * NEW: Switched project to Maven. 2015-02-14 19:25:20 +01:00