This change implements a new way how to define actions via a custom panel template.
Previously there were 2 options how to define an action:
- by click-type
- as an array list
This adds the third type: by action type. It means that now developers could code that action is the main key for defining what happens when button is clicked:
```
actions:
visit:
click-type: LEFT
tooltip: Tooltip text for left click action
```
#1932 implemented a feature that allows reading multiple panels from a single file, however, there was a missing builder in TemplatedPanelBuilder class that would allow to use it.
This fixes it and adds the missing builder method.
Add new Protection Flag: CHANGE_SETTINGS. This flag allows set which rank can change island settings. By default, it is set to OWNER rank and minimal value is MEMBER rank.
Fixes#1493
* Implement parameter adding to the templated panel title.
There was an issue when templated panels were always static, and api did not have a way how to change it. This will allow passing parameters to the tile, and allow adding dynamic texts.
* Implement parameter adding to the templated panel title.
There was an issue when templated panels were always static, and api did not have a way how to change it. This will allow passing parameters to the tile, and allow adding dynamic texts.
The existing template file reader could read a single configuration section from a file, and the section was required to start with the same name as the file.
This changes it and allows to read any configuration section from the panel.
This change is backward compatible and does not influence existing panels.
In discord, it was reported that running the admin delete command produces a null-pointer if `[player]` placeholder is used.
With fast checking I found out the issue: incorrect user was passed to the command.
Also, I moved runCommands below all resets, so commands could be used to give items, or xp or other stuff that is removed.
* Add CompositeCommand#defaultCommandRank variable.
This variable stores default rank for a command. This adds more flexibility to the Island#commandRanks object. This change allows specifying default rank for each command.
* Add more commands for users to configure on their islands.
Owners now can specify who can use:
- sethome command
- renamehome command
- deletehome command
- setname command
- resetname command
* 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.
Some addons may want to introduce two different actions with the same click type.
This change will allow to do it, as now actions may be defined as lists instead of configuration sections.
To use it, action must be defined a bit differently:
```
actions:
- click-type: <value of enum ClickType> # required
type: <value of String> # not required
content: <value of String> # not required
tooltip: <value of String> # not required
- click-type: <value of enum ClickType> # required
type: <value of String> # not required
content: <value of String> # not required
tooltip: <value of String> # not required
```
Co-authored-by: tastybento <tastybento@users.noreply.github.com>
If create-and-link-portals is true, then teleporting to the nether will
not go to a central portal point and instead create a portal in the
nether at the same coordinates as the portal in the overworld.
Teleporting back will not be affected.
https://github.com/BentoBoxWorld/BSkyBlock/issues/464
I am not 100% sure if this would fix https://github.com/BentoBoxWorld/BSkyBlock/issues/451
However, searching google I found that others had a similar issue with the absolute path and they changed it to canonical.
As I was not able to reproduce the main reported issue, I do not know if this fixes it.
* add Block Explosion support for TNT_DAMAGE flag
* prevent block explosion from damaging entities
* seperated flags for block explode
* invert and cancel
* pattern instanceof
* delete island one by one
* register before IslandDeletionManager
* optimize imports
* setting
* just some indents
* config
* run synchronously
* a bit reformat before recoding
* proper delete chunks
* comment
* combine the task call
* expose the NMS Handler
* don't have to try-catch this
* we know that this is final
* expose copy chunk data so that it can be overridden
* Don't have to use Vector
* set block from minimum height
* remove NMS and use fallback if not set
* only get the height once
* fix test