- 版权类型
- 原创
- 插件中文名称
- 光谱传送
- 插件英文名称
- SpectrumWarp
- 原帖地址
- #
- 支持的核心(服务端)
- Spigot
- Paper
- 语言支持
- 多语言
- 适配版本(Java)
- 1.21
- 1.20
- 1.19
- 1.18
- 1.17
- 1.16
- 1.15
- 1.14
- 1.13
- 1.12
[MD]
# SpectrumWarp
“预设点位池传送系统”。
随机传送不生成随机坐标,而是从配置好的 SpawnPoint 点位池中选择。
## 功能概览
- group 分组点位池(权重/标签/冷却/启用开关)
- 票据机制保证同一场/同一队使用同一个点
- 安全检查链(地面/头顶空间/岩浆/仙人掌/虚空/边界/周围玩家)
- 队伍适配:Builtin / Placeholder / SpectrumParty
- 匹配适配:SpectrumMatch,支持 modeId -> groupId 映射
- 热重载与运维命令
## 快速开始
添加点位:
```
/rtp point add demo p1
/rtp point add demo p2
```
测试传送:
```
/rtp tp demo
```
## 指令
- `/rtp tp <group> [player]` 单人随机传送
- `/rtp point add <group> <id> [weight]`
- `/rtp point remove <group> <id>`
- `/rtp point list <group>`
- `/rtp ticket teleport <ticketId>`
- `/rtp reload`
## 配置重点
主配置:`SpectrumWarp/config.yml`
### 点位池
```yaml
groups:
demo:
selectionMode: WEIGHTED
attempts: 5
lockSeconds: 20
ticketExpireSeconds: 120
scatterRadius: 6.0
allowSamePointForMultipleTickets: false
points:
- id: p1
world: world
x: 0.5
y: 80.0
z: 0.5
yaw: 0.0
pitch: 0.0
weight: 1
enabled: true
tags: []
cooldownSeconds: 0
minDistanceToPlayers: 0
```
### 周围玩家检测
```yaml
checks:
nearbyPlayers:
enabled: true
radius: 8.0
```
单点可用 `minDistanceToPlayers` 覆盖半径。
### 队伍适配
```yaml
party:
mode: auto # auto/builtin/placeholder/spectrum
placeholderPrefix: spectrumparty_sameparty_
partyIdPlaceholder: "%spectrumparty_party_id%"
partyMembersPlaceholder: "%spectrumparty_members%"
placeholderTrueValues: ["true","yes","1"]
```
### 匹配适配(SpectrumMatch)
```yaml
match:
enabled: true
modeGroupMap:
arena_2v2: demo
```
匹配开始后,每个队伍会按 modeId 映射到对应 group 进行传送。
## 给其它插件的 API
包名:`org.spectrumflow.spectrumwarp.api`
```kotlin
val request = WarpRequest(
groupId = "demo",
mode = WarpMode.PARTY_SAME_POINT,
initiator = leaderUuid,
partyId = partyId,
members = members
)
val ticket = SpectrumWarp.createTicket(request)
SpectrumWarp.lockPoint(ticket.ticketId)
SpectrumWarp.teleport(ticket.ticketId)
```
[/MD]