1.17 support, new commands, expanded permissions and more!
Changelog:
Due to the massive list of changes made in this update, I have split it up into 3 sections, additions (new stuff), changes (stuff I’ve updated/changed) and fixes (stuff that was broken but is not anymore). There is also a slight clarification at the bottom regarding one of the changes.
This is a huge update and I have modified almost every single file the plugin has. As a result, there are bound to be bugs that I missed while testing. Please don’t hesitate to let me know in the #bug-reports channel in the support Discord, I plan on publishing a hotfix on all bugs found with the update within the next few days, providing bugs were found of course.
Please Note: while this update does not strictly require a config.yml reset due to new values as this version introduces a way to insert missing values, it is HIGHLY recommended that you do anyway. If the plugin inserts values itself, all comments (including ones that were already there) will get removed due to limitations with the Spigot Config API.
Additions
- 1.17 support.
- New /parkour reload command.
- New /parkour teleport command to allow users to teleport to the restart position of a parkour without needing to be in the parkour.
- Messages can now be disabled by setting their values to an empty string (just “”). Admin messages cannot be disabled, and empty messages will result in the default message being sent.
- You can now use PlaceholderAPI placeholders is HubParkour messages.
- You can now specify a time format that the plugin will use to replace any time-related variables (configurable in config.yml).
- You can now block users from executing commands while they are in a parkour (configurable in config.yml).
- You can now stop users from mounting horses/rideable entities while in a parkour (configurable in config.yml).
- You can now stop users from using the stacker provided by some hub plugins while in a parkour (configurable in config.yml).
Changes
- Holograms will now automatically generate if HolographicDisplays is installed. Individual holograms can be disabled in the config.
- The PlaceholderAPI extension have been expanded to allow you to include placeholders from specific parkours and to include placeholders with info from newer updates. New placeholders can be found in the #faq channel in the support Discord.
- To allow users with chat plugins to setup a parkour, there are now setup commands (/parkour done and /parkour input) to allow you to setup a parkour if your chat plugin cancels the chat event the plugin listens for.
- Changed how checkpoint rewards are given so they are given immediately but which checkpoint you reach is tracked internally to prevent exploits. You can disable the exploit prevention in config.yml. Clarification on how this works can be found below.
- When asking for a plugin ID, you can now specify the name of the parkour to remove confusion.
- Expanded permissions so each command now has its own permission. Full list of permissions can be found in the #faq channel in the support Discord.
- Parkour names can now be multiple words and can contain spaces.
- Some config values have been shuffled around.
- Some default config messages have been changed to accommodate changes in this version. It is recommended that translated configs are re-translated into your language with the new changes in mind.
- More info is sent into console when starting the plugin to be more informative as to what the plugin is doing.
- Bumped commons-io from 2.5 to 2.7.
Fixes
- The plugin will no longer error out when values are missing from the config.
- The plugin will auto-generate missing config values when they are needed (also means you no longer need to reset your config.yml when you update the plugin, but it is still recommended as comments/instructions are removed from the config entirely when a missing value is inserted).
- Added missing config values to the default config.
- Fixed missing tab-complete values.
- Redone some internal parts of setup and edit mode to avoid causing exceptions. The new changes will not get reflected in the API.
Clarification
For more clarification as to how the new checkpoint rewards system now works:
Whenever a user reaches a checkpoint, they have then received this reward for this checkpoint for this run. If they reach this checkpoint in the same run again (if they have fallen off for example and climb back to the checkpoint) and run over it, they will not receive the reward again as they are in the same run.
Once a parkour is completed, and repeat rewards are enabled, all reached checkpoints are reset in the database so the checkpoints can be achieved and rewarded again. If the Checkpoint Rewards Every Time setting is enabled, this happens after every run, regardless of whether it was completed or not. If both settings are disabled, then once they have received the reward for a checkpoint, they cannot receive it again.
To give a simpler explanation, if a player attempts a parkour, a checkpoint reward will only be given in the following circumstances:
- They have not achieved the checkpoint in this run already and Checkpoint Rewards Every time is enabled.
- They finished the parkour in the previous run, have reached the checkpoint and Repeat Rewards are enabled.
- They finished the parkour in a previous run, Require All Checkpoints are disabled, and they have not achieved or have skipped over the checkpoint in previous runs.
- They did not finish the parkour in the previous run and did not reach or have skipped over this checkpoint before.
- They did not finish the parkour before, and Checkpoint Rewards Every time is enabled.
If you need any more clarification, feel free to join the support Discord and I can explain further.