1.19.2 Oct 25, 2021
1.19.2 - Fix leaderboards
The leaderboards were not filtering out players that joined but quit and therefore had 0 games or a 0 time (for parkour).
The biggest problem was a parkour course leaderboard where the top spots were taken by players with their 0 time because they never completed the course.
Leaderboards now filter out the invalid entries.

Also did a minor reformat of some messages in messages.yml. You won't see these unless you rename or erase your messages.yml and generate a new one to amend or use.

1.19.1 Sep 7, 2021
1.19.1 - Parkour mode
PARKOUR game type

With this release the `PARKOUR` game type or mode is now functional and distinct from the `RACE` game type.

Unlike the other game types, parkour games do not involve direct PvP competition.

A game configured with `game_type: PARKOUR` now runs continuously and players can join at any time. There is no need to queue for a group to form. Players can join while others are already playing.
Players cannot boost other players in a parkour game.

Boost records your time to complete a Boost parkour map.
Leader board and player stats for a parkour map will show players' best time, last run time and average time.

Only parkour map styles use the new time stats, so leader board and stats commands must specify the arena or map name, and that game must be configured to the PARKOUR game type.
e.g. If "parkourMap1" is a parkour map then use:
/boost top monthly parkourMap1
/boost top parkourMap1
/boost stats pmme parkourMap1

The following commands are general, not map-specific. They won't include parkour map stats:
/boost top
/boost top monthly
/boost stats pmme

If you have already created an arena or map that will be reconfigured as PARKOUR and players have already used it, then the players will have game numbers recorded. This will incorrectly affect their average time. If this is the case and you are not resetting your entire Boost database, you should run the following command for each parkour arena or map:
/boost delstats * parkourMap1
specifying your parkour game name each time for "parkourMap1".
This will delete all existing player stats for that game.

There is a new leaderboard entry template and player stats template in messages.yml for parkour type games.

A `join_parkour` button is introduced for the in-game GUI. Games with `game_type: PARKOUR` will use this GUI button. This allows the text in `lore:` to suit a parkour game. Other game types will use the existing `join` button.

Arena6 on my pmme.apexmc.co demo server is running the parkour game type.

Other changes:
* Fixed game automatically starting if `min_players:` is set to 0, which is not really a valid setting anyway.
* Configuration loading was not using the defaults provided in the resource files included in the JAR and instead was using hard-coded defaults. This makes no difference to you currently since the hard-coded values matched the included resource files.

1.18.0 Jun 3, 2021
1.18.0 - Hit flying players, Click to win
This release has been delayed nearly a month. A family member is very ill.

Hit flying players

You can now directly target other players, including those already flying through the air. This had always been my intention for the original game design but realised only now.

Directly targeting players is enabled in all games by default but you can toggle it off if it does not suit your game. A friend and user of the plugin has pointed out that you may not want this enabled in a parkour style map where players could team to boost each other higher.
/boost targetplayers <game> <on/off>

NOTE: When enabled, this feature also enables you to hit other players through platforms.

Click to win

You can set a block type and/or sign that a player must click to win a parkour or race style game, instead of reaching a ceiling height. This opens up game arena design such that arenas do not need to be vertically oriented for parkour or race games.

To set a type of block that the player must click to win, hold the block and run:
/boost setwinblock <game>

To create a sign that the player must click to win, face a sign and run:
/boost setsign win <game>

NOTE: Games with a win sign still require a ceiling to be set, but you can make this ceiling have no effect by setting it far above the height that players can reach. Alternatively, you can allow both a ceiling and click-to-win in the same game.

Specified game type

Each Boost game configuration now has a specified game type being one of:
Elimination - original Boost last man standing.
Elimination_race - two ways to win.
Race - race other players to the top or to the win block/sign.
Parkour - reach the top or the win block/sign.
This makes it easier to understand the configuration and enables Boost to check that you have the correct configuration to suit the type of game that you want.

To set the game type, run:
/boost setgametype <game> <game type>

For existing games, Boost will determine the game type from your current configuration and set the appropriate game type.

NOTE: Currently the "Parkour" mode is no different to "Race". The future plan is that Parkour will not allow boosting of other players and will run continuously, allowing players to join at any time.

