* Fixes owner demoting himself to subowner
This occurred whilst owner demoted himself to a subowner that led to non existence of the true owner
* Adds error on demote-yourself message
* Database abstraction WIP
* Removes code duplication in the databases
Fixes a regression bug on database connections - more than 1 were being
made again.
* Added ignores to tests because they run async now
* Adds a cooldown API for flags.
https://github.com/BentoBoxWorld/BentoBox/issues/754
Added 60 second cooldown to PVP flags
* Added cooldowns to database.
This way, if a cooldown is a long one it will be remembered even if the
server restarts.
* Update src/main/java/world/bentobox/bentobox/database/objects/adapters/FlagSerializer3.java
* API addition - adds reset deaths on new island
BentoBox currently tracks deaths in the worlds but the current API only
allows them to be reset when a player joins a team. This setting enables
deaths to be reset when a player starts a new island or resets an
island.
WARN: This should be the only additional WorldSetting we need for deaths.
* Update src/main/java/world/bentobox/bentobox/api/configuration/WorldSettings.java
* Update src/main/java/world/bentobox/bentobox/managers/IslandWorldManager.java
* Update src/main/java/world/bentobox/bentobox/managers/island/NewIsland.java
* Update src/main/java/world/bentobox/bentobox/managers/IslandWorldManager.java
Database closing was occuring too early. In priort releases it was
hidden because the connection would be automatically made again. When
this was removed, it exposed this error.
Now the single database connection will not be closed until all
registered database objects have finished with their async queues.
Further, the database connecter was being made once for each database
type. This was a waste of resources and it also meant that static fields
were being used. Now, only one database connecter object is made and
there are no static fields.
https://github.com/BentoBoxWorld/BentoBox/issues/813
* Add asynchronous task
* First commit
* Add asynchronous tasks for Blueprint.
* Add BlueprintSchematicConverter class to convert schematic in blueprint and inversely
* BlueprintClipboardReader, BlueprintClipboardWriter and BlueprintClipboardFormat have been added !
* BlueprintClipboardReader, BlueprintClipboardWriter and BlueprintClipboardFormat have been added !
* javadoc in BlueprintClipboardFormat
* Rename src/main/java/world/bentobox/bentobox/blueprints/BlueprintClipboardFormat.java to src/main/java/world/bentobox/bentobox/blueprints/worldedit/BlueprintClipboardFormat.java
* Update and rename src/main/java/world/bentobox/bentobox/blueprints/converter/BlueprintClipboardReader.java to src/main/java/world/bentobox/bentobox/blueprints/worldedit/BlueprintClipboardReader.java
* Update and rename src/main/java/world/bentobox/bentobox/blueprints/converter/BlueprintClipboardWriter.java to src/main/java/world/bentobox/bentobox/blueprints/worldedit/BlueprintClipboardWriter.java
* Update and rename src/main/java/world/bentobox/bentobox/blueprints/converter/BlueprintSchematicConverter.java to src/main/java/world/bentobox/bentobox/blueprints/worldedit/BlueprintSchematicConverter.java
https://github.com/BentoBoxWorld/BentoBox/issues/805
Database connectors were creating a new connection every time they were
called. Also the top-level database object was being recreated every
time getDatabase was requested.
Fixes#793
Add missing database transitions from YAML to MongoDB and SQLite.
Add missing database transitions from JSON to MongoDB and SQLite.
Add database transitions from SQLite to JSON.
Add database transitions from MongoDB to JSON.
Add database transitions from MariaDB to JSON.
* Added SQLite database
#570
* Makes SQLite work. Added config.yml option.
Tested on SQLite 3.24.0 2018-06-04 14:10:15
95fbac39baaab1c3a84fdfc82ccb7f42398b2e92f18a2a57bce1d4a713cbaapl
* Fix mariaDB test for close.
* Added test to MySQLDatabaseConnector and Handler
Prevents blueprints from being saved unless they have a bedrock block in
them.
If a blueprint is loaded and does not have a bedrock block, one is added
and a warning given in the console.
Added test class for BlueprintClipboardManager
https://github.com/BentoBoxWorld/BentoBox/issues/777
* Automatically provides key-value pairs for PremadeEvents
https://github.com/BentoBoxWorld/Challenges/pull/138
* Replaces PremadeEvent with BentoBoxEvent to make it look nicer.
* Cleaned up javadoc in BentoBoxEvent
* Cleaned up javadoc in PremadeEvent
* Added javadoc to async constructor in BentoBoxEvent
Previous check only looked for BEDROCK specifically. Actually, if there
is any block there, it should be true. Admins may accidentally remove
the bedrock and so this is a much safer approach.
https://github.com/BentoBoxWorld/BentoBox/issues/771
* Fix ender dragon issue in 1.14+
Mojang changed spawn chunk loading again, so they are all time loaded again. That mean, previous hack, that puts a portal on chunk load will not work anymore, as chunks are loaded before the event even is registered.
I fixed it by moving from ChunkLoadEvent to PlayerChangeWorldEvent as it will kick always when player joins the end.
* improved javadoc
https://github.com/BentoBoxWorld/BentoBox/issues/737
There are a lot of duplicate code here but I'm afraid it may require a more in-depth redesign of the placeholders than what we're allowed to do in a patch version.
Javadocs of the default placeholders have also been slightly improved.
* Fix NPE in PanelListenerTests
This will fix null-pointer.
One test will fail, as it is kinda bad as it conflicts with #761
* Re-ignored one of the test as it still fails
* Fix Challenges GUI issue 132
Fixed https://github.com/BentoBoxWorld/Challenges/issues/132
This issue happens because AnvilGUIClick event was processed after BentoBox registers new Panel.
I add extra check in InventoryClickEvent that not only checks if user has opened panel, but also compares if event and panel has the same inventory, before processing it as BentoBox Panel.
* Removed the unneeded PlayerKickEvent
- Each /bentobox subcommand now has its own dedicated permission
- bentobox.admin is a permission node for most of them
- /bentobox about: bentobox.about
- /bentobox version: bentobox.version
- updated the plugin.yml with the new permissions
https://github.com/BentoBoxWorld/BentoBox/issues/731
Issue was that classes were not being fully removed from class loaders
and commands needed to be unregistered from Bukkit. For the latter,
reflection was required to obtain the knownCommand map and change it
because there is no Bukkit API to unregister commands.