Commit Graph

268 Commits

Author SHA1 Message Date
tastybento 180b88544a Database transition (#662)
- JSON is now the default database type
- JSON database files are now pretty-printed
- It is now possible to migrate from a database type to another through the use of a command and specific transition database types
- It is recommended to move from YAML to JSON.

= Commits breakdown =

* Proposal to make JSON the default database and retire YAML.

* Make JSON file format easier to read.

* Fix tests.

* Adds a hybrid Yaml2Json database type.

This database always tries to use JSON if it is available. If a YAML
file is found, it will be loaded and replaced with a JSON file.

* Move to generic database transition code

* Better comments

* Adds transitional database options so admins can choose.

Adds Yaml2MySQL option and changes config.yml to add instructions.

* Enables full database migration between databases.

Adds /bbox migrate command.

Adds a number of transition databases. DB starts transition  when the
server boots up and will migrate organically. The admin can force an
immediate update using the bbox migrate command.

This operation requires an API breaking change: Addons that use the
Config API must now implement ConfigObject in their config class instead
of DataObject. This is to differentiate YAML config classes from YAML
database classes. If a class is already implements WorldSettings
(GameModeAddons), then no change is required because WorldSettings
implements ConfigObject now. If an old addon is used that does not
implement ConfigObject, BentoBox will not load.

* Added null check to YAML deletion

* Removed the 2YAML transition dbs because YAML is deprecated.

YAML does not support some data structures so conversion could corrupt
data.

* Fixed some javadoc and added missing DatabaseType#JSON2MARIADB

* Renamed package database/transitiondb to database/transition
2019-05-08 21:15:22 +02:00
tastybento d8799f183f Makes copying schems to the clipboard async.
https://github.com/BentoBoxWorld/BentoBox/issues/504
2019-05-05 16:39:11 -07:00
tastybento 809e18b971 Adds island near command. 2019-05-04 22:24:04 -07:00
tastybento 9e15907f93 Added DYE protection flag
https://github.com/BentoBoxWorld/BentoBox/issues/653
(cherry picked from commit e94000528791e1abb30d19305e36529d825287b9)
2019-05-04 11:16:31 +02:00
Florian CUNY 95c0c612da Improved /bbox locale 2019-05-01 10:48:47 +02:00
Florian CUNY f5b9b772d8 Made en-US more consistent 2019-04-28 15:11:45 +02:00
Florian CUNY 2eb0d657b4 Fixed typo in en-US locale 2019-04-28 14:40:28 +02:00
tastybento 8a885eac7f Refactor of clipboard to separate out file saving/loading (#641)
* Refactor of clipboard to separate out file saving/loading

There's now a clipboard manager to handle file system loading and saving
so that the clipboard works purely in blocks (YAML).

* Fixes a few bugs

* Renamed getClipBoard to getClipboard
2019-04-28 13:41:24 +02:00
Florian CUNY 6100420bae Added better success messages to admin team commands
#630
2019-04-28 11:21:58 +02:00
Florian CUNY f333cfbe6f Added [name] textvariable to admin setowner command 'already-owner' message 2019-04-28 11:15:26 +02:00
Florian CUNY 722f136e3f Added better success message to AdminTeamKickCommand
#630
2019-04-28 10:39:31 +02:00
Florian CUNY a612f20af9 Removed useless empty strings from en-US locale 2019-04-28 10:23:16 +02:00
Florian CUNY 3ef6529c40 Added better success messages for admin deaths and island team kick commands
#630
2019-04-28 10:21:35 +02:00
Florian CUNY 8ba0ebd170 Added better success feedback messages for IslandBanCommand and IslandUnbanCommand
#630
2019-04-27 21:03:40 +02:00
Florian CUNY b556b3fb0a Added a description templates for icons in the catalog
Also made them display the (unlocalized) description and topic.
2019-04-21 16:10:09 +02:00
Florian CUNY a728f5e531 Finished implementation of the Catalog Panel
It requires some polishing, but it is working.
2019-04-21 10:28:48 +02:00
Florian CUNY 70f589538c Setup the basic Catalog panel 2019-04-20 12:00:59 +02:00
Florian CUNY 80f269c38d Added description for /bbox catalog (en-US) 2019-04-19 10:40:07 +02:00
Florian CUNY a18ed9b999 Added a "compatibility" icon in the Management Panel 2019-04-17 21:54:30 +02:00
Florian CUNY 1d119ddea1 Removed "warp not safe" message, replaced with the (renamed) "no-safe-location-found" 2019-04-11 10:37:14 +02:00
Florian CUNY a25ab326c3 Added OFFLINE_GROWTH flag localization (en-US)
Damn, how could I have missed that + how could nobody have noticed already ? xD
Thanks Liam from Discord!
2019-04-10 21:52:19 +02:00
Florian CUNY c687d18385 Introducing the BentoBox Management Panel (/bbox manage)
As it mostly relies on other panels yet-to-be-implemented, it doesn't do much. But it was fun to do!
2019-04-10 14:37:14 +02:00
tastybento 7990378355 Adds island expel command.
Requires GameModeAddons to use it.

https://github.com/BentoBoxWorld/BentoBox/issues/524
2019-03-21 20:41:30 -07:00
tastybento 99e9ad6ac8 Makes podzol yield podzol when broken if coarse dirt tilling is denied
https://github.com/BentoBoxWorld/BentoBox/issues/613
2019-03-20 23:38:02 -07:00
tastybento 05e542442e Adds an admin schem list command and test class
Lists available schems for game mode

https://github.com/BentoBoxWorld/BentoBox/issues/563
2019-03-20 22:33:30 -07:00
BONNe 07b4e2d30c Fixed ArrayOutOfBoundsException in admin delete command (#600)
When admins tried to delete island, they got an ArrayOutOfBounds exception.
This will fix it.
2019-03-08 20:38:59 +01:00
Florian CUNY 980cdb9b9f Added Flags#EXPERIENCE_BOTTLE_THROWING (splited from POTION_THROWING) 2019-03-01 21:10:27 +01:00
Florian CUNY b5a657de52 Added Flags#LEAF_DECAY 2019-02-24 17:49:07 +01:00
Florian CUNY 7da7dd4884 Added a better "not-in-team" message for AdminTeamKickCommand
#577
2019-02-24 11:22:33 +01:00
Florian CUNY 7fff4257fa Added Flags#DRAGON_EGG
#559
2019-02-23 11:03:00 +01:00
Florian CUNY a916e04136 Improved '/bbox v' description
#555
2019-02-22 09:58:48 +01:00
tastybento 30e3dbf269 Fixes NPE if admin register cannot get a valid island slot 2019-02-20 13:17:11 -08:00
Florian CUNY e44894a803 Added Island's UUID in Island#showInfo(User) 2019-02-20 15:38:38 +01:00
Florian CUNY 302ab0fd3a Fixed 'commands.island.team.invite.accept.confirmation' in en-US locale 2019-02-20 11:28:24 +01:00
Florian CUNY 9b1e955d18 Added Flags#FLINT_AND_STEEL, Flags#FIRE_BURNING, Flags#FIRE_IGNITE and removed Flags#FIRE + fixed Flags#FIRE_SCOOPING description in en-US locale
Closes #414

commit 0b551d174289ea1b75e55f0f4d268592a716f66f
Author: Florian CUNY <poslovitch@bentobox.world>
Date:   Tue Feb 19 10:50:08 2019 +0100

    Updated FireListenerTest

commit 3f2cc83037e1994a686bacd4d8541eece8c9dc53
Author: Florian CUNY <poslovitch@bentobox.world>
Date:   Tue Feb 19 10:40:46 2019 +0100

    Added descriptions in en-US for FIRE_BURNING, FIRE_IGNITE and FLINT_AND_STEEL

commit 880df9e904a0121804a73c2fcb40b9faa2aa290b
Author: Florian CUNY <poslovitch@bentobox.world>
Date:   Tue Feb 19 10:35:54 2019 +0100

    Fixed description of FISH_SCOOPING

commit 02259b0f8fdad31e7431d4d525b74bee6b499813
Author: Florian CUNY <poslovitch@bentobox.world>
Date:   Tue Feb 19 10:34:54 2019 +0100

    Improved description of FIRE_SPREAD

commit 92c5d137d8fb114dacdebc32626e04a5ee16982b
Author: Florian CUNY <poslovitch@bentobox.world>
Date:   Tue Feb 19 10:30:17 2019 +0100

    Added Flags#FIRE_BURNING and Flags#Fire_IGNITE

    These are SETTING flags

commit 0be4a87c1986a55a15fa16e87e4073921a269e34
Author: Florian CUNY <poslovitch@bentobox.world>
Date:   Tue Feb 19 10:21:52 2019 +0100

    Added Flags#FLINT_AND_STEEL

    #414
2019-02-19 10:56:11 +01:00
tastybento bce17ce467 Added admin trash command to handle damaged island db (#546)
* WIP - adds admin commands to handle damaged island db

Trash, purge, etc.

DO NOT MERGE YET

https://github.com/BentoBoxWorld/BentoBox/issues/505

* Prefixes the island uniqueId with the game mode name.

This enables manual removal of old game mode island files from the
database by admins if required.

* Adds Admin trash and empty trash commands

* Adds various commands for trash management

* Remove unused imports

* Forgot the javadoc in IslandsManager
2019-02-17 13:32:05 +01:00
tastybento 063303ad0e Adds admin command to reset all island flags to default
Used when an admin wants to change the default flag settings for all
islands and reset every one in the world.
2019-02-16 22:31:46 -08:00
Florian CUNY 4873d11ec3 Added Flags#BOAT
#387
2019-02-10 23:11:11 +01:00
Florian CUNY c86fb35aac Added Flags#MINECART
#387
2019-02-10 22:55:45 +01:00
Florian CUNY 82e7093fbc Added Flags#NATURAL_SPAWNING_OUTSIDE_RANGE
#513
2019-02-10 13:14:24 +01:00
Florian CUNY b8afd1919f Added Flags#TREES_GROWING_OUTSIDE_RANGE
#512
2019-02-09 11:39:12 +01:00
Florian CUNY 281d16c175 Added ability to reload BentoBox's configuration using /bbox reload
#370
2019-02-06 16:46:17 +01:00
Florian CUNY ca2bb18a56 Improved javadoc and locale description for LIQUIDS_FLOWING_OUT 2019-02-06 16:17:58 +01:00
Florian CUNY 280f2e6c1c Added server version to /bbox v output
#518
2019-02-06 15:46:21 +01:00
Florian CUNY 8786c3a879 Fixed /bbox v using [name] textvariable to display BentoBox's version instead of [version] 2019-02-06 15:28:09 +01:00
tastybento dba9829fd9 Makes the end exit island removal a world setting
https://github.com/BentoBoxWorld/BentoBox/issues/223
2019-02-03 22:54:49 -08:00
Florian CUNY 1c06584131 Added Flags#LIQUIDS_FLOWING_OUT
Also fixed some Javadoc in Flags, and I've also done my very first test unit!

#511
2019-02-03 14:05:28 +01:00
Florian CUNY c0c7cd6d26 Fixed colors in OBSIDIAN_SCOOPING description in en-US locale 2019-02-03 11:06:32 +01:00
Florian CUNY b8d9b410ae
Merge pull request #510 from mkcoldwolf/master
Added zh-HK locale and small fix for some others
2019-02-02 17:21:29 +01:00
mkcoldwolf a88fc4e45c
Update en-US.yml
Fixed locale that protection.ITEM_FRAME is missing in /is settings
2019-02-02 21:37:24 +08:00
Florian CUNY 53eec634fb Added some dots at the end of sentences in en-US locale 2019-02-02 11:30:19 +01:00
Florian CUNY ce025cc49f Fixed typos in en-US locale 2019-02-02 10:38:25 +01:00
Florian CUNY dc61f06554 Added IslandSpawnCommand
#382
2019-01-20 09:22:46 +01:00
Florian CUNY d86b605057 Added Flags#POTION_THROWING
#468
2019-01-18 11:08:53 +01:00
Florian CUNY 270e14167e Made IslandTeamInviteAcceptCommand require confirmation
Closes #464.
2019-01-13 17:35:32 +01:00
tastybento 501c3257ed Island delete enhancements
Island deletion is done a few chunks at a time per tick. Current speed
is 5 chunks per tick per world (e.g., 15 chunks per tick if nether and
end islands are used).

Chunks are deleted based on the all-time maximum protection range of the
island. This is because the protection range can grow bigger or smaller
over the island's lifetime. To ensure all possible chunks are erased,
the largest every protection range is remembered and used.

Very large protection ranges will take a long time to fully delete.

Info on islands that are being deleted is stored in the database. If the
server shuts down mid-deletion, deletion will restart when the server
restarts.

While an island is being deleted, new islands cannot occupy that spot
and the spot cannot be reserved by the admin.

In addition, async approaches to island saving and player saving were
removed. Async will be implemented another way.

Now, instead of saving the full island or player database, individual
database entries are saved instead to be more efficient.
2019-01-12 17:12:30 -08:00
Florian CUNY e3574e5ee3 Added AdminSetspawnCommand
#441
2019-01-04 21:33:17 +01:00
tastybento 8452a080f7 Merge branch 'develop' of https://github.com/BentoBoxWorld/bentobox.git into develop 2019-01-03 09:47:04 -08:00
tastybento 5351b162c5 Moved obsidian scooping to be a world flag in settings 2019-01-03 09:46:56 -08:00
Florian CUNY 000d556c7f Improved the "successfully-loaded" message 2019-01-03 18:12:32 +01:00
tastybento 96bf67eb19 Added generic reload command for addons to use
This command just runs the onReload method so that individual addons can
reload their stuff.
2019-01-02 15:40:49 -08:00
tastybento 5f193b19f5 Merge remote-tracking branch 'origin/develop' into async-paste2 2019-01-02 10:44:50 -08:00
tastybento 81a0b3290f Adjustment to English locale file for addon reloading
https://github.com/BentoBoxWorld/BentoBox/issues/370
2019-01-02 10:22:39 -08:00
Florian CUNY be91e137a8 Implemented Addons reloading
Relates (a bit) to #370
2019-01-02 17:49:37 +01:00
Florian CUNY c078d8dce6 Added ban limit (#getBanLimit() in WorldSettings)
Closes #423.

I had some trouble with unit testings, that's why I didn't update them to test the new features :(
2019-01-02 14:37:52 +01:00
tastybento c4a5eb2c88 WIP pastes but attachments fall when split across paste boundaries 2018-12-30 18:09:56 -08:00
Florian CUNY 26c65f9b54 Moved the admin resets-related commands under their own node
Preparing #353.

AdminClearresetsallCommand is deprecated with no current alternative right now.
2018-12-29 10:52:13 +01:00
Florian CUNY d339444feb Renamed CHEST flag to CONTAINER
#402
2018-12-28 11:14:52 +01:00
Florian CUNY 5cddfca3b7 Added en-US localization for DISPENSER and DROPPER flags 2018-12-28 10:56:14 +01:00
Florian CUNY 3e7c97c370 Added HOPPER flag
#401
2018-12-28 10:54:07 +01:00
Florian CUNY f662efc43e Added PREVENT_TELEPORT_WHEN_FALLING flag (WORLD_SETTING)
Closes #403
2018-12-27 11:47:11 +01:00
tastybento 0adc2e3078 Uses current API to enable multiple schems.
This will load all schems in an add-on's schem folder if it exists and
associate them with this world set (overworld, nether and end). Schems
can be named anything, but the partner nether or end worlds must be
pre-fixed with "nether-" or "end-" in the filename.
Additional schems can be added by the admin into the schem folder, or
they can be stored in the jar file of the add-on. Both are supported.

No changes are required to current add-ons. I.e., there is no API
breakage here, but I would like to rename the SchemsManager method
loadIslands(World world) to be loadSchems(World world) in the future.

Related issues/PR:
https://github.com/BentoBoxWorld/BentoBox/issues/104
https://github.com/BentoBoxWorld/BentoBox/issues/207
https://github.com/BentoBoxWorld/BentoBox/issues/378
https://github.com/BentoBoxWorld/BentoBox/pull/408
2018-12-23 19:31:00 -08:00
Florian CUNY 2d533ed8ad Splited PORTAL flag to NETHER_PORTAL and END_PORTAL
#388
Remove the "silent" parameter when doing the check for the End portal: the Notifier will do the job to not spam the player.
2018-12-16 10:42:04 +01:00
Florian CUNY 3e18669abc Updated en-US for the new NAME_TAG flag
#390
2018-12-16 10:25:46 +01:00
Florian CUNY d3be8afb08 Put colors in Settings Panel's categories
Fixes #383
2018-12-15 11:22:41 +01:00
Florian CUNY d80e690ad0 World Settings with sub-panel now have their name yellow
#383
2018-12-15 11:14:56 +01:00
Florian CUNY 5258a1486e Fixed settings description formatting in locales 2018-12-15 10:43:10 +01:00
Florian CUNY 42ab3999b2 Fixed ENDERMEN-related settings color inconsistency
Fixes https://github.com/BentoBoxWorld/bentobox/issues/383#issuecomment-447529338
2018-12-15 10:38:51 +01:00
Florian CUNY 8a16940e14 Added 'commands.help.syntax-no-parameters' to avoid command help layout inconsistencies
Fixes #379
2018-12-14 15:44:33 +01:00
Florian CUNY b88e93a61c Added IslandInfoCommand
#361
* Added IslandInfoCommand : "/is info" or "/is who". This is basically a copy/paste from AdminInfoCommand, and it uses the same methods.
* Updated en-US locale accordingly
2018-12-13 09:58:35 +01:00
Florian CUNY f61b109060 Added EXPERIENCE_PICKUP flag
#217
* Added EXPERIENCE_PICKUP flag (as a PROTECTION flag)
* Created ExperiencePickupListener
* Updated en-US locale accordingly
2018-12-12 20:45:55 +01:00
Florian CUNY 486de0dc19 Added admin command to reset/set deaths
#76
* Added AdminDeathsCommand
* Added AdminDeathsResetCommand
* Added AdminDeathsSetCommand
* Updated en-US locale accordingly
* Added "general.errors.must-be-positive-number" to the en-US locale
* Fixed some formatting in the en-US locale
2018-12-11 14:51:05 +01:00
tastybento 1a1fe14775 Merge branch 'develop' of https://github.com/BentoBoxWorld/bentobox.git into develop 2018-12-09 22:54:44 -08:00
tastybento 3dd7126ca9 Added coop removal when all island members log out.
Needs to be tested.
2018-12-09 22:54:37 -08:00
Florian CUNY 58ded638f2 Added FROST_WALKER flag
#183
It was previously protected by PLACE_BLOCKS.
2018-12-09 17:07:12 +01:00
Florian CUNY 76af2335e2 Finished max-islands (from WorldSettings) 2018-12-09 14:19:53 +01:00
Florian CUNY b20ef00853 Updated locales to replace all references of "leader" to "owner"
The island owner is no longer both known as "owner" or "team leader" depending on the methods you're using : it's "owner" everywhere now. Period. 🎉
2018-12-09 13:41:09 +01:00
Florian CUNY ae23ad913a Renamed general.errors.not-leader to general.errors.not-owner 2018-12-09 13:18:24 +01:00
tastybento 46bb958a6d Added protection against turtle egg crushing.
Added test class for physical interactions.

EWR -> DEN
2018-11-30 18:49:58 -05:00
tastybento ff2983629d Fixes protection for scooping tropical fish.
https://github.com/BentoBoxWorld/bentobox/issues/349

Also added pagination to protection flags and localized alphabetical
sorting of the flags.

Also added defensive code should a flag enum be removed but it is still
in the island database. In this case it will just be ignored and at the
next database object save it will disappear.
2018-11-20 16:35:03 -08:00
Florian CUNY 64c9d549d8 Replaced %bsb_plugin_name% by BentoBox
This "placeholder" actually never existed, it just got put in the locale files in anticipation of the placeholders implementation
2018-11-19 08:07:53 +01:00
Florian CUNY 23af6e7012 Few fixes to COARSE_DIRT_TILLING flag
#337
2018-11-11 10:22:18 +01:00
Florian CUNY 6df262a14b Added COARSE_DIRT_TILLING World Setting flag 2018-11-10 14:31:36 +01:00
Florian CUNY 13c483e5eb Renamed AdminTeamMakeLeaderCommand to AdminTeamSetOwnerCommand 2018-10-28 10:19:14 +01:00
Florian CUNY 8b821e9f47 Fixed paramters -> parameters in en-US locale 2018-10-27 15:43:36 +02:00
Florian CUNY ec2793e6f8 Made IslandSethomeCommand a ConfirmableCommand
#237

It adds a bunch of WorldSettings and updates the en-US locale as well!
2018-10-25 09:43:36 +02:00
Florian CUNY 42ffe34796
Rewrote schem main command parameters
#305
2018-10-14 08:12:30 +02:00
Florian CUNY 711db68448
Merge pull request #304 from BentoBoxWorld/why
Why admin command
2018-10-14 07:35:14 +02:00
tastybento ebeaa650d9 Adds the addon name to the world list for version.
https://github.com/BentoBoxWorld/bentobox/issues/285
2018-10-14 12:22:27 +09:00
tastybento 8cc2d1678a Added English locale text for schem commands.
https://github.com/BentoBoxWorld/bentobox/issues/305
2018-10-14 11:46:30 +09:00
tastybento e89cdb8d6a WIP: Added admin why command. 2018-10-12 16:19:21 -07:00
tastybento 7515b39583 Shows plugin version in version command.
https://github.com/BentoBoxWorld/bentobox/issues/285
2018-10-05 17:57:11 -07:00
tastybento 2df049f70d Implements protection for standard Nether and End
This was missing so it needed to be added.

Related to: https://github.com/BentoBoxWorld/addon-bskyblock/issues/9
2018-09-25 22:20:30 -07:00
Florian CUNY 02be048192 Removed "general.errors.unknown-player-name" : added a "[name]" textvariable in "general.errors.unknown-player"
Closes #263
2018-09-15 10:39:16 +02:00
Florian CUNY 07547472b8
Fixed color general.errors.no-permission in en-US 2018-08-31 20:17:41 +02:00
Florian CUNY d04b286055 Removed `obsolete` from locales 2018-08-16 10:49:57 +02:00
tastybento e12eb85bce Added Japanese locale and fixed US locale typos 2018-08-15 23:50:01 -07:00
tastybento 3d069910f9 Added colors to english locale 2018-08-15 21:08:50 -07:00
tastybento 4681a0bd7d Added BentoBox reload command
Only reloads locales for now.
2018-08-12 19:52:13 -07:00
tastybento c1a6a233a9 Added team coop, uncoop, trust and untrust commands. 2018-08-12 16:43:47 -07:00
tastybento 67dc4eedb3 Merge remote-tracking branch 'origin/develop' into command_ranks 2018-08-12 13:46:01 -07:00
Florian CUNY 3212b7180d Changed a few locale references for consistency
Removed `general.errors.you-need` to put the [permission] variable in the `general.errors.no-permission`.
Renamed all confirmation-related references to `commands.confirmation.xxx`.
Renamed `protection.panel.flag-item.xxx_rank` to use a dash instead of an underscore.
2018-08-12 18:47:31 +02:00
tastybento d44889e7b0 Added command rank settings and extra ranks. 2018-08-11 21:08:04 -07:00
Florian CUNY 406441fc1e Version FC-0.92 2018-08-11 15:12:42 +02:00
Florian CUNY 1455d6e7f5 Locales : added meta.banner, meta.auhors and meta.version 2018-08-07 16:26:37 +02:00
Florian CUNY 90a868bc40 Updated ItemParser to use the new banner materials 2018-08-07 16:02:29 +02:00
tastybento 1256b0ee22 Added a bentobox command
Added reference about and info commands. These command run across worlds
and currently have no perms associated with them.

The main point was to enable BentoBox to have is own commands.
2018-08-04 20:43:38 -07:00
tastybento bad870d3da Reapplied commit to improve Maven.
Fixed test class failure.
2018-08-03 19:10:09 -07:00