- 版权类型
- 原创
- 插件中文名称
- 冰船竞速
- 插件英文名称
- Boatrace
- 原帖地址
- #
- 支持的核心(服务端)
- Paper
- Folia
- 前置组件
- PlaceholderAPI
- 适配版本(Java)
- 26.x
- 1.21
[MD]
### BoatRace 是什么
BoatRace 是一款面向 Lophine 与 Folia 服务器的冰船竞速插件。服务器管理员可以把已经建好的冰道配置成正式赛道,并设置起点、记录点、发车位和比赛圈数。玩家既可以创建多人比赛房间,也可以在赛道空闲时进行连续单圈计时。
插件提供自动发车、实时排名、路线引导、观战、赛事记录、个人最佳成绩、PlaceholderAPI 榜单以及可配置 GUI,适合用于小游戏服务器、活动服、生存服公共赛道和竞速赛事。
作者:cloudfl4re
### 主要功能
- 使用指令创建和编辑永久赛道
- 自定义起点范围、顺序记录点和人工发车位
- 自动生成六位比赛代码,玩家可通过代码加入房间
- 正式比赛支持自定义圈数、统一倒计时和自动生成比赛船
- 比赛过程中实时显示名次、圈数、用时和下一个记录点
- 空闲赛道支持多人连续自由计时和个人最佳成绩
- 允许直接经过更高序号记录点,自动记录当前最高进度
- 反向经过更早记录点时,倒计时返回最后有效记录点
- 比赛中拦截 Shift 下船,使用 `/race leave` 退出活动
- 支持比赛观战、切换观战目标和玩家状态恢复
- SQLite 持久化赛道、比赛结果、自由计时记录和处罚状态
- PlaceholderAPI 提供榜单、个人成绩、当前状态和实时比赛信息
- 可配置 GUI 提供比赛、排行榜和赛道管理入口
- 支持 Lophine 26.2、Lophine 26.1.2 和 Folia 1.21.11
## 管理员如何创建赛道
### 1. 创建赛道草稿
```text
/race track create <赛道id> <显示名称>
```
示例:
```text
/race track create ice-loop 冰湖赛道
```
### 2. 设置起点和终点范围
分别站在门区的两个对角执行:
```text
/race edit pos1
/race edit pos2
/race edit start
```
起点范围用于识别 `/race create`、开始自由计时,以及完成赛道后的冲线判定。
### 3. 添加记录点
每个记录点都使用两个对角框选:
```text
/race edit pos1
/race edit pos2
/race edit checkpoint add
```
记录点按照添加顺序编号。管理员还可以更新、删除或调整顺序:
```text
/race edit checkpoint set <序号>
/race edit checkpoint remove <序号>
/race edit checkpoint move <原序号> <新序号>
```
### 4. 添加发车位
站在船需要生成的位置并面向比赛方向:
```text
/race edit slot add
```
每个发车位对应一名参赛玩家,发车位总数就是比赛最大人数。
### 5. 预览并保存
```text
/race edit preview on
/race edit save
/race track info <赛道id>
```
粒子预览会显示起点、记录点和发车位,方便管理员检查实际判定范围。
## 玩家如何进行正式比赛
1. 创建者站在已保存赛道的起点范围内执行:
```text
/race create
```
2. 插件生成比赛代码,其他玩家通过代码加入:
```text
/race join <比赛代码>
```
3. 创建者设置本场比赛圈数:
```text
/race laps <圈数>
```
4. 创建者开始比赛:
```text
/race start
```
玩家会被传送到人工发车位并自动进入比赛船。倒计时结束后统一发车,ActionBar 会持续显示名次、圈数、用时和路线进度。
比赛过程中使用以下指令主动退出:
```text
/race leave
```
比赛结束后可以查看排名:
```text
/race rank
/race last [赛道id]
```
## 自由计时怎么玩
当赛道处于空闲状态时,玩家驾驶自己的船从起点范围外驶入起点即可开始计时。
玩家经过记录点并再次驶过起点后完成一圈,插件会保存该赛道的个人最佳成绩,并立即开始下一圈。记录点支持向前跳号;如果管理员设置的某个中间范围较难触发,玩家经过更高序号记录点后仍可继续比赛。
玩家反向驶过已经完成路线中的更早记录点时,会看到倒计时提示,随后玩家和船会返回最后一个有效记录点。
使用以下指令结束自由计时:
```text
/race leave
```
## 观战功能
玩家可以加入正在准备或进行中的比赛观战:
```text
/race spec join <比赛代码>
/race spec tp <玩家名>
/race spec leave
```
观战期间可以切换目标并查看实时比赛信息,离开观战或比赛结束后会恢复进入观战前的位置和玩家状态。
## GUI 功能
```text
/race gui
```
GUI 会根据玩家权限显示比赛状态、排行榜、比赛控制和赛道管理入口。管理员可以进入布局编辑视图:
```text
/race gui view <菜单名>
```
按钮文字、材质、Lore 和槽位保存在 `plugins/BoatRace/gui/`,修改后可以通过 `/race reload` 重新加载。
## PlaceholderAPI
安装 PlaceholderAPI 后,BoatRace 会自动注册 `boatrace` 扩展。假设赛道 ID 为 `ice-loop`:
```text
%boatrace_ice-loop_top_1%
%boatrace_ice-loop_top_1_name%
%boatrace_ice-loop_top_1_time%
%boatrace_trial_ice-loop_records%
%boatrace_my_trial_ice-loop_best%
%boatrace_my_trial_ice-loop_rank%
%boatrace_race_rank%
%boatrace_race_time%
%boatrace_race_status%
```
自由计时榜支持前 15 名,正式比赛最近结果榜支持前 100 名。占位符可用于全息图、计分板、菜单和聊天插件。
## 运行环境
- Lophine 26.2:Java 25
- Lophine 26.1.2:Java 25
- Folia 1.21.11:Java 21
- PlaceholderAPI 2.12.3 或更高版本,可选
完整插件文件放入服务器 `plugins` 目录后,完整重启服务器即可使用。数据默认保存在 `plugins/BoatRace/boatrace.db`。[/MD]