1.17.1 Apr 17, 2021
1.17.1 - Multiple start points
Boost now supports multiple start points
Each game or arena now loads from an array of start spawn points. You can now build multiple starting platforms in any arena and set a start spawn point on each. Players will be distributed to them randomly at the start of the game.
Instead of having players spread out from a central platform, you could have players come to the centre from multiple outer platforms.

Distribution of players to start spawns should ensure that you get an even spread of players across them.

Current config.yml file will be updated automatically
Your current single start spawn will be moved to the new array and the only entry for each arena and named "Start1". You can now add more start points for any arena and change the location of any configured start point.

New and modified commands:
"/boost setstart <game> <startNode>" - A name is now required for a start spawn point in <startNode>. If you use an existing name then that start point is set to the new position. If you use a new name then a new start spawn point is defined. This name is used in the config.yml file.
"/boost deletestart <game> <startNode>" - Delete the named start spawn point.
"/boost setspread <game> <startNode> <spread>" - A start point name is now required as each start spawn point has its own spread.
"/boost testtp <game> <lobby/loss/start> <startNode>" - Test your configuration by teleporting yourself to a configured spawn point. When you are testing a "start" point you must provide its name in <startNode>.

Manual fix
While the Boost plugin does what it can to update your configuration with new items, it cannot fix the modified messages in messages.yml.
If you have made no changes to messages.yml, you can delete it and Boost will generate a file with the latest content.
If you have made changes, I recommend you edit the file and remove the "command_usage_admin:" section along with the nested entries beneath it, and remove the "start_spawn_set:" and "spread_set:" messages (or the whole "messages:" section along with the nested entries beneath it). Following those edits, use the command "/boost updateconfig" to insert the correct entries.

1.16.1 Jan 15, 2021
1.16.1 - Per-arena player stats
Boost now records per-arena statistics:
Players' win/loss statistics are now recorded both overall and separately for each game arena or map. Place holders and query commands have been extended to accommodate fetching per-arena stats as well as the previous overall stats.

New PAPI place holders:
`%boost_top_<period>_<position>_<stat>_<game>%` in addition to the previous `%boost_top_<period>_<position>_<stat>%`
`%boost_player_<period>_<stat>_<game>%` in addition to the previous `%boost_player_<period>_<stat>%`

Commands that were extended:
"/boost top <period> <game>" in addition to the previous "/boost top <period>"
"/boost stats <player> <game>" in addition to the previous "/boost stats <player>"
"/boost delstats <player> <game>" in addition to the previous "/boost delstats <player>"
"/boost delstats * <game>" to clear all player stats for a game arena, in addition to the previous "/boost delstats *".
"/boost setsign top <period> <game>" in addition to the previous "/boost setsign top <period>"
"/boost setsign stats <game>" in addition to the previous "/boost setsign stats"

Other changes:
Player display names are now updated each time statistics are recorded so that they keep up with nickname or prefix changes.
Boost stores display names rather than fetching them live so that it can show the chosen display name in leader board queries for players that are offline.

1.15.0 Jan 5, 2021
1.15.0 - Spot those boosters and new place holders
Spot those boosters!
Now players are set glowing (the white outline) during the cooldown period after they click to boost themselves or others. Now players can find their opponents more easily, but only momentarily.
Admin can use the command `/boost toggleglow` to turn this ON or OFF.

GUI join button place holders
The join button for each game in the GUI can have new place holders in the item name or lore.
%players% - players queuing in the game
%min% - minimum number of players required for the game to start
%max% - maximum number of players allowed in the game

New PAPI place holders for game properties
I have added new place holders registered with PlaceholderAPI. These show game properties. In each of these, <game> should be replaced by a game (map or arena) name.
%boost_game_<game>_players% - total players including playing, spectating, or queuing.
%boost_game_<game>_playing% - total players still playing in a running game. Does not include spectators.
%boost_game_<game>_min% - minimum number of players required for the game to start
%boost_game_<game>_max% - maximum number of players allowed in the game
%boost_game_<game>_status% - returns the game status: QUEUING, RUNNING or STOPPED.

1.14.3 Dec 28, 2020
1.14.3 - Placeholders for first to tenth
This is a minor update to extend PAPI placeholder support to query from first to tenth placed players, as per request.

