* WIP - add GUI for teams.
* WIP teams GUI
* Moe WIP on team GUI
* Modified file to avoid an NPE.
* Minor refactor to prevent int to Integer warning.
* Use latest dependencies for tests to pass.
* Move to singleton pattern for RanksManager,
* Team GUI WIP
* Added support for kick, setowner, and leave.
* Added support for accepting and rejecting an invite.
* Fixed bugs with text and operations.
* WIP for team invites.
* Adds inviting to the GUI.
* Fix tests
* Fixed minor bugs reported by SonarCloud
* Up Minecraft version and paper to 1.20.4 in POM
* Added features based on Discord feedback.
1. added some lore to the invite button to explain the players shown are
from the game world
2. removed the team state in chat
3. added a search to the invite panel
* Added back button.
Refactored some code and templates.
* Fixed bugs with teams and uncoop untrust etc of Ops.
* Return to name search GUI if name not found.
* Added return to GUI for player search
* Use Path.of
Mostly replacing instanceof check and cast with e.g. 'instanceof Player
player'
Replaced some "switch" statements by "if" statements to increase
readability.
Used the primitive boolean check to avoid potential NPEs.
Reordered field modifiers to comply with the Java Language
Specification. Mainly @NonNull position.
* 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.
This commit contains 2 changes:
- An option for Flag to use icon that is defined in locales after "icon" string.
- An option for ItemParser to parse icon or return given value, if parsing was not successful.
The flag option is not ideal, but it is simpler and easier to maintain then adding new config section where icons can be changed, as the locales file already contains a lot of info about each flag.
* 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
The NPE could only occur if a non-op player was trying to open the Settings Panel or change tab or change mode, leading to the call of a null PanelItem.
I added some nullability annotations to make it 100% clear that Flag#toPanelItem(...) returns null if the player is not op and the flag is invisible.
* Implements Basic/Advanced/Expert settings panels
Better alternative to https://github.com/BentoBoxWorld/BentoBox/pull/887
* Remove StatusIcon class - not used.
* Fixes glow of active tab.
* Moved FlagMode to Flag.Mode
* Display the LOCK flag no matter what the tab is
* Made the "mode" being saved for the player instead of per-tab
This means that a player will have its "mode" saved when he comes back later in the Settings Panel while also making the navigation more fluent - he won't need to set PROTECTION and SETTING to the same mode everytime.
Also renamed Flag.Mode#getNextFlag() to #getNext()
Added PlayersManager#setFlagsDisplayMode(UUID, Flag.Mode), #getFlagsDisplayMode(UUID)
* Play a sound when click on the mode button
* Added a description to the "mode" item
* Modified the mode for some flags
TabbedPanel extends Panel so that when an icon is
clicked, the context can be gathered by the click listener via the
getActiveTab method. In this case, the CycleClick and IslandToggleClick
classes cast the tab to the SettingsTab so they can retrieve the island
that the panel is referring too. This is required in the case where an
admin is setting a user's island settings. Previously the context of a
panel was only every about the user who opened the panel.
* Adds a tabbed panel API
* Added permission for tab
* Adds default world protection settings GUI
This switches the settings panel to use the new TabbedPanel API.
https://github.com/BentoBoxWorld/BentoBox/issues/384
* Adds admin command to change a player's settings.
Requires addon to add the admin settings command.
https://github.com/BentoBoxWorld/BentoBox/issues/59
* Locale for AdminSettingsCommand
https://github.com/BentoBoxWorld/BentoBox/issues/840
This adds (or fixes) the ability for admins to set the default setting
of a protection flag. The flags go in the world flags section of a game
mode's config.yml.
* 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
Addons need to declare themseves when they register a flag so that the
flag listener can be reset. Note that this is not mandatory unless the
flag declares a listener
* Saves world settings to config.yml when they are changed mid-game.
* Fixes and adds to tests
* WIP: Added visibility settings for flags.
Tests still need to be fixed and requires saving to config.yml.
* Fixes tests
* Completed changes.
* Renames method to be hidden flags instead of visible settings
GameModeAddons will need to adjust WorldSettings API based classes.
Flag was marked as deprecated, which may be okay, but because it caused
a lot of warnings in the tests because they bypass the builder I removed
the deprecation but kept the warning in the JavaDoc.
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.