Sueta

BoatRacing

26.2.2

An F1‑style ice boat racing plugin for Paper with a clean, vanilla‑like GUI. Manage teams, configure tracks with the built‑in BoatRacing selection tool, run timed races with checkpoints, pit area pena

·Plugin
  1. 26.2.2latestBoatRacing 26.2.2Sep 15, 2026

    Changelog

    26.2.2 — 15/09/2026

    Added
    - Return to the original position after races: new racing.lobby.return-after-end setting (default false, overridable per track). When enabled, participants return to their saved pre-race location when they finish, forfeit, or when the race ends or is cancelled, instead of being sent to the lobby. No /boatracing race back window is needed for those returns. Contributed by [@Renaud11232](https://github.com/Renaud11232) in [#9](https://github.com/Jaie55/BoatRacing/pull/9).
    Fixed
    - `return-after-end` with no lobby: the automatic return is now checked before the lobby location guard, so the setting also applies when the registration lobby is disabled or its world is unavailable (previously it silently did nothing).
    108 downloads
  2. 26.2.1BoatRacing 26.2.1Sep 11, 2026

    Changelog

    26.2.1 — 11/09/2026

    Added
    - Global race placeholders: %boatracing_race_running%, %boatracing_race_registering%, and %boatracing_race_status% now resolve across every track session, so a single scoreboard/hologram line can react when any race opens or starts. %boatracing_race_status% returns running, registering, or idle, with running taking precedence when multiple tracks are active. - Translatable race status labels: %boatracing_race_status% labels now come from placeholder.race-status.* in messages_<lang>.yml and are translated across all 27 bundled languages (for example running/registering/idle in English and en curso/registro/inactiva in Spanish). - 11 new community language bundles: added uk (Українська), id (Bahasa Indonesia), ar (العربية), nl (Nederlands), cs (Čeština), vi (Tiếng Việt), th (ไทย), tl (Filipino), da (Dansk), no (Norsk), and fi (Suomi). Every bundle is fully translated from the English file with the same 719 keys and line-for-line structure, including localized placeholder.race-status.* labels. Bundled languages are now 27 (2 official + 25 community). - Locale validation tool: tools/check_locales.py compares every messages_*.yml against messages_en.yml and reports missing/extra/duplicate keys, placeholder mismatches, colour/escape differences, and possible untranslated text.
    Fixed
    - Duplicate `admin.help.language` key: removed a wrongly placed usage line that silently overrode the help entry in 11 community bundles (fr, it, ja, ko, pl, pt_BR, pt_PT, ru, sv, tr, zh_CN). - Registration-time messages in community bundles: es_419, it, ja, ko, pl, pt_BR, pt_PT, ru, sv, tr, zh_CN, and zh_TW now define setup.show.regtime and setup.error.setregtime (replacing the obsolete race.status.regtime), so registration-time output is no longer shown in English. - Completed translations in existing bundles: translated 353 remaining English strings across 22 bundles (start-light messages, registration-time wizard steps, navigation/status/admin labels, download/usage lines, etc.), so no bundled message text falls back to English. The only intentionally identical value is gui.admin.lore-color in es/es_419 because Color is also the Spanish word. - Uniform bundle structure: all 27 messages_*.yml files now mirror messages_en.yml exactly (758 lines, same key order, blank lines and CRLF endings), so the bundles stay consistent and diff cleanly. The locale checker now also rejects keys that have an inline value and child keys (a broken YAML shape).
    24 downloads
  3. 26.2BoatRacing 26.2Jun 24, 2026

    Changelog

    26.2 — 24/06/2026

    Added
    - MC-MrBirdy added as co-author for ongoing contributions across multiple releases. - New version numbering: aligned with Minecraft's new YY.D.H system (Year.Drop.Hotfix). - Per-track broadcast mode: racing.broadcast-mode accepts global or racers, overridable per track. Contributed by [@MC-MrBirdy](https://github.com/MC-MrBirdy) in [#5](https://github.com/Jaie55/BoatRacing/pull/5). - Per-track lobby configuration: lobby settings can now be set per track for dedicated lobbies. Contributed by [@MC-MrBirdy](https://github.com/MC-MrBirdy) in [#5](https://github.com/Jaie55/BoatRacing/pull/5). - Per-track rewards configuration: rewards can now be overridden per track. Contributed by [@MC-MrBirdy](https://github.com/MC-MrBirdy) in [#5](https://github.com/Jaie55/BoatRacing/pull/5). - Admin `-p:` target flag: admins/console can target other players for commands by appending -p:<player>. Contributed by [@MC-MrBirdy](https://github.com/MC-MrBirdy) in [#5](https://github.com/Jaie55/BoatRacing/pull/5). - Start lights wand UX: Shift+Left Click a Redstone Lamp with the wand to add it as a start light, Shift+Right Click to remove. Lamp lights up with green particles on add, smoke on remove. Wand lore shows light instructions in all 15 languages. - Restart command: /boatracing race restart [track] stops any running race, re-opens registration, re-joins previous participants, and force-starts. Auto-detects track if sender is in an active race. Permission: boatracing.race.admin or boatracing.setup. - Per-track registration time: registration-seconds can now be set per track via /boatracing setup setregtime <seconds>. Configurable in the setup wizard as step 8/8. Displayed in setup show. Reported by [@supershootstudions-lgtm](https://github.com/supershootstudions-lgtm) in [#6](https://github.com/Jaie55/BoatRacing/issues/6). - Clearlobby command: /boatracing setup clearlobby disables the registration lobby for the current track. - Debug logging levels: set debug in config.yml to "off" (default), "severe", "warning", "info", "fine", "finer", or "finest". Controls console log verbosity. Also applies on /boatracing reload.
    Changed
    - UpdateChecker: version comparison now supports YY.D.H format natively. Errors always logged to console. - Wizard LIGHTS step: description and hint now translated to all 15 languages. - Setup summary: laps count now included in the final setup wizard summary. - Wizard step numbering: updated from 1/7–7/7 to 1/8–8/8 to include the new REGTIME step.
    Fixed
    - Action bar now properly cleared after forfeiting a race. Contributed by [@MC-MrBirdy](https://github.com/MC-MrBirdy) in [#5](https://github.com/Jaie55/BoatRacing/pull/5). - Forfeit command correctly uses resolved player reference instead of raw sender. Contributed by [@MC-MrBirdy](https://github.com/MC-MrBirdy) in [#5](https://github.com/Jaie55/BoatRacing/pull/5). - Lobby section null-safety when configuration is missing. Contributed by [@MC-MrBirdy](https://github.com/MC-MrBirdy) in [#5](https://github.com/Jaie55/BoatRacing/pull/5). - Reward section null-safety when configuration is missing. Contributed by [@MC-MrBirdy](https://github.com/MC-MrBirdy) in [#5](https://github.com/Jaie55/BoatRacing/pull/5). - Cross-track reward leakage prevented (stable global fallback). Contributed by [@MC-MrBirdy](https://github.com/MC-MrBirdy) in [#5](https://github.com/Jaie55/BoatRacing/pull/5). - Broadcast mode string comparison now uses .equals() instead of ==. Contributed by [@MC-MrBirdy](https://github.com/MC-MrBirdy) in [#5](https://github.com/Jaie55/BoatRacing/pull/5). - -p: flag no longer interferes with downstream argument length checks. Contributed by [@MC-MrBirdy](https://github.com/MC-MrBirdy) in [#5](https://github.com/Jaie55/BoatRacing/pull/5). - Setup wizard `setlaps`: now correctly displays and persists custom lap values in the wizard prompt. - Setup show: fixed untranslated status labels (general.yes/general.no → setup.status-yes/setup.status-no). Added lap count and registration time display. Excluded laps and registration-seconds from the raw overrides section. - Messages YAML: indentation corrected for cancelled-no-participants and restarted keys across all 16 locales. - Race finish vehicle cleanup: players now properly dismount their boat when finishing a race with the lobby disabled.
    275 downloads
  4. 1.1.6BoatRacing 1.1.6Jun 17, 2026

    Changelog

    1.1.6 — 17/06/2026

    Added
    - Admin Race checkpoint editor UI: added checkpoint management directly in the race admin inventory with paginated listing and in-place actions (add from selection, replace, remove, move up/down). - Admin Race pitstop quick controls: added mandatory pitstop quick-set actions (0/1/2) plus custom anvil input from the race admin inventory. - Setup selection particle visualizer: added built-in wand selection wireframe rendering using particles, configurable under setup.selection-visualizer.* (enabled, period-ticks, particle, spacing, max-particles-per-player, view-distance, show-only-with-wand). - Explicit track+laps placeholders: added lap-scoped variants for comparative panels: %boatracing_track_best_player_laps_<track>_<laps>%, %boatracing_track_best_time_laps_<track>_<laps>%, %boatracing_track_best_time_ms_laps_<track>_<laps>%, plus %boatracing_track_top_1|2|3_player|time|time_ms_laps_<track>_<laps>%. - Stats placeholders by track and laps: added best-race/best-lap variants for viewer and top contexts scoped by track and by track+laps (for example %boatracing_player_best_race_laps_<track>_<laps>% and %boatracing_top_player_best_race_name_laps_<track>_<laps>%). - Forfeit command (/boatracing race forfeit): players can abandon a running race without stopping it for others. Permission boatracing.race.forfeit (default: true). Contributed by [@MC-MrBirdy](https://github.com/MC-MrBirdy) in [#3](https://github.com/Jaie55/BoatRacing/pull/3). - DNF results display: forfeited players appear as DNF {player} (forfeited) at the bottom of race results, separated from finishers. Finishers keep normal positions and rewards; forfeited players do not receive rewards or win/loss stats. - Practice ghost replay (advanced vanilla MVP): solo practice sessions now capture sample paths and replay the best recorded ghost alongside the current run. Ghost entities (boat + armorstand) use no-collision rules, are hidden from other players, and interpolate smoothly with angular rotation. - PracticeGhostManager: new manager class for ghost persistence per track and lap count, using the DocumentStore backend. Ghosts are stored in practice-ghosts.yml. - DocumentStore persistence layer: new pluggable storage interface with three backends — YAML files (YamlFileDocumentStore), local SQLite (JdbcDocumentStore with SQLite dialect), and remote MySQL (JdbcDocumentStore with MySQL dialect). Backend selected via config.yml → database.mode. - DocumentStoreFactory: resolves the active store implementation from config and provides automatic legacy-YAML migration on first load when switching to SQLite/MySQL. - Database config section: new database block in config.yml with mode (YAML/SQLITE/MYSQL), table name, SQLite file path, and MySQL connection settings. - Practice ghost config section: new practice.ghost block in config.yml with enable toggle, sample/playback tick rates, minimum distance filter, sample cap, and name display option. - Practice leave command: /boatracing race practice leave <track> (and exit alias) to cleanly exit a practice session. Also handles disconnect/quit/kick via PlayerQuitEvent and PlayerKickEvent handlers. - AnvilGUI 26.1/26.2 compatibility: switched from upstream net.wesjd:anvilgui:1.10.12-SNAPSHOT to the feeeedox/AnvilGUI fork via JitPack. Added Wrapper26_R1_LocalShim as compatibility fallback for 26.1 close-event handling. Extended VersionMatcher with 1.19.x mappings, 26.1.2, and 26.2/26.2.1→26_R2 entries, loading native Wrapper26_R2 from the fork on 26.2. - Race result forfeited message: added race.results.forfeited key to all 16 bundled language files with translations.
    Changed
    - Track-scoped Admin Race actions: race/setup operations in Admin Race GUI now resolve the active track session explicitly, so edits and status reflect the selected track context. - GUI setup persistence path: laps/pitstops/checkpoint edits issued from Admin Race GUI now write through track configuration overrides as part of the same action flow. - Setup override synchronization: /boatracing setup setlaps <n> and /boatracing setup setpitstops <n> now also update the active in-memory race session for the selected track when that session already exists. - Setup command docs clarity: README setup command descriptions now state that laps/pitstops overrides apply immediately without restart/reload. - Lap-context track records/placeholders: track bests are now stored and resolved per lap count (bestTimesByLaps), preventing 2-lap records from overriding 3-lap placeholders (and vice versa) across %boatracing_track_best_*%, %boatracing_track_top_*%, and %boatracing_player_track_best%. - Selection visualizer edge distribution: particle allocation is now balanced across all box edges and visibility culling is performed against the full selection box distance, reducing inconsistent partial rendering. - Forfeit broadcast scoping: forfeit() now uses raceAudience() (participants + admins) instead of global broadcast() for the {player} forfeited message in competitive mode. Practice mode forfeits show a private You left the practice session message only to the runner. - TeamManager, StatsManager, PracticeStatsManager refactored: all three managers now read/write through DocumentStore instead of direct File + YamlConfiguration.save/load. Legacy YAML files are automatically migrated to the database on first load when using SQLite/MySQL mode. - config.yml restructured with section header comments and new database / practice.ghost blocks. - Race state marking: RaceState now includes a forfeited flag. forfeit() marks the state instead of removing it, so checkAllFinished() triggers correctly and announceResults() can display the player as DNF. - Project version: bumped to 1.1.6. Minecraft support range extended from 26.1 → 26.2.
    Fixed
    - Stale per-track override reads in existing sessions: race settings load now refreshes track data before reading racing.* overrides, preventing old values from being reused in cached track sessions. - `setlaps` runtime mismatch: fixed issue where /boatracing setup setlaps <n> acknowledged the new value but /boatracing race open <track> could still open registration with a previous lap count until server restart. - `setpitstops` runtime mismatch: fixed equivalent stale-value behavior for per-track mandatory-pitstops after /boatracing setup setpitstops <n>. - Track setup editability after creation: added granular setup editing commands so admins can remove one start/light by index (removestart, removelight) and clear finish/default pit (clearfinish, clearpit) without rebuilding the whole track config. - Admin Race GUI i18n regression: removed newly introduced hardcoded user-facing strings and routed checkpoint/pitstop/editor labels, lore, and action feedback through message keys. - Localized coverage gap for new GUI keys: added missing gui.race.* keys for all bundled locales so non-EN bundles no longer miss editor/pagination/pitstop texts. - Stats tab-complete DataConverter spam: player-name suggestions for /boatracing stats <player> no longer rely on OfflinePlayer#getName() in tab-complete paths, avoiding repeated Paper 1.21 Failed to convert json to nbt / MalformedJsonException console errors on malformed legacy playerdata. - Setup wand text key fallback: fixed wand name/lore rendering when message bundles store those entries under setup.usage.*; setup wand now resolves localized text instead of showing raw key strings. - Selection wireframe truncation under tight budgets: fixed abrupt edge cutoffs in large selections when particle limits are reached. - DocumentStore initialization order: DocumentStoreFactory.create()
    56 downloads
  5. 1.1.5BoatRacing 1.1.5Apr 5, 2026

    Changelog

    1.1.5 — 06/04/2026

    Added
    - Solo practice mode command: added /boatracing race practice <track> to start a one-player practice race on a ready track without requiring the minimum race player threshold. - Player stats command: added /boatracing stats [player] to show competitive position counts by place (showing only non-zero places) and practice snapshots (best/last run/lap/sectors) for self or target player. - Practice permission node: added boatracing.race.practice with default true, so servers can grant/restrict solo practice independently from race-admin permissions. - Stats permission node: added boatracing.stats with default true, so servers can grant/restrict stats access independently. - Stats-others permission node: added boatracing.stats.others with default true, so servers can separately control viewing other players via /boatracing stats <player>. - Map-vote open permission node: added boatracing.race.voteopen with default op, so opening map votes can be granted/restricted independently from race start/stop management. - Admin language switch command: added /boatracing admin language <code> to change the active plugin language at runtime. - Admin language permission node: added boatracing.admin.language with default op, so language switching can be delegated without full admin management access. - Persistent practice telemetry: added practice-stats.yml storing per-player/per-track practice metrics (best/last run, best/last lap, best/last sector split). - Practice placeholders: added %boatracing_player_practice_*% placeholders (current-track and <track> token variants) and %boatracing_track_practice_running_<track>% for practice state displays. - Practice placeholder compatibility alias: added %boatracing_track_practicerunning_<track>% as alias for track practice-running state. - Swedish language bundle: added bundled messages_sv.yml as an unofficial community translation (sv) with full message coverage and preserved placeholders/color codes.
    Changed
    - Same-track race/practice locking during countdown: a track now stays busy while practice countdown is active, preventing race open/start/force on that same track until practice ends (other tracks remain independent). - Practice chat scope: practice countdown/split/lap/result updates are now private to the practicing player instead of global race-style broadcasts. - Localized practice marker in sidebar: when solo practice is active, the race sidebar now renders a language-aware label from race.scoreboard.practice-label (for example PRACTICE/PRÁCTICA). - Practice lobby return parity: solo practice now preserves pre-practice location context so finish flow uses the same lobby/back UX (/boatracing race back window + hint) as standard race finish/cancel. - Admin Tracks GUI interaction model: track items now support right-click rename (left-click load, shift-right-click delete), and the lore now shows all three actions in bundled languages. - Map vote flow for mixed clients: /boatracing race voteopen now supports opening all saved tracks (all or no explicit track list), broadcasts a plain vote command hint (/{label} race vote <track>) alongside clickable UI, and auto-opens registration on the voted winner when possible. - Map vote command syntax and tab-complete: admin usage/help and tab suggestions now include voteopen [all|<track1> <track2> ...] [seconds] with all/* support. - Runtime language switching flow: changing language through /boatracing admin language <code> now persists into config.yml and reloads message bundles immediately (no separate reload command required by the user). - Admin language command alias cleanup: removed /boatracing admin lang <code>; only /boatracing admin language <code> is now accepted and suggested. - Shade packaging metadata handling: Maven shade config now filters duplicate META-INF manifest/signature files, removing noisy overlap warnings during package builds.
    Fixed
    - Track record placeholders not refreshing after improved times: %boatracing_track_best_*_<track>% and %boatracing_track_top_1..3_*_<track>% now prefer live race-session data (or track file data) instead of stale in-memory selected-track data, so better race times update correctly. - Current-track best placeholders consistency: %boatracing_track_best_player% and %boatracing_track_best_time% now resolve through the same track-token path to avoid stale values when races run in separate track sessions. - Map-vote fallback visibility: when winner auto-open fails, the race.vote.next-step hint is no longer broadcast to all players; it is now sent only to vote-managing users (and console). - Localized track readiness requirements: race.track-not-ready requirement details are now resolved through race.requirements.* keys across all bundled locales, avoiding mixed-language output. - Community locale wording regressions: restored expected phrasing for setup.laps-set (FR/PL), restored PT-PT admin tracks help wording, and replaced leaked BoatType tokens with localized labels in RU (тип лодки) and zh_CN (船只类型) admin setboat help/usage lines. - Stats chat readability: practice stats output now suppresses empty sector noise (e.g. 0:00.000 entries), and unsaved practice tracks use localized stats.track-unsaved-label names across bundled locales.
    206 downloads
  6. 1.1.4BoatRacing 1.1.4Apr 4, 2026

    Changelog

    1.1.4 — 04/04/2026

    Added
    - Track best-record placeholders by token: %boatracing_track_best_player_<track>%, %boatracing_track_best_time_<track>%, and %boatracing_track_best_time_ms_<track>% for per-track record labels in static scoreboards/holograms. - Track top-3 placeholders by token (NEW 1.1.4): %boatracing_track_top_1_*_<track>%, %boatracing_track_top_2_*_<track>%, and %boatracing_track_top_3_*_<track>% (player, time, time_ms) for podium/leaderboard layouts per track. - Snapshot channel for Paper 26.1 validation: introduced the first 26.1 snapshot build named snapshot-26.1-gui-fallback-01. - Snapshot warning docs/badges: README now includes explicit WARNING snapshot and implementation/risk badges for this build stream. - Configurable minimum racers to start: added racing.min-players-to-start as a global race-start threshold, with per-track override support via tracks/<name>.yml under racing.min-players-to-start. - Localized minimum-player warning: added race.not-enough-players to bundled language files to report required/current participant counts when start is blocked.
    Fixed
    - Scoreboard tie-break by checkpoint arrival order: when racers are on the same lap and same checkpoint count, the one who reached that checkpoint first stays ahead. This avoids position swaps on equal checkpoint entry. - Setup wizard open-registration fallback command: if no named track is selected yet, wizard Done now uses /boatracing race open unsaved instead of an invalid placeholder token (/boatracing race open <track>), preventing track not found <track>. - Paper 26.1 Anvil close-event compatibility: added a custom AnvilGUI version-matcher path plus Wrapper26_R1_Fixed fallback implementation that probes compatible handleInventoryCloseEvent signatures and applies a safe close-container fallback when upstream signature assumptions fail. - Race start gating consistency: start, force, admin race GUI start, and registration timeout auto-start now consistently enforce the configured minimum-player threshold before race launch.
    Changed
    - Project versioning for pre-release: project version moved to 1.1.4-26.1-SNAPSHOT in pom.xml. - Stable tag status: stable 1.1.4 publication is postponed due to the Paper 26.1 GUI/Anvil compatibility issue; the planned 1.1.4 feature set is delivered in this snapshot channel.
    Docs
    - Minimum-player start docs: README/CHECKLIST now document racing.min-players-to-start, per-track override behavior, and validation expectations for blocked starts. - Placeholder docs for 1.1.4: README placeholder table now marks %boatracing_track_best_*_<track>% and %boatracing_track_top_1..3_*_<track>% as NEW (1.1.4), and CHECKLIST includes explicit QA checks for these placeholders.
    Known Issues
    - GUI risk on evolving 26.1 builds: because this snapshot relies on reflective compatibility over unstable internals, some GUI/Anvil flows can still fail on certain Paper 26.1 dev builds or non-Paper forks.
    38 downloads
  7. 1.1.4-26.1-SNAPSHOTBoatRacing 1.1.4-26.1-SNAPSHOTApr 2, 2026

    Changelog

    1.1.4-26.1-SNAPSHOT (snapshot-26.1-gui-fallback-01) — 2026-04-02

    Added
    - Snapshot channel for Paper 26.1 validation: introduced the first 26.1 snapshot build named snapshot-26.1-gui-fallback-01. - Snapshot warning docs/badges: README now includes explicit WARNING snapshot and implementation/risk badges for this build stream. - Configurable minimum racers to start: added racing.min-players-to-start as a global race-start threshold, with per-track override support via tracks/<name>.yml under racing.min-players-to-start. - Localized minimum-player warning: added race.not-enough-players to bundled language files to report required/current participant counts when start is blocked.
    Changed
    - Project versioning for pre-release: project version moved to 1.1.4-26.1-SNAPSHOT in pom.xml. - Stable tag status: stable 1.1.4 publication is postponed due to the Paper 26.1 GUI/Anvil compatibility issue; the planned 1.1.4 feature set is delivered in this snapshot channel.
    Fixed
    - Paper 26.1 Anvil close-event compatibility: added a custom AnvilGUI version-matcher path plus Wrapper26_R1_Fixed fallback implementation that probes compatible handleInventoryCloseEvent signatures and applies a safe close-container fallback when upstream signature assumptions fail. - Race start gating consistency: start, force, admin race GUI start, and registration timeout auto-start now consistently enforce the configured minimum-player threshold before race launch.
    Docs
    - Minimum-player start docs: README/CHECKLIST now document racing.min-players-to-start, per-track override behavior, and validation expectations for blocked starts.
    Known Issues
    - GUI risk on evolving 26.1 builds: because this snapshot relies on reflective compatibility over unstable internals, some GUI/Anvil flows can still fail on certain Paper 26.1 dev builds or non-Paper forks.
    26 downloads
  8. 1.1.3BoatRacing 1.1.3Mar 30, 2026

    Changelog

    1.1.3 — 2026-03-30

    Added
    - Parallel race sessions by track: race lifecycle commands now operate per track session, allowing multiple tracks to run registration/races at the same time. - Map vote commands: added /boatracing race voteopen <track1> <track2> [seconds], /boatracing race vote <track>, /boatracing race voteui, /boatracing race votestatus, and /boatracing race voteclose. - Track-scoped race placeholders: %boatracing_track_race_running_<track>%, %boatracing_track_race_registering_<track>%, and %boatracing_track_race_status_<track>% now resolve against the requested track session.
    Fixed
    - Selected boat variant persistence on spawn: race boats now re-apply the selected boat/raft variant right after spawn and on delayed retries, fixing cases where a chosen variant (for example DARK_OAK) appeared as default OAK. - No dismount during countdown/race: racers can no longer manually exit boats/rafts during the 5-light countdown or while the race is running. - Vote-open UX prompt: map-vote start now includes a clickable chat action to open vote UI (/boatracing race voteui) instead of only a typed command hint. - Reward command parsing compatibility: reward distribution now supports both commands (list) and legacy command (single string), with safer fallback behavior for missing per-position keys (including position 1).
    Docs
    - Track placeholder docs: README now documents track-scoped placeholders, compatibility aliases, and per-track session evaluation behavior. - Race/map-vote docs: README now includes the new map vote commands (including voteui) and multi-track race behavior notes. - QA additions for 1.1.3: CHECKLIST now includes explicit validation steps for track-scoped placeholders and selected boat variant spawn reliability. - Rewards schema guidance: README/CHECKLIST now document reward command compatibility and recommend explicit commands: [] in each position block.
    108 downloads
  9. 1.1.2BoatRacing 1.1.2Mar 29, 2026

    Changelog

    1.1.2 — 2026-03-29

    Added
    - PlaceholderAPI integration: BoatRacing now registers %boatracing_*% placeholders for holograms/scoreboards. - Persistent aggregate stats: new stats.yml storage for player wins, team wins, best race, and best lap values used by placeholders. - Race back command: added /boatracing race back so players can manually return to their saved pre-lobby location after race flows. - Post-race lobby return UX: after a race ends or is cancelled, participants are teleported to the configured race lobby, receive a clickable back shortcut, and have a 3-minute window to return. - French language bundle: added bundled messages_fr.yml (community translation) with complete race/setup/team/admin/gui coverage. - Additional community language bundles: added bundled messages_es_419.yml, messages_pt_BR.yml, messages_pt_PT.yml, messages_de.yml, messages_it.yml, messages_pl.yml, messages_tr.yml, messages_ja.yml, and messages_ko.yml, expanding built-in language coverage.
    Changed
    - Setup Wizard compact mode: wizard prompts were shortened and reorganized by step to reduce chat text while keeping actionable buttons. - Registration announce source: registration announce text is now language-specific in messages_<lang>.yml (race.registration.announce) instead of config.yml. - Registration announce placeholders: race.registration.announce now consistently supports {track}, {laps}, {cmd}, {label} across bundled language files. - Lobby return flow: pre-lobby locations are preserved during race start, and race-back return entries now expire automatically after 3 minutes (in-memory only). - Race help and tab-complete: race back is now included in help output and tab suggestions for players with boatracing.race.back. - Language bundle loading: language selection now supports bundled and custom messages_<lang>.yml files from the plugin folder, with safe fallback to English. - Translation status headers: bundled language headers now consistently mark messages_en.yml and messages_es.yml as official translations, and all other bundled languages as unofficial community translations. - Chinese locale split: kept messages_zh_TW.yml for Taiwan Traditional Chinese and added messages_zh_CN.yml for Mainland Simplified Chinese. - Race back window configurability: the /boatracing race back availability window is now configurable with racing.lobby.back-window-seconds.
    Fixed
    - Build break in TeamManager: fixed malformed package declaration in TeamManager.java that caused compilation failure. - Race boat entity cleanup: race-spawned boats/rafts are now tracked and removed deterministically on finish/cancel/reset, preventing leftover vehicle entities in the world. - Race back expiry notification: players now receive an automatic message when the back window expires, instead of only seeing it after manually running /boatracing race back.
    Docs
    - Placeholder reference added: README now documents available %boatracing_*% placeholders and team lookup formats. - Lobby-back docs updated: README and QA checklist now document the clickable race back flow and 3-minute return window as part of 1.1.2.
    22 downloads
  10. 1.1.1BoatRacing 1.1.1Mar 13, 2026

    Changelog

    1.1.1 — 2026-03-13

    Added
    - Registration lobby mechanic (optional): new racing.lobby.* config block to send registered players to a lobby location while registration is open, with optional return to their previous location on leave/cancel. - Lobby setup command: added /boatracing setup setlobby to save the admin's current position as the registration lobby and enable it instantly. - Lobby i18n messages: added localized feedback when players are teleported to the race lobby and when they are returned. - SimpleScore integration hook: when SimpleScore is present, BoatRacing now uses its viewer hide/show flow during races to avoid sidebar ownership conflicts and restore the external scoreboard cleanly after stop/cancel.
    Fixed
    - Race track selection flow for active track: race open/join/leave/force/start/stop/status no longer force a disk reload when the requested track is already the active one (notably unsaved), preventing stale-state issues. - Track reload consistency: TrackConfig.load() now clears all in-memory collections (customStartSlots, bestTimes, and others) before reading from disk. - Registration timer race-loop bug: fixed a state bug where race open timer callbacks could survive manual start/force/stop flows and re-trigger race starts (infinite restart behavior). Registration sessions are now invalidated/cancelled atomically. - Manual start stale-callback guard: /boatracing race start <track> now closes the registration window first to prevent old registration callbacks from restarting/overlapping race state. - External sidebar handoff reliability: improved race HUD/sidebar cleanup so external sidebar plugins (notably SimpleScore and TAB) recover cleanly after race stop/cancel without requiring relog.
    Changed
    - Setup click actions UX: setup wizard and admin setup tips now use suggest-in-chat behavior for commands requiring arguments, so players can tab-complete before executing. - Compatibility matrix clarified: this plugin jar is intended for Bukkit-family servers (CraftBukkit/Spigot/Paper/Purpur) and now includes Folia-compatible scheduling paths.
    Docs
    - Platform scope documented: README/CHECKLIST now explicitly state that Sponge requires a separate platform port and that Velocity/BungeeCord (proxy layer) cannot run gameplay logic from this plugin jar. - Explicit SimpleScore compatibility note: docs now explicitly list compatibility with SimpleScore (GitHub: https://github.com/RuiPereiraDev/SimpleScore, Modrinth: https://modrinth.com/plugin/simplescore). - Explicit TAB compatibility note: docs now explicitly list compatibility with TAB (GitHub: https://github.com/NEZNAMY/TAB, Modrinth: https://modrinth.com/plugin/tab-was-taken).
    54 downloads
  11. 1.1.0BoatRacing 1.1.0Mar 12, 2026

    Changelog

    1.1.0 — 2026-03-12

    Added
    - Multi-language support: messages system now supports English (default) and Español (España). Configure the language in config.yml via the language setting ("en" or "es"). All user-facing text is externalized in messages_en.yml or messages_es.yml (stored in the plugin data folder after first run). - New community translations: added Traditional Chinese (messages_zh_TW.yml) and Russian (messages_ru.yml) language files. Both include a clear warning that they are unofficial translations and should be reviewed. - Player-controlled race management: new config option player-actions.allow-player-race-start (default: false) lets non-admin players open, start, force-start and stop races globally. Per-track override available via racing.allow-player-start in tracks/<name>.yml (uses the track config override system to allow selective enablement per track). - Reward system: fully customizable race completion rewards with support for finishing positions, configurable commands, player messages, and broadcast announcements. Positioned in config.yml under racing.rewards with enable/disable toggle, position-specific settings (1st/2nd/3rd/default), and placeholder support ({player}, {position}, {time}, {track}, {laps}). - Race performance optimization: PlayerMoveEvent listener now throttles unnecessary checkpoint checks by comparing only when the player moves to a different block (not within the same block). - Complete i18n infrastructure: MessageManager utility loads language files dynamically; all race, setup, team, and admin commands now use externalized messages. New messages can be added and will merge with defaults on reload without overwriting customizations.
    Changed
    - Permission flow refinement for race commands: race open/start/force/stop now check track existence and load per-track settings before validating permissions, enabling per-track player-start override checks in a single canManageRace() helper. - All hardcoded messages across the plugin (BoatRacingPlugin, RaceManager, AdminGUI, AdminRaceGUI, AdminTracksGUI, UpdateNotifier, SetupWizard, TeamGUI, TrackConfig) replaced with i18n msg().get() calls. - Config option for team actions restructured: moved and renamed from various checks to player-actions section for consistency.
    Fixed
    - Setup Wizard i18n key mapping: fixed wrong translation key paths in wizard navigation/summary prompts that could show raw keys (for example setup.wizard.nav-label) instead of localized text.
    Docs
    - CHANGELOG and CHECKLIST updated for 1.1.0 with full feature list and verification steps. - Version number incremented from 1.0.9 to 1.1.0.
    19 downloads
  12. 1.0.9BoatRacing 1.0.9Aug 19, 2025

    1.0.9 — 2025-08-19

    Added / Changed
    - Official support range declared: 1.19 → 1.21.10 (Bukkit/Spigot compatible; works on Paper/Purpur). Requires Java 17+; plugin.yml api-version set to 1.19. - Documented supported servers: Purpur, Paper, Spigot, CraftBukkit (Bukkit-compatible forks may work; Folia/Sponge/Forge hybrids not supported). - Classified as Bukkit/Spigot on Paper by excluding paper-plugin.yml from the jar and using only Bukkit-safe APIs for metadata. - Documentation updated: README, CHANGELOG and QA checklist in EN/ES.
    Fixed
    - Boat/Raft materials on mixed APIs: dynamic Material resolution for boat/raft variants (including Bamboo Raft and Pale Oak) removes NoSuchFieldError on older bases and avoids CraftLegacy warnings. - Command metadata on Spigot: restored by replacing Paper-only getPluginMeta() with Bukkit getDescription().
    307 downloads
  13. 1.0.8BoatRacing 1.0.8Aug 16, 2025

    1.0.8 — 2025-08-16

    Added
    - Config toggles to customize the sidebar and ActionBar visibility: - racing.ui.scoreboard.show-position|show-lap|show-checkpoints|show-pitstops|show-name - racing.ui.actionbar.show-lap|show-checkpoints|show-pitstops|show-time - HUD pitstops: when racing.mandatory-pitstops > 0, show “PIT A/B” on the sidebar and ActionBar (config‑gated). - Registration broadcast now includes the track name and the exact join command using racing.registration-announce template. - Setup Wizard: new optional step to set “Mandatory pit stops” with quick buttons [0] [1] [2] [3]. - Setup command /boatracing setup setpitstops <n> to update and persist racing.mandatory-pitstops. - Finish‑without‑checkpoints: added a clear player message when trying to finish without all required checkpoints for the lap (sound remains). - Results broadcast now highlights the podium: 🥇/🥈/🥉 medals and rank colors for the top‑3.
    Changed
    - Race tab-complete now shows join|leave|status to all players; admin actions suggested only to admins. - race status can be viewed by any player (keeps default permission true). - Sidebar order switched to “L/CP - Name” and removed centering/padding. - Names are shown as-is (keeps leading '.' for Bedrock players via Geyser/Velocity). - Results lines use safe name rendering (strip rank wrappers; preserve leading '.') and keep a penalty suffix when applicable.
    Fixed
    - Minor cleanup and removal of unused variables in scoreboard rendering. - Prevented a potential permission recursion by defining boatracing.admin with explicit children instead of inheriting boatracing.*. - /boatracing race leave <track> now replies when registration is closed or when the player isn’t registered (no more silent no-op). - Setup Wizard (Pit): no longer repeats waiting for team pits when a default pit exists; the wizard now advances to Checkpoints automatically (team pits remain optional). - Updater: fixed missing console notice; now logs a WARN once on startup (if outdated) and also every hour while outdated. When an admin joins, a quick check runs (throttled) to notify them within seconds if a new update was just published.
    27 downloads
  14. 1.0.7BoatRacing 1.0.7Aug 15, 2025

    What’s new (1.0.7)

    Bugfixes and quality-of-life: - Console update check noise removed: only a single WARN shortly after startup when you are outdated (respecting updates.console-warn). Periodic 5‑minute checks remain but are silent. - Stability: network errors during update checks are logged at most once per server run. Removal: - The built‑in hiding of vanilla scoreboard numbers has been removed. If you want to hide the sidebar’s right‑side numbers, use an external plugin for now while a future built‑in approach is evaluated. UI: - Scoreboard redesigned: centered rows, compact “Name - L X/Y CP A/B” layout, rank colors (1=gold, 2=silver-ish, 3=bronze-ish), and your own name in green.
    26 downloads
  15. 1.0.6BoatRacing 1.0.6Aug 14, 2025

    What’s new (1.0.6)

    Improvements and tweaks: - New sidebar leaderboard: the sidebar now shows the top‑10 positions in real time. Personal stats moved to the ActionBar. - Personal HUD: your Lap, CP and Elapsed Time now appear in the ActionBar, updated every 0.5s. - Sector and finish gaps: compact messages show your time gap vs the lap/finish leader at each checkpoint and at lap finish (and vs winner at race finish). - Start lights jitter: optional random jitter added to the lights‑out delay via racing.lights-out-jitter-seconds. - Live leaderboard: sidebar shows the top‑10 positions; your Lap/CP/Time are shown in the ActionBar (auto‑created on race start and cleaned up on stop/reset). - Vanilla numbers hidden: the sidebar’s right‑side numbers are hidden natively when supported by your server (Paper 1.20.5+); no TAB plugin required. - Layout polish: names are left‑aligned and the whole " - Lap X/Y [CP]" block is centered. Removed the decorative separator and arrow prefix, compact/dynamic padding based on the longest visible name. Long names are truncated with "..." and no extra padding is added after the ellipsis. Your own name is highlighted in green (no bold). - FIN label: standardized to “FINISHED”. - Display names: supports EssentialsX displayName and strips common rank wrappers like [Admin]/(Rank) at the start for cleaner alignment.
    23 downloads
  16. 1.0.5BoatRacing 1.0.5Aug 14, 2025

    What’s new (1.0.5)

    Fixes and polish: - Team member persistence: no members are lost after updates/reloads/startup; loading restores members without enforcing capacity checks. - Setup pit command: /boatracing setup setpit [team] now supports team names with spaces by quoting them (e.g., "/boatracing setup setpit \"Toast Peace\""); tab‑completion suggests quoted names when the input starts with a quote. - Config defaults: on plugin update or /boatracing reload, new default keys are merged into your existing config.yml without overwriting your changes. - Boat/raft type: racers are mounted in their selected wood variant (including chest variants) instead of always OAK; compatible across API versions with safe fallbacks.
    25 downloads
  17. 1.0.4BoatRacing 1.0.4Aug 14, 2025

    What’s new (1.0.4)

    - Team-specific pit areas: new unified command /boatracing setup setpit [team] sets the default pit when no team is provided, or the pit for a specific team when a team name is given. Tab‑completion suggests team names. - Mandatory pitstops: new racing.mandatory-pitstops config (default 0). When > 0, racers must complete at least that many pit exits before they are allowed to finish; pitstops are counted on exiting the pit area and persist for the whole race. - Wizard: Pit step updated to mention default pit vs per‑team pits and to guide the flow with clickable tips. - Config updates: on plugin updates/reloads, new config.yml keys are merged into your existing file without overwriting your changes. - Boat type: racers are mounted in their selected boat/raft wood variant (including chest variants) instead of always OAK; works across API versions with a safe fallback. - Permissions: players can use join, leave, and status by default; only open|start|force|stop remain admin‑only. Removed extra runtime checks that could block players with permissive defaults. - Boats: spawned boats now respect the player’s selected wood type robustly across API versions; falls back to OAK if the enum value is not available. - Per‑player start slots and grid ordering: new setup commands /boatracing setup setpos <player> <slot|auto> and /boatracing setup clearpos <player>. On race start, players bound to a slot are placed there first; remaining racers are ordered by their best recorded race time on that track (fastest first), and racers without a time are placed last. - Setup show: now also displays the presence of team‑specific pits and the number of custom start positions configured. - Wizard (Starts): shows optional buttons for per‑player custom slots — setpos/clearpos/auto — and displays the number of custom slots configured.
    41 downloads
  18. 1.0.3BoatRacing 1.0.3Aug 12, 2025

    [1.0.3]

    Added
    - Admin Tracks GUI: create, select, save as, delete named tracks (with confirmation). Requires boatracing.setup. - Admin Race GUI: manage race lifecycle (open/close registration, start/force/stop), quick-set/custom laps, and registrant removal. - Active (selected) track name is displayed in Setup Wizard prompts, /boatracing setup show, and /boatracing race status. - Tooltips (lore) for “Admin panel”, “Player view”, and “Refresh” buttons in GUIs. - Quick navigation: from Teams GUI to Admin panel (admins only), and from Admin GUI back to player view. - Refresh buttons in Teams and Admin GUIs. - Guided setup wizard with concise, colorized prompts and clickable actions. Adds a Laps step and an explicit Finish button; navigation buttons now use emojis (⟵, ℹ, ✖) and spacing puts a blank line at the top of the block. - Convenience selector: /boatracing setup wand to give the built-in selection tool. - Team GUI: members can rename the team and change the team color when enabled via config (player-actions.allow-team-rename / allow-team-color). These actions notify all teammates. - Team GUI: optional member disband via config (player-actions.allow-team-disband). Disband uses a confirmation screen and notifies all teammates. - Per‑track storage: all track configuration is saved under plugins/BoatRacing/tracks/<name>.yml. On startup, a legacy track.yml is migrated to tracks/default.yml (or default_N.yml) with an in‑game admin notice. - Race commands now require a track argument: open|join|leave|force|start|stop|status <track>. Tab‑completion suggests existing track names for these. - Admin Tracks GUI: after creating a track, sends a clickable tip to paste /boatracing setup wizard. - Wizard labels Pit area and Checkpoints as “(optional)” and allows skipping them. Readiness requires only Starts and Finish. - Start lights: configure exactly 5 Redstone Lamps; race start uses an F1-style left-to-right countdown that lights lamps via block data (no redstone). New setup commands: addlight and clearlights. Wizard adds a dedicated “Start lights” step. - Registration: server-wide broadcast when a player joins or leaves registration. - False start penalties: moving forward during the start-light countdown applies a configurable time penalty (racing.false-start-penalty-seconds, default 3.0). Messages are in English. - New config flags: racing.enable-pit-penalty and racing.enable-false-start-penalty to toggle pit and false-start penalties. - Race permissions split: default-true for boatracing.race.join, boatracing.race.leave, and boatracing.race.status; admin actions require boatracing.race.admin (or boatracing.setup).
    Changed
    - Footer fillers switched from LIGHT_GRAY_STAINED_GLASS_PANE to GRAY_STAINED_GLASS_PANE for a darker look. - Denial messages for protected actions are now hardcoded in English (no longer read from config). - Configuration cleanup: removed obsolete teams: section and messages.disallowed from config.yml; documentation now reflects per‑track storage only. - README updated to document player-actions.* flags and storage files. - Setup help and tab-completion updated to include wizard and wand. - Admin/user notifications for team deletion/removal now use neutral phrasing (no “by an admin”). - Tracks GUI: terminology switched to “selected” for the active track; "Create and select" loads the newly created track and suggests starting the setup wizard. - Disband button is hidden for members when player-actions.allow-team-disband is false. - Race lifecycle: stop cancels registration and running race; start/force operate only on registered participants. Placement enforces unique starts, pitch=0, and auto‑mounts the selected boat. - Terminology: “loaded” → “selected”; “pit lane” → “pit area”. - Race commands open and start no longer accept a laps argument; laps come from configuration/track. - Pit area and checkpoints made optional across setup, readiness checks, and runtime logic/documentation. - Tracks GUI: removed “Save as…”. - Setup help and tab-completion now include addlight and clearlights. /boatracing race status and setup show display the number of start lights.
    Fixed
    - Removed the last references to messages.disallowed.* in TeamGUI that could cause confusion. - Selection handling improved: built-in selection tool (left/right click); /boatracing setup selinfo shows richer diagnostics. - Admin GUI: clicking any dye item in the team view now opens the color picker (previously only LIME_DYE was handled). - Crash on boat spawn fixed by spawning BOAT/CHEST_BOAT directly and mounting players; removed unsupported boat wood-type setter. - Checkpoints persistence: saving as a list and loading from both list and legacy section formats; wizard and readiness checks now correctly detect added checkpoints. Fixed a false “missing checkpoint” on race open after setup. - Players wrongly blocked from /boatracing race join due to a global permission gate. Now join/leave/status are allowed by default and only admin actions are gated.
    36 downloads

Similar projects

Plugin →