* 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.
* Multi world WIP - stashing
* Initial work on supporting multiple islands per player
The default allowed number is 5 for now, but will be set to 1 by
default.
Lots more work to do on this!
* More work on multi island. Fixed tests so clean compile.
* Remove unused imports
* Updated island go and homes command to multi island
Updated tests.
* Do not reload addons anymore.
* Add island name when entering or leaving own island
* Remove unused import
* Adds island names to /island go command.
* Enables more homes to be set if player has more than one island
* Switch to using a set for islands and explicit primary boolean in Island
* WIP
* Fix bugs with the go command.
* Be able to delete multiple islands, e.g. when joining a team
This is not fully tested.
* Do not remove all islands when a player does reset.
Players can reset just the island they are on.
* More fixes for go command
* Fix tests
* Fix @NonNull annotation
* Fix home syntax listing reference for IslandDeleteHome
* Fixed deletehome for multiple islands.
* Fix /island command teleport to current island default home.
* Remove deprecated code.
* Fix tag for concurrent island setting in config.yml
* Improve error when trying to make additional islands over limit
* Update config.yml
* Correctly assign invites for islands.
* Switch to canExecute API in prep for multi-island handling
* Prevent players from obtaining more concurrent islands by owner transfer
* Handle leaving and disbanding of teams
* Fix tests
* Fix minor bugs or code smells.
* Restore the quarantine code from deprecation.
This code can stay. It checks if islands can load, and if not puts them
in a trash. It does no harm.
* Remove unneeded eq()'s
* Fix tests
* Code clean up from Sonar Cloud analysis
* Fix tests
* Remove code smell
* Rename "island" which hides the field declared at line 25.
* Removed code smells.
* Rename variable record to rec
Renamed "record" variable to not match a restricted identifier.
Restricted Identifiers should not be used as identifiers. "record" is
using in Java 16.
* Added private constructor to prevent instantiation of static class
Changed variable name to rec instead of restricted "record".
* Remove Blueprint code smells.
* Use a record for database settings constructor
Code smell: Methods should not have too many parameters. I'm not sure
what methods are using this class though.
* Update MyWorlds version
The POM for MyWorlds is invalid and causes a warning, but this still
persists with this version.
* Extracted nested try block into a separate method.
Makes it clear when reading the code what might be caught
* Extracted nested try block into a separate method.
* Fixed JavaDoc /** instead of just /*
* Extracted nested try block into a separate method.
* Refactored to not assign loop counter from within the loop body.
* Better delete option. With results.
That said, this is legacy code to handle an issue that occurred a long
time ago and this whole set of code can probably be removed.
* Catch Exceptions not Throwable
* Log error with BentoBox logError
* Use computeIfAbsent
Using these instead leads to cleaner and more readable code.
* User can no longer be null
* Added the missing @Deprecated annotation and @since ref
* Added @since reference
* Merge if statements
* Use BentoBox error logging.
* Added JavaDoc @since
* Remove deprecated class and move used class
* Remove deprecated WoodType and use Type.
* Remove unused import
* Extracted nested try block into a separate method.
* Comment empty default statement
* Clean up logic; avoid switch
* Use Java instead of Guava
* private constructor to hide the implicit public one.
* Private constructor to hide the implicit public one.
Merged if statement.
* Add comment
* if merge
* Make variable constant
* Remove unused imports
* Remove deprecated and unused method
* Remove unused import
* Typo
* Remove instanceof and cast
* Remove superfluous null check
* Put constant at bottom of file because @BONNe likes it there.
* Simplify particle validation code
In theory, this should not be required, but it seems that a player's
world might be null in some edge cases. Alternatively, the Util.getWorld
function can return a null if the player was in a nether or end but that
does not have a corresponding overworld.
Addresses #2057
* Adds bonus range elements to Island object.
Admin commands still need to be adjusted or added to support management
of the bonus ranges.
* Changed to mutable class
Fixed bugs.
* StringBuffer (Java 5) may be declared as StringBuilder
* Replace map with flatMap
* Use instanceof naming
* No need to specify paramter types.
* Remove verbose code
* Fix JavaDoc issues
* Make internal class a record.
* Remove unused import.
* Make internal class a record.
* Made internal class a record.
* Removed unused import
* Fix typos
* Fix typo in test.
* Make variables final if they can be.
* Do not use final so that test can pass.
For testing, we use a trick to set this variable, but it won't work if
it is final. Right now, I'd like to keep the test.
* Version 1.17.3
* Use Map.of and List.of instead of Immutable collections
* Replace explicit type argument.
* Replace lamba with method reference
* Replace condition with Objects.requireNonNullElseGet
* Use String.repeat
* Use new switch expressions
* Use instanceof patten variables which are more compact
* Fuse toUnmodifiableList into stream and return it.
* Remove unnecessary toString() calls.
* Remove unnecessary public
* Extracted common part from if
* Simplify conditional expressions
* Remove unused IOExceptions
* Cast to long
* Use Map.putAll
* Use primitives
* Clarify what is null or not
* Addedd @Serial annotation introduced with Java 14.
* Use Optional.isEmpty instead of !isPresent
* Use flatMap then ifPresent
* Just use Arrays.stream
* Swap map and filter for null with Objects::nonNull
* Use expression lambda
Current one is based on online player count when bStats sends data to the server.
This one will send data about amount of players who logged in the server.
* Switch to island homes from player homes.
Stores home locations and max homes in the Island object. Adds commands
required to manage home names, specifically rename and delete. I did not
add list as there is tab complete on island go, but it may be required.
* Adds maxMembers to the Island object for persistent storage
https://github.com/BentoBoxWorld/BentoBox/issues/1690
* Expanded approach to include coop and trusted ranks.
* Checks for max members/coops/trusts on accept based on island setting.
* Write island max member/coop/trusted if owner joins server
This updates the island's settings based on the owner's permissions.
* Decouple island location from island center.
This enables the protection area to move anywhere within the island
boundaries
* Paste island at island location.
* Move visitors to the island location
* Added island location placeholders
* Use island location instead of island center
* Fix tests
* Allow radius 1 islands.
* Correct admin range set limit
* Debug in progress
* Fix island deletion.
The speed option was doing nothing except causing repeated actions on
the same chunks.
* Soft depend for WorldGeneratorApi for Boxed game mode
* Changed to "protectionCenter".
Added logic to expand the deletion area based on moving the island
protection location and range instead of just deleting everything. This
will keep deletion time to a minimum for BSkyBlock, etc.
* Fix tests.
Fixes https://github.com/BentoBoxWorld/BentoBox/issues/1341
Server calls PlayerTeleportEvent if player is mounted on quit, which
inserts player back into cache. By clearing the cache on login, the
stale player object will be cleared.
Fixes https://github.com/BentoBoxWorld/BentoBox/issues/1221
The original code could actually never work because the check for
whether a player had played before or not was occuring immediately after
addPlayer, which added the player to the server. Also, the code to run
was running in a thread and not on the main thread, so if it had run
could have caused errors.
* Add new IslandEvent: IslandProtectionRangeChange.
This event is fired when island protection range is updated. It contains new and old protection range values.
Event implements cancellable as other IslandEvent, but cancelling (or changing event values) is not implemented.
* Fix extended class.
IslandProtectionRangeChangeEvent should extend IslandBaseEvent.
Permissions could set the island protection range greater than the
island distance.
This commit also fixes the User method that calculates the max value
from a permission. The default value was being used as the starting
point rather than 0, so it was not possible to set perms to go less than
the default value.
Added test clases around all these items.
https://github.com/BentoBoxWorld/BentoBox/issues/1047
Fixes#914.
* Shifts to compile with 1.14.4 API.
Note that this will make some events incompatible with 1.13.2 because of
a class not found error.
* WIP
* Fixed deprecated APIs and ItemStackAdapter test case
* Fixes enderchest test bug.
* Updated server version compatibilities in ServerCompatibility
Fixes#521
* Fix issue with offline players that kept inventory, after being kicked out of team. (#521)
* Update src/main/java/world/bentobox/bentobox/api/commands/island/team/IslandTeamKickCommand.java
Co-Authored-By: BONNe <bonne@bonne.id.lv>
* Update IslandTeamKickCommand.java
* Change QuarantinedWorld to PendingKicks.
Increase PlayerChangedWorldEvent event priority.
* 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
This will improve the consistency of the code, as well as the Javadocs.
Locales (and some other files) still need to be updated to remove these references to team leader.