# 🎵 skNBS – Skript NoteBlockAPI 插件
skNBS 是一个 Skript 插件,它将 NoteBlockAPI 与 Skript 集成,允许你从 Skript 加载 `.nbs` 歌曲、创建播放列表并直接控制播放。
## 📦 安装
1. 在你的 Spigot/Paper 服务器上安装 Skript。
2. 安装 NoteBlockAPI。
3. 将 `skNBS.jar` 放入你的 `/plugins` 文件夹中。
4. 重启服务器。
## 📖 语法与用法
### 🎶 歌曲
从 `plugins/NoteBlockAPI/songs` 文件夹加载 `.nbs` 歌曲:
请谨慎使用代码。
```
set {_song} to nbs song from "test.nbs"
```
### 📑 播放列表
从多个歌曲创建播放列表:
set {_song1} to nbs song from "intro.nbs"
set {_song2} to nbs song from "loop.nbs"
set {_playlist} to nbs playlist from {_song1} and {_song2}
### ▶️ 播放类型
* **广播:** 直接播放给玩家(无位置)。
```
play radio nbs {_song} to all players
play radio nbs {_playlist} to player
```
* **位置:** 在世界中某个位置的范围内播放。
```
play position nbs {_song} at location of player with range 32 to all players
```
* **音块:** 从特定的音块播放。
```
play noteblock nbs {_song} at target block with range 16 to {_p}
```
* **实体:** 从实体播放(跟随实体)。
```
play entity nbs {_playlist} at {_mob} with range 24 to all players
```
### ⏯ 控制
暂停、恢复或停止一个 SongPlayer:
```
pause nbs {_player}
resume nbs {_player}
stop nbs {_player}
```
### ⏩ 快进/倒退
在歌曲/播放列表快进或倒退秒数:
forward 10 seconds in nbs {_player} # skip ahead 10s
rewind 5 seconds in nbs {_player} # rewind 5s
## ⚠️ 注意事项
* 歌曲必须放在 `/plugins/NoteBlockAPI/songs/` 目录下。
* 开始播放时会返回 `SongPlayer` 对象,如果你想稍后暂停/倒退,请将它们保存在变量中。
* 播放列表目前不支持在歌曲之间倒退。
## 💡 示例脚本
```
command /music:
trigger:
set {_song} to nbs song from "lobby.nbs"
play radio nbs {_song} to player
send "&aNow playing lobby music!" to player
command /dj:
trigger:
forward 30 seconds in nbs {_songplayer}
```
## 🛠 API 参考
### 表达式
* `nbs song from %string% → Song`
* `nbs playlist from %songs% → Playlist`
### 效果
* `play radio nbs %song/playlist% to %players%`
* `play position nbs %song/playlist% at %location% with range %number% to %players%`
* `play noteblock nbs %song/playlist% at %block% with range %number% to %players%`
* `play entity nbs %song/playlist% at %entity% with range %number% to %players%`
* `pause nbs %songplayer%`
* `resume nbs %songplayer%`
* `stop nbs %songplayer%`
* `forward %number% seconds in nbs %songplayer%`
* `rewind %number% seconds in nbs %songplayer%`