Commit Graph

1558 Commits

Author SHA1 Message Date
Florian CUNY
1eac578ba1 Moved the Nether trees conversion to its own listener 2019-02-14 11:08:54 +01:00
Florian CUNY
1a3049b3b9 Fixed code smells 2019-02-14 10:41:39 +01:00
Florian CUNY
6b0b0237cd Removed unused import 2019-02-13 11:12:06 +01:00
Florian CUNY
a1d8c69556 Added BentoBox#logStacktrace(Throwable) 2019-02-13 11:03:26 +01:00
Florian CUNY
d5750ca509 Removed 'duplicate' log in AddonsManager#handleAddonError() 2019-02-13 10:51:12 +01:00
tastybento
58253eb7d7 Implements gamemode-specific flags API (#541)
* Implements gamemode flags API

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

* New and improved
2019-02-13 07:58:33 +01:00
tastybento
f89419f3d8 Made declaring the player mandatory when calling FlagListener#checkIsland(...) (#543)
* WIP - See FlagListener.java for changes

Makes declaring the player mandatory for checkIsland method so it cannot
be forgotten and will be fresh every check.

See BlockInteractionListener for how it will look.

* Update src/main/java/world/bentobox/bentobox/api/flags/FlagListener.java

Co-Authored-By: tastybento <tastybento@users.noreply.github.com>

* Update src/main/java/world/bentobox/bentobox/api/flags/FlagListener.java

Co-Authored-By: tastybento <tastybento@users.noreply.github.com>

* Adjusted all the flags to new API
2019-02-13 07:55:36 +01:00
tastybento
3ca0c440e4 Sets initial home location in middle of block 2019-02-12 20:03:02 -08:00
Florian CUNY
c2a7ca86ff Fixed some code smells 2019-02-12 20:29:20 +01:00
Florian CUNY
7893c03a64 Merge branch 'github' into develop 2019-02-12 16:44:36 +01:00
Florian CUNY
7e0ea8d945 Added WebManager 2019-02-12 16:24:51 +01:00
Florian CUNY
3fb60480ff Added AddonDescription#getRepository() 2019-02-12 16:11:11 +01:00
Florian CUNY
68b7702b1c Made AddonClassLoader#asDescription() use 'false' as getBoolean("metrics")'s default value 2019-02-12 16:09:20 +01:00
Florian CUNY
592e144ef0 Removed useless super(); in RanksManager's constructor 2019-02-12 16:08:20 +01:00
Florian CUNY
7fa72fdb81 Added NonNull to FlagsManager#plugin 2019-02-12 16:07:58 +01:00
Florian CUNY
9d41991c75 Added API to get data from GitHub's Web API
This took me quite a long time, but I did it!
2019-02-12 15:34:26 +01:00
Florian CUNY
600634db2e Added Util#parseGitHubDate(String) 2019-02-12 14:51:52 +01:00
tastybento
d7db3b034c Removed debug 2019-02-11 22:44:38 -08:00
tastybento
75c9f6fb2c Enables dragon to be summoned using /summon command
https://github.com/BentoBoxWorld/BentoBox/issues/522
2019-02-11 19:11:48 -08:00
tastybento
179a71b548 Get island by its UUID API added
https://github.com/BentoBoxWorld/BentoBox/issues/341
2019-02-11 19:01:44 -08:00
tastybento
9dfb0573d9 Adds test class for Island Sethome command.
Refactors some of IslandSethomeCommand class to use the new canExecute
method.
2019-02-11 15:54:15 -08:00
tastybento
dd3bd6d9e7 Fixes sethome in nether and end bug.
https://github.com/BentoBoxWorld/BentoBox/issues/538
2019-02-11 14:46:54 -08:00
tastybento
1d5057ec5a Explicitly sets user for break blocks check.
The user was not being set. Also the ordering of event handling was
random because both listeners had the same priority.

Should fix:
https://github.com/BentoBoxWorld/BentoBox/issues/534
2019-02-11 07:39:03 -08:00
tastybento
28c89ff814 Revert "Explicitly set user for break blocks listener"
This reverts commit 5beeb97f99.
2019-02-11 07:16:16 -08:00
tastybento
9a3d4bef03 Handles setspawn better when a player owns the island
Island members were not being cleared from the island properly. It
should be done via IslandManager and not directly on the island object
because the island manager holds a number of ownership maps. Also the
player needs to have their island home locations cleared. Further, any
members of the island also need to be completely cleared from the
island.
Finally, as this is similar to unregistering the player from the island,
the event should be fired so that any addons know the island is no
longer owned and the owner no longer owns an island.
2019-02-10 22:04:05 -08:00
tastybento
564f60bab3 Fixes loading and setting of spawn island.
https://github.com/BentoBoxWorld/BentoBox/issues/523

When loading islands the spawn setting was not being checked so spawn
islands were not added to the spawn island map.
2019-02-10 22:00:50 -08:00
tastybento
ce0b9569ca Corrected comment 2019-02-10 21:58:56 -08:00
tastybento
ac2e3596f7 Made admin unregister command confirmable.
Uses new canExecute API.
Also correctly removes any island members from the island.
2019-02-10 21:57:58 -08:00
tastybento
1dc56dfc4f Removes runnable from approach.
This could cause problems with threads because runnable should not be
run like this (effectively async). It should only be run inside a Bukkit
scheduled task to run on the main thread.
2019-02-10 20:11:50 -08:00
tastybento
0cf0742c07 Remove code duplication. 2019-02-10 20:09:39 -08:00
tastybento
583311ce03 Merge branch 'develop' of https://github.com/BentoBoxWorld/bentobox.git into develop 2019-02-10 20:06:22 -08:00
tastybento
5beeb97f99 Explicitly set user for break blocks listener
Removed duplicate break blocks listener in
BlockInteractionListener.java. Why was it there? Am I missing something?
2019-02-10 20:06:13 -08:00
Florian CUNY
f0543bc85c Fixed SafeSpotTeleport being way too spammy
https://github.com/BentoBoxWorld/BentoBox/issues/306#issuecomment-462190682
2019-02-11 00:47:26 +01:00
tastybento
04e4b2dbe5 Merge branch 'develop' of https://github.com/BentoBoxWorld/bentobox.git into develop 2019-02-10 15:36:46 -08:00
tastybento
8334de8cba Fixes island pasting issue when pasting clipboard every tick.
https://github.com/BentoBoxWorld/BentoBox/issues/535

due to race conditions with task timers and incorrectly shared field
variables, islands would not paste completely if pasted every tick.
Now pasting is handled in its own class with a new instance created with
each paste.
2019-02-10 15:36:37 -08:00
Florian CUNY
4873d11ec3 Added Flags#BOAT
#387
2019-02-10 23:11:11 +01:00
Florian CUNY
a2607c913f Fixed AdminDeleteCommand tests (oopsie) 2019-02-10 22:59:03 +01:00
Florian CUNY
c86fb35aac Added Flags#MINECART
#387
2019-02-10 22:55:45 +01:00
Florian CUNY
865a1d0caa Added BentoBoxCommand#canExecute(User, String, List<String>)
#530
2019-02-10 22:32:33 +01:00
Florian CUNY
0fd043df23 Partially fixed island owner losing inventory on /is team kick
Partially fixes #521.
See https://github.com/BentoBoxWorld/BentoBox/issues/521#issuecomment-462128961 for reference.
2019-02-10 13:34:17 +01:00
Florian CUNY
f71ca4f084 Fixed likely NPE in IslandTeamKickCommand 2019-02-10 13:21:01 +01:00
Florian CUNY
890217939b Added some more package-info.java 2019-02-10 13:14:40 +01:00
Florian CUNY
82e7093fbc Added Flags#NATURAL_SPAWNING_OUTSIDE_RANGE
#513
2019-02-10 13:14:24 +01:00
BONNe
9708d9d3ed Correct Ender Dragon Block.
In Spigot (and Bukkit) the end exit portal frame and first dragon is generated after Ender Dragon Legacy check.
This check tries to find if in world exist Exit Portal, and if it does not find it, it generates everything from scratch.
So, to trick legacy check, it is enough to place 1 End Portal somewhere in (0.0) chunk, and portal will not be generated.
2019-02-10 01:28:51 +02:00
tastybento
7b612c102e Revert "Adds method to obtain island via island unique id."
This reverts commit f64968c7c7.
2019-02-09 08:26:55 -08:00
tastybento
46f39c3649 Merge branch 'develop' of https://github.com/BentoBoxWorld/bentobox.git into develop 2019-02-09 08:23:46 -08:00
tastybento
d17d19d5d3 Fixes horse and similar pasting from files
https://github.com/BentoBoxWorld/BentoBox/issues/532
2019-02-09 08:22:47 -08:00
Florian CUNY
b8afd1919f Added Flags#TREES_GROWING_OUTSIDE_RANGE
#512
2019-02-09 11:39:12 +01:00
Florian CUNY
69ca910df4 Made LiquidsFlowingOutListener priority to LOWEST 2019-02-09 11:35:28 +01:00
Florian CUNY
c623e7c036 Documented Flags#EGGS 2019-02-09 09:54:32 +01:00
tastybento
f64968c7c7 Adds method to obtain island via island unique id. 2019-02-08 21:56:14 -08:00
Florian CUNY
af96055753 Added testHasNotPermissionButIsOp in UserTest 2019-02-08 21:25:40 +01:00
Florian CUNY
2bec47ba90 Made User#hasPermission(String) return true if the user is op 2019-02-08 21:17:57 +01:00
Florian CUNY
1e20ccb604 Added package-info.java to flag listeners packages 2019-02-08 20:56:53 +01:00
Florian CUNY
e3c8b0a4c1
Merge pull request #527 from YellowZaki/patch-1
Add island.team.promote permission
2019-02-08 13:26:28 +01:00
tastybento
f7f47e8f44 Defensive code around null worlds
When a world is not loaded it becomes null in Bukkit so that any
references to that world will be null. If an admin removes a game mode,
then the island data was instantly becoming useless and quarantined.
This change leaves the files as-is so that if the game mode is put back,
the world is still viable.

As for home locations that are stored in the Player object, they are
removed so they do not cause errors.
2019-02-07 19:18:46 -08:00
YellowZaki
c949239ed6
Add island.team.promote permission 2019-02-08 02:54:24 +01:00
tastybento
2599839fad Shifted exception logging to logger.
These are really needed if you are writing an addon otherwise you are
blind to any reasons for an error.
2019-02-07 08:10:45 -08:00
tastybento
0d723587e4 Adds addon name to log messages. 2019-02-06 17:39:44 -08: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
93deee7c13 Fixed code smells 2019-02-06 16:06:03 +01:00
Florian CUNY
280f2e6c1c Added server version to /bbox v output
#518
2019-02-06 15:46:21 +01:00
Florian CUNY
5118b30303 Made ServerCompatibility#getServerVersion() and #getServerSoftware() public 2019-02-06 15:45:53 +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
93e95b42a0 Remove end exit island deletion
Reverts that part because it causes an endless loop of chunk reloading
and block placement.
2019-02-05 23:22:18 -08:00
tastybento
446028fbae Revert "Reworks how dragons are removed."
This reverts commit af9de5580a.
2019-02-05 22:54:48 -08:00
tastybento
af9de5580a Reworks how dragons are removed.
Enables manual summoning of end dragons

https://github.com/BentoBoxWorld/BentoBox/issues/522
2019-02-05 18:37:05 -08:00
tastybento
0ad8dabba7 Added @since 1.3.0 tags 2019-02-04 23:19:13 -08:00
tastybento
3ccd19bf9c Fix locales to show correctly based on GameMode and locations
Fixes console translations too.

https://github.com/BentoBoxWorld/BentoBox/issues/519
2019-02-04 23:02:07 -08:00
tastybento
fd882c018b Fixes enderchest world setting
It was being double handled by two listeners.

Fixes:
https://github.com/BentoBoxWorld/BentoBox/issues/516
2019-02-04 22:01:43 -08:00
tastybento
f4c149dd6f Moved test classes to match src packages 2019-02-04 20:39:21 -08: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
tastybento
7c099d941f Added IslandWorldManager test class
Fixed bugs found in IWM
2019-02-03 19:13:14 -08:00
tastybento
6bac97941a Handles null locations and worlds.
Added nullable and nonnull annotations to the IWM class.

https://github.com/BentoBoxWorld/BentoBox/issues/515
2019-02-03 17:54:47 -08:00
tastybento
472b9fa7b6 Adds missing locations to the event builder.
Some addons check the location and have NPE's if it is not set.
2019-02-03 16:28:03 -08:00
tastybento
bf1b59076c Removes the end trophy island
After looking at the server code, it does not appear to be possible to
prevent the end island from generating. However, it can be tricked to
place it very high up by placing a bedrock block at 0,255,0. Then 1
second after it is generated, it can be removed.

This results in the end island owner at 0,0 only being able to build up
to 250 blocks high instead of 255. I added a simple block place listener
to prevent placing of blocks above 250 because they will be deleted any
time the chunk is loaded.

If there's a better way to do this, I'm open to it!
2019-02-03 16:27:30 -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
30fb7820fc Minor modifications to ObsidianScoopingListenerTest 2019-02-03 13:59:00 +01:00
Florian CUNY
87f20e98a3 Removed already used icon condition when registering Flag
ID must be unique, icon may not.
2019-02-03 11:18:57 +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
d31be375da Updated Flags#CREEPER_GRIEFING javadoc 2019-02-03 10:31:37 +01:00
Florian CUNY
b4bd6c4e2c Fixed Flags#END_PORTAL duplicate call to PortalListener 2019-02-03 10:27:03 +01:00
Florian CUNY
ea12d8c167 Moved all the flags listeners to subpackages 2019-02-03 10:22:44 +01:00
tastybento
f60a39a543 Fires team and island events. Adds new events.
A lot of the commands were not firing events. These events are now
needed by addons.

Added new JOINED, REGISTERED, UNREGISTERED reasons for events.

Switched to using Bukkit.getServer() instead of plugin.getServer() in a
number of classes because the former can be mocked but the latter cannot
be because it's marked as a final method in JavaPlugin.
2019-02-02 20:40:44 -08:00
tastybento
360cda5a1c Uses translations for the confirmation call 2019-02-02 18:26:12 -08:00
tastybento
ae9e030aae Moves placeholder manager initialization to before addon loading
This enables addons to register placeholders when they are enabled.
2019-02-02 12:29:16 -08:00
Florian CUNY
8b2ca8db23 Fixed zh-HK locale not having .yml extension 2019-02-02 21:03:35 +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
7e1da2fe2f
Create zh-HK
Directly translate from zh-CN but also update the messages to lastest
2019-02-02 21:39:43 +08: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
384cbf31a7 Version 1.2.1 2019-02-02 14:15:16 +01:00
Florian CUNY
5609a19765 Fixed tab-completion suggesting help more than once
Fixes #416
2019-02-02 14:04:53 +01:00
Florian CUNY
18eba5725c Uncommented out a failing test and added a Ignore annotation to it 2019-02-02 14:04:01 +01:00
Florian CUNY
fb34c54165 Minor code cleanup in CompositeCommand 2019-02-02 12:01:48 +01:00
Florian CUNY
84e89f80cd Fixed players being stuck in SPECTATOR after going through End Portal
Fixes #377

It was due to the SafeSpotTeleport not being flagged as "portal" when issuing the teleportation Nether -> End.
2019-02-02 11:45:31 +01:00
Florian CUNY
ade4a141c4 Started javadoc-ing Flags 2019-02-02 11:30:43 +01: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
fd3815d132 Removed unused import in FlagsManager 2019-02-02 11:29:53 +01:00
mkcoldwolf
8b8a4a01b8
Rename jp-JP.yml to ja-JP.yml
Language Code of Japanese should be ja-JP
2019-02-02 18:17:25 +08:00
Florian CUNY
de69c9c571 Removed deprecated FlagsManager#getFlagByID(String)
This method was actually still used in some classes, so I had to fix them as well.
2019-02-02 11:06:59 +01:00
Florian CUNY
57d70c3d24 Removed deprecated methods in AddonDescription and FlagListener 2019-02-02 10:51:59 +01:00
Florian CUNY
f2078aae3f Fixed additions where at least one operand was not casted as double 2019-02-02 10:47:59 +01:00
Florian CUNY
ce025cc49f Fixed typos in en-US locale 2019-02-02 10:38:25 +01:00
tastybento
f983aa5f44 Fixed permission bug with custom schems and reset
https://github.com/BentoBoxWorld/BentoBox/issues/509
2019-02-01 20:51:57 -08:00
tastybento
f351704e8a Prevent placing of armor stands
https://github.com/BentoBoxWorld/BentoBox/issues/507
2019-02-01 19:44:46 -08:00
tastybento
5755a19e3d Fix name too short and long locale reference
https://github.com/BentoBoxWorld/BentoBox/issues/508
2019-02-01 17:57:04 -08:00
tastybento
16e57dc757 Adds Residence plugin as a loadbefore
Work around for https://github.com/BentoBoxWorld/BentoBox/issues/503
2019-01-30 22:39:04 -08:00
tastybento
95efc7a66c Put in null check for item meta (missed one)
https://github.com/BentoBoxWorld/BentoBox/issues/492
2019-01-30 17:38:16 -08:00
tastybento
791c8b1de1 Put in null checks for item meta
https://github.com/BentoBoxWorld/BentoBox/issues/492
2019-01-30 17:37:16 -08:00
tastybento
8dbf7ec231 Admin team add command was not adding players correctly.
Fixes https://github.com/BentoBoxWorld/BentoBox/issues/506

Also, admin unregister was blocking unregistration of team players, but
that is an artificial constraint, so I enabled it. Without it, it would
not be possible to correct weird team issues like this one after they
happen.
2019-01-30 17:27:53 -08:00
tastybento
804d0f9878 Quarantines duplicate islands so they don't load continuously
https://github.com/BentoBoxWorld/BentoBox/issues/505
2019-01-30 16:46:51 -08:00
tastybento
271d6aa5e9 Adds json suffix to JSON database files
https://github.com/BentoBoxWorld/BentoBox/issues/502
2019-01-29 13:43:34 -08:00
Florian CUNY
7b79755d92
Merge pull request #496 from barpec12/master
Add possibility to load schems with non-lowercase names.
2019-01-29 06:12:35 +01:00
tastybento
46cc901c23 Adds support for ItemStack storage in non-YAML databases.
Fixes https://github.com/BentoBoxWorld/BentoBox/issues/501
2019-01-28 18:29:17 -08:00
barpec12
c5c2ae5fc1 Change imports 2019-01-28 13:47:55 +01:00
barpec12
c6b4a10634 Add possibility to load schems with non-lowercase names. 2019-01-28 11:11:07 +01:00
tastybento
8cddb1e69f Set user for potion splash event
https://github.com/BentoBoxWorld/BentoBox/issues/493
2019-01-27 19:59:00 -08:00
tastybento
04fa7fab80 Fixes issue with missing user assignment of potion thrown
Adds test for throwing potion class.

https://github.com/BentoBoxWorld/BentoBox/issues/493
2019-01-27 19:51:03 -08:00
tastybento
0280303058 Revert to fix Java 11 compatibility.
dfe7fc27e5 (commitcomment-32081178)
2019-01-27 09:17:54 -08:00
tastybento
873c12fe70 Revert "Fixed minor code smell in AddonClassLoader"
This reverts commit a392dbc8b3.
2019-01-27 09:08:41 -08:00
Florian CUNY
6fdf11f91e Version 1.2.0 🎉 2019-01-27 10:24:01 +01:00
Florian CUNY
9afb5c6382 Fixed HooksManager logging hook failures even if the target plugin is not available 2019-01-27 10:22:04 +01:00
Florian CUNY
aea057317b Added option to apply the reset cooldown when the player creates an island for the first time
Closes #456.
2019-01-27 10:10:25 +01:00
Florian CUNY
9551560593 Moved all command cooldown settings to "island.cooldown.time" node 2019-01-27 10:04:13 +01:00
Florian CUNY
30487beffc Improved some config comments 2019-01-27 09:59:31 +01:00
Florian CUNY
2a66598d2f Fixed bugs/vulnerabilities in YamlDatabaseConnector#removeStringFromFile(File) 2019-01-27 09:43:14 +01:00
Florian CUNY
5334caf7b5 Fixed AdminGetrankCommand for island members
Fixes #485
2019-01-27 09:32:16 +01:00
Florian CUNY
1c3ccba3ae Fixed probable NPEs in IslandsManager and IslandCache 2019-01-27 09:31:35 +01:00
Florian CUNY
e5170fc4b5 Updated since tags 2019-01-27 09:23:23 +01:00
tastybento
24806019b8 Addresses review issues. 2019-01-26 22:07:26 -08:00
tastybento
5bf6264e95 Fix since tag in GameModeAddon 2019-01-26 16:37:13 -08:00
tastybento
9968a8e083 Fixed Multiverse issues
Multiverse hookin wasn't working.
2019-01-26 16:33:59 -08:00
tastybento
daef788e65 Merge remote-tracking branch 'origin/develop' into startup 2019-01-26 15:33:35 -08:00
tastybento
db932dd836 Fix for LogEntry serialization.
https://github.com/BentoBoxWorld/BentoBox/issues/486

Includes an autofixer for corrupted files and test for the adapter.

LogEntry was changed to just store strings instead of arbitrary types.
Unless the log serializer were to store hints as to what type of data
was being stored, it is impossible to deseralize. To make it all
simpler, we just store strings. If the UUIDs need to be converted back
to players are some point, that can be done based on the type of the log
stored.
2019-01-26 15:32:52 -08:00
tastybento
5b2ad730df Adds getDefaultWorldGenerator method to BentoBox
This may help with Multiverse compatibility.
May fix https://github.com/BentoBoxWorld/BentoBox/issues/431

Adding as PR because GameMode addons will need changing to new
Interface.
2019-01-26 13:22:07 -08:00
tastybento
4e81baf45e Flags are requested from FlagManager not statically
Previous the Flags class was being used to grab all flags. This is wrong
because it may not contain all the flags that may exists, for example
ones registered by other addons. The correct way is to request flags
using the getFlag() method in the flags manager class.
This change was to prepare for the time when addons will register their
own flags with BentoBox.
2019-01-26 09:39:34 -08:00
Florian CUNY
afdfc285cc Fixed LogEntryListAdapter
Fixes #486
2019-01-26 16:05:55 +01:00
Florian CUNY
b07d7ba3af Load hooks before loading addons
Fixes #489.
2019-01-26 15:29:18 +01:00
Florian CUNY
6155a8cf80 Version 1.1.1-SNAPSHOT (develop)
Rather than releasing a minor version, we will release a bug-fix focused one.
2019-01-26 15:23:46 +01:00
tastybento
5f49e2b17b Runs /spawn command for player if no safe teleport spot
https://github.com/BentoBoxWorld/BentoBox/issues/479
2019-01-24 08:30:43 -08:00
Florian CUNY
f5f345a1ab Documented Flag.Type 2019-01-23 19:58:31 +01:00
Florian CUNY
ae246435ba Temporarily removed Expose annotation to 'history'
Should fix #482
2019-01-23 19:29:42 +01:00
Florian CUNY
0789ec0969
IslandBanCommand: added "banned", "bans" aliases 2019-01-23 15:40:25 +01:00
Florian CUNY
29d0cb6eb3
IslandCreateCommand: add "new" alias 2019-01-23 15:39:41 +01:00
tastybento
9e0772367a Fixes NPE caused by island delete of a null island
If a player is invited and has no island, the accept command was still
trying to delete it and causing an NPE.

Also, the island save was being done on the old island, not the new team
island.
https://github.com/BentoBoxWorld/BentoBox/issues/481
2019-01-22 12:53:33 -08:00
Florian CUNY
4958304aa5 Added "logs.clean-super-flat-chunks" to config
Closes #483
2019-01-22 14:39:44 +01:00
Florian CUNY
77f9f4869b Fixed typo in previous commit 2019-01-22 14:28:10 +01:00
Florian CUNY
eb8f25f319 Improved documentation in CleanSuperFlatListener 2019-01-22 14:26:00 +01:00
Florian CUNY
9af389ce1d Made BentoBox#logWarning(String) evaluating lazily the parameter 2019-01-22 14:18:06 +01:00
Florian CUNY
bfad54b7e3 Made CleanSuperFlat log regenerating as INFO instead of WARN
#483
2019-01-22 14:17:43 +01:00
tastybento
468ad4e83d Fix cycle click nullables 2019-01-20 10:04:32 -08:00
Florian CUNY
6cdde8ca5f Forgot to update javadoc 2019-01-20 18:32:12 +01:00
Florian CUNY
85119a0b06 Fixed some code smells 2019-01-20 18:21:46 +01:00
Florian CUNY
bb188cb8ff Release 1.1 2019-01-20 10:10:29 +01:00
Florian CUNY
5a573bdbbe Fixed tests 2019-01-20 10:00:17 +01:00
Florian CUNY
819096eba9 Fixed usage of deprecated methods in CycleClicks and fixed a probable NPE 2019-01-20 09:47:15 +01:00
Florian CUNY
113335e60a Fixed code smells 2019-01-20 09:46:00 +01:00
Florian CUNY
5cbbbabcbf Fixed ejected players being stuck in SPECTATOR gamemode
If the player don't have an island, we try to teleport him to the "gamemode spawn".
If the "gamemode spawn" doesn't exist, we teleport it the hard way to the world's programmatic spawn and switch him back to the default gamemode.
That may not be the correct handling there, but at least it's working and it should prevent most of the cases.

Fixes #382.
2019-01-20 09:33:28 +01:00
Florian CUNY
dc61f06554 Added IslandSpawnCommand
#382
2019-01-20 09:22:46 +01:00
Florian CUNY
7525bc05e2 Added IslandsManager#spawnTeleport() and made #getSpawn(World) return an optional 2019-01-20 09:22:26 +01:00
Florian CUNY
7cbb0d6a87 Added PlayersManager#getPlayers()
#392
2019-01-20 09:01:38 +01:00
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
49d2365f85 Removed unneeded commented out code 2019-01-15 15:46:59 -08:00
tastybento
016c502b66 Added explicit test for addon locale override 2019-01-15 15:43:37 -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