Hey!
This is probably one of the largest updates to the plugin, adding many new features, tweaks, as well as finally having the long awaited developer API!
Please read this post before updating, since some features have changed, with regarding to the new naming system.
Features + Changes:
Added /ps name [name]!
This command allows you to add aliases to each protection stone region. This is a fundamental change, since now other commands don't need to depend on numbering systems or IDs to identify a region (ex. /ps tp, /ps home). This also allows speedier commands, since there is no more need to loop through all of a world's regions on each command. It is optional to have unique names between regions (configurable in config).
Added /ps list [player (optional)]!
This command allows players to see how many regions they have, as well as their aliases and IDs. It is intended to replace /ps count, but /ps count will stay for the near future.
Added /ps setparent [name/id]!
This command finally adds a long requested feature: synchronized settings across regions! This allows regions to basically mirror the flags and player list of other regions. It is also optional to allow players to inherit regions that are not theirs (permission). To read more about this, which I strongly recommend, look here:
https://worldguard.readthedocs.io/en/latest/regions/priorities
Changed /ps home [num] to /ps home [name/id]
/ps home has been changed so that it does not depend on a number anymore, but instead uses the region's ID, or name. IDs only work in the world that the player is in, while names are cross-world.
Added /ps tp [name/id]
This allows for direct teleportation to regions by name and ID.
Added /ps admin flag [world] [flag] [value|null|default]
Have you ever wanted to update all PS region flags, since you forgot to set it as default? This command finally brings this feature to the plugin.
Added custom crafting recipes per block!
There is now the option in the config to set crafting recipes for protection blocks!
Fixed /ps flag placeholders (default, null)
The /ps flag placeholders code has been rewritten, now allowing for the option of "default" and "null", with default being the default flag setting (from the config), and null removing the flag.
Added the option to have minimum distances between protected regions!
In the block config, there is now the option to set the minimum allowed distance between the edge of a protected region, and the centre of another when creating a new one!
Added support for names in greeting-title and farewell-title flags!
As requested by the community, support has now been added for %player% tags in these flags!
No more config scrambling!
I've finally found a way to avoid scrambling the config each time it is updated. This will now work for this and future config upgrades.
Upgrade Instructions:
As with any upgrade, you can just simply replace the plugin in the plugins folder, and the config upgrades will be automatic (and not scrambled anymore). However, since multiple commands changed, it is highly recommended to
regenerate the messages.yml file, since those messages do not get upgraded with a new update. If you don't regenerate the file, the help menus and other messages may be incorrect!
Developer API:
At last, the developer API is here! It is still in beta, meaning that the API is still subject to change, but you can start your projects with them, since future changes aren't anticipated to be very large. I will at some point be working on a new ProtectionStones addon, which adds a GUI to the plugin and gives reference usage of the API.
I am working to host this API on Maven Central, but it will take some time. For now, you can pull the dependency directly from my repository:
Code (Text):
...
<repository>
<id>protectionstones</id>
<url>https://repo.espi.dev/repository/maven-public</url>
</repository>
...
<dependency>
<groupId>dev.espi</groupId>
<artifactId>protectionstones</artifactId>
<version>2.1.0</version>
</dependency>
In terms of documentation, I am working to get a Javadoc up at some point, but you can just read the comments on GitHub for now.
State of the Project:
For the next month, I will be on a trip so I will not be very active online. If I can, I will issue emergency bug fixes, but there are no guarantees that I can do them immediately. Please do report bugs though to the discussion page or GitHub!