Enable Tab object to reference parent TabbedPanel in the builder. It is
late assigned after building. This enables tabs to get the parent, and
therefore get the Island object.
default methods were used to support backward compatibility.
Spigot JavaPlugin#saveResources either replaces or complains that replacement is disabled. So it is necessary to check if file does not exists before saving it.
Fixes#2259
* Fixes ItemParser.
Implements new Potion and Skull parsing.
Fixes custom model data parsing.
Implements ItemFactory#createItemStack parsing that parses item using `/give` syntax.
Solves some issues mentioned in #2198
* Fixes failing BentoBoxLocaleTest
In runTime ItemFactory#createItemStack from invalid text would throw IllegalArgumentException.
JAR files does not store files inside it with filesystem separator. Only spot where it makes sense to transform "/" into file separator is in output file saving.
* Customizable Island Creation Panel
This implements customizable Island Creation Panel. By default, panel is generated in `/plugins/bentobox/panels` folder, however, if GameModeAddon has a specific panel defined in their folder, then that panel is taken.
* Create UnitTests for new panels
* Add island creation panel saving on loading
* Remove old IslandCreationPanel and move to the new one.
* Fixes some issues with locale and panel
---------
Co-authored-by: tastybento <tastybento@users.noreply.github.com>
* Customizable Language Selection Panel
This implements customizable Language Selection Panel. By default, panel is generated in `/plugins/bentobox/panels` folder, however, if GameModeAddon has a specific panel defined in their folder, then that panel is taken.
* Migrate LanguagePanelTest to customizable panel.
* Remove original LanguagePanel
* Save language_panel.yml on server starting.
* Fixes some bugs in LanguagePanel.
* Adds an ItemAdder hook to delete any blocks when island is deleted.
Also includes a flag for explosions.
* Make the error reporting method non-abstract.
This is not a mandatory method for many hooks.
* Delete this class as it is not used any more and just duplicate.
* Added test class.
* Minor issues resolved.
The obsidian platform was not generating constantly in the same spot. It was moving depending on the entrance point (from the sides).
This code changes it, as it will move through relative blocks.
Also, this change will sync portal and platform center points, which was not done previously.
Fixes#2239
The addition of a null check in the Enchantment Bukkit code causes a lot
of test failures. While we work out how to mock that particular area,
this code avoids running Enchantment code when under test.
There was a bug in the code that prevented to finding of a portal location if the player entered from the side.
It can happen only if the portal frame is removed, but as in vanilla it is possible, then it needs to be addressed.
The fix itself is simple: instead of checking just up from the starting location, the code will check all blocks in 10x10x10 square from the starting location and find the "closest" portal location.
This will fix#2237
There was a bug that used old code (environment switching) for teleportation out of dimension.
The issue should be fixed with calling just calling teleportation with portal environment.
* Fixes bug with island team joining and deletion. Include debug.
* Remove ambiguous API with mutli-island.
* Add back deprecated methods so developers can be wartned not to use them
* Added back in deprecated methods.
* Fix bugs and NPEs.
* Fix some code smells
* Remove debug logging.