In case there's any difference in spelling between countries, the leaderboard places must be written exactly as follows in the PAPI placeholder: first, second, third, fourth, fifth, sixth, seventh, eighth, ninth or tenth.

e.g. `%boost_top_monthly_seventh_wins%`, which returns the number of wins of the seventh player on the monthly leaderboard.

1.14.2 Dec 8, 2020
1.14.2 - Wall climbing bugfix
This update fixes standing against a wall and boosting yourself to climb, something I thought I'd already prevented. It turns out this was still working against glass walls, which my playtest and demo server uses.

This kind of cheat should be fixed now.

The check that allowed it is modified to be less lenient, removing the loophole that allowed the wall climbing. However, being less lenient, players that are hovering in space by crouching over an edge and are next to non-solid blocks won't be able to boost themselves.

The check is now only only applied for players boosting themselves. For players boosting others the check is not applied, so players cannot camp in a position where boosting won't work on them.

1.14.1 Dec 2, 2020
1.14.1 - Particles, Inventory and Easy Updates
Particles!
A stream of particles of your choice along the line of your boost shot. A burst where you hit and another if you get a player. Boost particles can be configured individually by Boost Stick to give the various sticks more fun differences.
Particle changes were tested on Minecraft 1.16.4 and Minecraft 1.12.2

Inventory Management:
Inventory is no longer cleared when you join the server or when you finish a Boost game. Only Boost-specific items are added or removed. You can now give crate keys or other rewards to winners and they will remain in the players' inventories.

Command blocking while playing:
Commands are optionally blocked while playing. Command blocking is enabled by default but you can allow specific commands. Add or remove allowed commands via the new commands `/boost allowcommand <cmd>` and `/boost blockcommand <cmd>`.
Players with the permission `boost.bypassblocking` will not have commands blocked (good for administrators).

Boosting delay at game start:
There is now an optional delay after a game starts before you can boost yourself or other players. The default is 5 seconds. This gives players a chance to get their bearings in the arena and plan their opening move. Use '/boost setstartdelay <seconds>' to change the start delay. The start delay can be disabled by setting it to 0.

Easy updates:
You can now easily update your config files to contain missing entries from new versions. New '/boost updateconfig' command will write all new configuration entries to your files. It does not modify existing entries, only add entries that are missing. Note that saving YML files does not always write in a pleasing format and this will affect existing configuration entries as well as new ones. Everything is technically correct but it's in the default YAML output format.

Configuration items:
* Particle options in config.yml.
* Additional GUI configuration (row, column, specify a fill block).
* Messages.yml will be updated with messages nested under a `messages:` node.
* Boss-bar colour and style.
* Option to entirely disable the GUI `gui.buttons.main.enabled` in gui.yml.
* Option to disable giving an instruction book `instructions.enabled` in messages.yml.

1.12.0 Sep 30, 2020
1.12.0 - Player GUI & Parkour race
GUI:
Boost now sports an inventory GUI for player commands to join and leave games and to show statistics.

Parkour race:
The win ceiling was introduced in version 1.11, offering an alternative way to win.
This update, 1.12, introduces a per-game setting to return to return to the game start spawn if you fall to the ground level instead of losing a game. With a win-ceiling and return-to-start you can implement a competitive parkour-style race.

Other changes:
* More feedback for games that are not properly configured.
* No longer counts a win if others quit before anyone loses.
* Loss spawn not required if ground setting is disabled.
* Boost by boost-block now in facing direction not movement direction.
* Fixed some leaderboard query statements were left open.
* Removed &4 format code from permission-message in plugin.yml.
* Massive internal refactor of command handling code.

Test server:
If you hadn't noticed, I'm now proudly sponsored by Apex Minecraft Hosting. You can try out the latest changes in Boost on my play-test and demo server:
pmme.apexmc.com
This will usually be running the latest Minecraft version and often pre-release builds of Boost. You'll also see some of the various configuration possibilities and arenas I have built to test and demonstrate Boost game-play options.

Do drop by for a visit. If you have questions and/or comments, you can send me in-game mail, PM me on here, or discord pmme#8563

1.11.0 Jul 26, 2020