Florian CUNY
aad36c100f
Added IslandsManager#getIslands()
...
#392
2019-01-20 08:57:19 +01:00
Florian CUNY
3f5736f555
Improved javadoc
2019-01-20 08:52:57 +01:00
tastybento
95b40841ba
Adds all worlds to map in IWM
...
Fixes Multiverse world registration
2019-01-19 11:22:26 -08:00
tastybento
2df5d2a916
Added FlagAdapterTest and fixed deprecation
2019-01-19 08:30:42 -08:00
Florian CUNY
5ce8362fd5
Added addons metrics chart + added AddonDescription#isMetrics so that addons need to explicitely opt in
...
Deprecated AddonDescription.Builder#Builder(String, String) and AddonDescription.Builder#version(String).
Added AddonDescription.Builder#Builder(String, String, String).
Updated tests
2019-01-18 22:06:06 +01:00
Florian CUNY
0f5b5b5693
Fixed IslandResetCommand tests
2019-01-18 21:24:46 +01:00
Florian CUNY
a29bcd457e
Updated FlagSerializers to use FlagsManager#getFlag(String)
2019-01-18 17:40:55 +01:00
Florian CUNY
c5f561c816
Reduced cognitive complexity in IslandResetCommand
2019-01-18 17:40:23 +01:00
Florian CUNY
755433e108
Added islands created count metrics
...
Made BStats class public
Added BentoBox#getMetrics()
2019-01-18 15:12:06 +01:00
Florian CUNY
7153378f5e
Made LockAndBanListener extend FlagListener
2019-01-18 15:00:05 +01:00
Florian CUNY
a392dbc8b3
Fixed minor code smell in AddonClassLoader
2019-01-18 14:59:38 +01:00
Florian CUNY
dfe7fc27e5
Fixed code smell in AddonClassLoader
2019-01-18 12:32:32 +01:00
Florian CUNY
4d9a65151f
Fixed code smells & added some more NonNull/Nullable annotations
2019-01-18 12:10:47 +01:00
Florian CUNY
d57f9544f3
Added NonNull/Nullable annotations to IslandsManager and IslandCache
2019-01-18 11:33:29 +01:00
Florian CUNY
d86b605057
Added Flags#POTION_THROWING
...
#468
2019-01-18 11:08:53 +01:00
Florian CUNY
3f9c917a2f
Added IslandWorldManager#getWorlds()
...
#470
2019-01-17 20:49:54 +01:00
tastybento
ddb3fd63e6
Fix code smells.
2019-01-16 13:43:49 -08:00
Florian CUNY
9497066f44
Merge pull request #471 from BentoBoxWorld/locale-override
...
Adds ability for gamemodes to override locale references
2019-01-16 19:03:25 +01:00
Florian CUNY
eeda960d42
Use #getEnabledAddons() in AddonsManager#getGameModeAddons()
2019-01-16 18:53:11 +01:00
Florian CUNY
f381301b25
Added javadoc tags and NonNull/Nullable in GameModeAddon
2019-01-16 18:51:37 +01:00
tastybento
7d08a0db5a
Enable main player and admin command declaration
...
See https://github.com/BentoBoxWorld/BentoBox/issues/448
2019-01-15 19:33:53 -08:00
tastybento
0636532bb4
Fixed code and tests.
...
Test failures in the User test were right - I had a bug in my code.
2019-01-15 15:23:17 -08:00
tastybento
e56928bef1
Adds ability for gamemodes to override locale references
...
The default BentoBox locale text is geared towards island games. When
writing the SkyGrid addon I am using the standard protection flags, but
I need to reference a "protection area" instead of an "island". This
enables me to do that by having the same reference but prefixed in the
locale file by the name of the addon (in lower case), as written in the
addon's addon.yml.
2019-01-15 13:23:36 -08:00
tastybento
3a9e969a86
Added JavaDoc comments
2019-01-15 11:47:10 -08:00
tastybento
2fa60d0e2d
Added option to not paste a schem when creating a new island
2019-01-15 11:46:09 -08:00
tastybento
b48cc89f73
Added flag default setting for specific world.
2019-01-15 11:45:49 -08:00
tastybento
61481dee44
Added null protection against null world values
2019-01-15 08:33:14 -08:00
Florian CUNY
62d69b1022
Added NonNull/Nullable annotations to FlagListener, deprecated FlagListener#id(String), added FlagListener#getFlag(String)
2019-01-14 15:49:04 +01:00
Florian CUNY
80263d9751
Removed commented-out code in Clipboard
2019-01-14 15:48:16 +01:00
Florian CUNY
7fd6237280
Added comments to DeleteIslandChunks
...
I've also added a sonar suppresswarning to avoid the "issues" when calling regenerateChunk
2019-01-14 15:15:55 +01:00
tastybento
044c67ea28
Fixes bug with concurrent saving of files to the database.
...
Implemented a FIFO to queue async save requests for YAML and MySQL.
The assumption is that most database objects will be held in memory
because the ordering of object loading is not handled. That means that
it is theoretically possible to load something on the main thread before
it has been saved in the async thread if you are really quick. So, in
general, you should load objects once and ideally never load them again
unless there's a big span of time in between so the async can finish.
For most situations, this race condition should not occur, but I'm just
warning about it.
Saving on shutdown is not async and takes as long as it takes.
Also added some defensive code to disable the plugin if the database
connection info is wrong and print an error message instead of lots of
errors.
Changed CleanSuperFlatListener to use a LinkedList for its queue.
2019-01-13 22:17:36 -08:00
tastybento
5ed86ea271
Adds defensive code to avoid NPE with hiding clipboard
2019-01-13 15:57:45 -08:00
tastybento
fa8c0ec0c8
Implements async superflat cleaning
...
Should avoid crashes when there's a lot of cleaning to do.
https://github.com/BentoBoxWorld/BentoBox/issues/431
2019-01-13 15:53:12 -08:00
tastybento
ad3d044e88
Merge branch 'develop' of https://github.com/BentoBoxWorld/bentobox.git into develop
2019-01-13 14:19:31 -08:00
tastybento
96639792b8
Fixed random test failures.
...
Note: If using the User class in a test, you MUST set the mock plugin object using the User.setPlugin() method otherwise each test will use the wrong plugin object and verifications will not work.
2019-01-13 14:19:23 -08:00
Florian CUNY
8260728e9b
Added NonNull/Nullable annotations to CommandsManager
2019-01-13 18:41:38 +01:00
Florian CUNY
a66bc90746
Fixed code smells
2019-01-13 18:27:14 +01:00
Florian CUNY
270e14167e
Made IslandTeamInviteAcceptCommand require confirmation
...
Closes #464 .
2019-01-13 17:35:32 +01:00
tastybento
d8eab7e397
Adds deleteID method to MariaDB
2019-01-13 08:14:08 -08:00
Florian CUNY
35883435e5
Merge branch 'develop' into IslandDelete
2019-01-13 10:33:50 +01:00
Florian CUNY
6f4d3aeaed
Added some more javadoc
2019-01-13 10:28:49 +01:00
Florian CUNY
9cf63611e4
Added some NonNull/Nullable in database code
2019-01-13 10:27:36 +01:00
Florian CUNY
dc7d5b40f2
Renamed DeletedIslandDO to IslandDeletion
2019-01-13 10:21:06 +01:00
Florian CUNY
0f253c35ef
Renamed IslandDeleteManager to IslandDeletionManager
2019-01-13 10:09:35 +01:00
Florian CUNY
165a70aec9
Added MariaDB minimum version in config comment
2019-01-13 10:06:32 +01:00
Florian CUNY
348704f3d9
Added javadoc and updated Settings for MARIADB
...
@barpec12
2019-01-13 10:05:24 +01:00
tastybento
7854187448
Added async saving to YAML and MYSQL
...
Both seem to work fine, but probably need more real-world testing.
2019-01-12 18:18:22 -08: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
tastybento
7a4ca8b48d
Fixed JavaDoc error
2019-01-12 17:04:53 -08:00
Florian CUNY
a1b6f97a1a
Merge pull request #460 from barpec12/master
...
MariaDB 10.2.3+ support.
2019-01-12 22:57:01 +01:00
tastybento
7c1e195eaf
Switch to timer-based chunk deletion
2019-01-12 10:31:25 -08:00
Florian CUNY
457b296372
Fixed code smells
2019-01-12 18:29:20 +01:00
Florian CUNY
76d4edd19f
Added NonNull/Nullable to FlagsManager; deprecated getFlagById(String)
...
Added getFlag(String) that will return an optional instead.
2019-01-12 18:03:19 +01:00
Florian CUNY
12619e79db
Improved links in LogEntry's javadoc
2019-01-12 18:02:32 +01:00
Florian CUNY
c783fa8e16
Started to add Nullable/NonNull annotations
2019-01-12 17:30:47 +01:00
barpec12
961ca02fa1
MariaDB 10.2.3+ support.
2019-01-10 16:54:11 +01:00
tastybento
b51178518a
Fixes admin setowner and info commands for team members
...
https://github.com/BentoBoxWorld/BentoBox/issues/452
2019-01-07 21:37:37 -08:00
tastybento
cd4f0c2561
Fixes Invincible Visitors Settings GUI bug
...
https://github.com/BentoBoxWorld/BentoBox/issues/450
Added enhanced test to this class too.
2019-01-07 21:03:02 -08:00
tastybento
8a63bf80f9
Added defensive code to avoid infinite loop
...
CleanSuperFlat can infinite loop if the generator isn't working.
2019-01-07 20:43:37 -08:00
tastybento
dc8b672286
Added check against duplicate Island UUIDs
...
May relate to https://github.com/BentoBoxWorld/BentoBox/issues/447
2019-01-07 08:03:38 -08:00
tastybento
acb6cd5650
Added defensive null checking code to DB
...
Relates to https://github.com/BentoBoxWorld/BentoBox/issues/447
2019-01-07 07:46:59 -08:00
Florian CUNY
9eec14ffb3
Merge pull request #445 from BONNe/patch-1
...
Unnecessary getPermissionPrefix()
2019-01-07 06:25:57 +01:00
BONNe
dbbfdaea7f
Unnecessary getPermissionPrefix()
...
Kryniowesegryderiusz <3 in Support noticed that Admin tp command has double bskyblock.bskyblock, and I found reason in code.
This getPermissionPrefix() is not necessary, as setPermission() will also add prefix.
2019-01-06 23:32:15 +02:00
Florian CUNY
fe101a6e01
Added "UNOWNED" log to Island
2019-01-06 11:46:25 +01:00
Florian CUNY
d7fbfdb784
Added Island#setRank(UUID, int)
2019-01-06 11:28:37 +01:00
Florian CUNY
55afa166cd
Added some defensive code in some Island's methods
2019-01-06 11:03:32 +01:00
Florian CUNY
9387f65dbf
Added IslandBanEvent and IslandUnbanEvent (cancellable)
2019-01-05 10:23:53 +01:00
Florian CUNY
e3574e5ee3
Added AdminSetspawnCommand
...
#441
2019-01-04 21:33:17 +01:00
Florian CUNY
85fac3112f
Improved IslandsManager#setSpawn(Island) + Javadoc
...
Added some checks to improve the handling.
2019-01-04 21:33:02 +01:00
Florian CUNY
185082f261
Improved Island#isSpawn() and Island#setSpawn() Javadoc + improved handling of Island#setSpawn() and added logging to the Island history
2019-01-04 21:32:21 +01:00
Florian CUNY
c78efb8736
Fixed and improved error handling when loading addons
...
Fixes #440
* Added Addon#getState()
* Added LOADED in Addon.State
* Added AddonsManager#getLoadedAddons() and AddonsManager#getEnabledAddons()
* Improved the loading addons "workflow"
2019-01-04 11:33:35 +01:00
Florian CUNY
2b0ccb4099
Release 1.0 ( 🎉 )
2019-01-03 20:53:18 +01:00
Florian CUNY
967ebccae1
Fixed 'banCooldown' config comment
2019-01-03 20:47:54 +01:00
Florian CUNY
ef96a01fc8
Fixed bug with the YAML Database when saving config containing hidden ConfigEntry
2019-01-03 20:45:51 +01:00
Florian CUNY
74a28963b4
Improved the "aborting bentobox enabling" message
2019-01-03 20:35:51 +01:00
Florian CUNY
d2f10d883d
Set enableAutoOwnershipTransfer to false
2019-01-03 20:26:26 +01:00
Florian CUNY
81435c57f5
Delete GameWorld.puml
2019-01-03 20:26:10 +01:00
tastybento
d13ae470d5
Removed unused imports.
2019-01-03 10:25:03 -08:00
tastybento
2713f58ac5
Fix to fire Island events after an island is created.
...
Events were firing too early before the island had been fully pasted
async.
2019-01-03 10:24:50 -08: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
Florian CUNY
4b4ee1646e
Added '@a' to AdminResetsResetCommand so that we can reset everyone
2019-01-03 17:43:00 +01:00
Florian CUNY
9545c74833
Removed since Javadoc tags
2019-01-03 17:28:18 +01:00
Florian CUNY
a5831947c2
Made automated ownership transfer settings hidden for now
2019-01-03 17:22:20 +01:00
Florian CUNY
4a6a109fa4
Added ConfigEntry#hidden()
2019-01-03 17:22:05 +01:00
Florian CUNY
9f676636e0
Fixed some code smells
2019-01-03 17:09:27 +01:00
Florian CUNY
160749c065
Merge branch 'develop' into 167-automated-island-ownership-transfer
2019-01-03 16:59:13 +01:00
Florian CUNY
2e2c7c69de
Removed deprecated classes
2019-01-03 16:51:57 +01:00
Florian CUNY
bde91b7784
Fixed commands being registered with their main label as fallbackPrefix
...
This has been replaced by "bentobox" or the addon's name.
2019-01-03 16:40:51 +01:00
Florian CUNY
708c014d14
Moved allowObsidianScooping to WorldSettings and renamed ObsidianToLava to ObsidianScoopingListener
...
#432
2019-01-03 16:30:36 +01:00
Florian CUNY
915cd6f293
Made 'general.rank-command' experimental in config
...
#432
2019-01-03 16:19:08 +01:00
Florian CUNY
c549d969a4
Removed 'island.custom-ranks' from config
...
#432
2019-01-03 16:17:01 +01:00
Florian CUNY
369600e4d5
Renamed Island#addToBanList() and Island#removeFromBanList() + added log in them
...
They respectively got renamed to Island#ban() and Island#unban(). They now require the UUID of an issuer (which can be null, but it's better to provide one)
2019-01-03 15:59:24 +01:00
Florian CUNY
fa3dbc5519
Made LogEntry use the Builder pattern
2019-01-03 13:51:46 +01:00
Florian CUNY
245062b36e
Removed the offline message "TODO" in User
...
Most of it will be handled by the Island history
2019-01-03 13:37:54 +01:00
Florian CUNY
0b62c7cf76
Made LogEntry#data a Map<String, Object>
2019-01-03 13:33:46 +01:00
Florian CUNY
265afaf345
Added history to island and Island#log(LogEntry)
2019-01-03 13:26:20 +01:00
Florian CUNY
a638b09ce3
Added LogEntry and its database adapter
2019-01-03 13:25:52 +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