{"url":"https://levimc.org/mods/github.com/lgc-LLSEDev/NbsPlayer/","id":"github.com/lgc-LLSEDev/NbsPlayer","name":"NbsPlayer","description":"BDS 中的 NBS 音乐播放器！","owner":"lgc-LLDev","logo":"https://levimc.org/mods/icons/d50fe25b88f206ae-288.webp","repository":"https://github.com/lgc-LLDev/NBSPlayer","issues":"https://github.com/lgc-LLDev/NBSPlayer/issues","releases":"https://github.com/lgc-LLDev/NBSPlayer/releases","stars":16,"downloads":218,"updated":"2025-01-20T18:34:29Z","published":"2023-03-09T07:43:37Z","created":"2023-03-08T06:29:55Z","license":"Apache-2.0","side":["server","client"],"platform":["win-x64"],"gameVersions":[],"tags":[],"latest":{"variant":"","version":"1.0.1","install":"lip install github.com/lgc-LLSEDev/NbsPlayer@1.0.1"},"readmes":[{"file":"readme.md","lang":"zh-Hans","text":"<!-- markdownlint-disable MD033 -->\n\n# NbsPlayer\n\nBDS 中的 NBS 音乐播放器！  \n下载插件请去[Releases](https://github.com/lgc-LLSEDev/NbsPlayer/releases)\n\n## 介绍\n\n### 运作原理\n\n1. 插件通过[NBS.js](https://github.com/Encode42/NBS.js)解析 nbs 文件\n2. 通过`setInterval`设置循环执行函数获取当前时间来对时，根据经过时间生成`PlaySoundPacket`数据包发送给客户端\n\n### 特点\n\n- 支持 单音符/轨道/音色 的音高、音量等设置，单音符的精细调音\n- 支持超过两个八度限制的音符\n- 支持自定义音色\n  - 请将自定义音色的文件名称设置为`playsound`命令可以播放的声音 ID，例：`dig.stone.ogg`，支持资源包自定义的音色\n    ![例子](readme/QQ%E5%9B%BE%E7%89%8720221030150141.png)\n\n### 缺点\n\n- 播放效果不好，会有小卡顿（对不上拍）（脚本语言 / 同步调用 BDS API 效率问题？）\n- 无法实现左右声道偏离（~~`playsound`局限~~ 无法实现精细偏移，干脆不做了）\n- 稍微动一下视角声道就会偏（`playsound`局限）\n- 不支持 layer 独奏（懒）\n- 不支持 loop（懒）\n- 插件 ~~没有经过深度测试，~~ 可能会有小 bug\n\n### 截图\n\n![1](readme/1.png)  \n![2](readme/2.png)  \n![3](readme/3.png)  \n![4](readme/4.png)\n\n### 指令\n\n#### `nbsplayer` - 打开插件菜单 / 播放指定音乐\n\n- 格式：`nbsplayer [filename: text]`\n- 参数：\n  - `filename` - *（可选）*欲播放的文件名\n- 权限：所有人\n- 限制：只能由玩家以及`execute`命令执行\n\n#### `nbsplay` - OP 播放指令\n\n- 格式：`nbsplay <player: target> <filename: text> [forcePlay: Boolean]`\n- 参数：\n  - `player` - 欲执行操作的玩家\n  - `filename` - 欲播放的文件名\n  - `forcePlay` - *（可选）*是否强制让正在播放音乐的玩家播放此音乐\n- 权限：管理员\n\n#### `nbstop` - 停止播放\n\n- 格式：`nbstop`\n- 参数：无\n- 权限：所有人\n- 限制：只能由玩家以及`execute`命令执行\n\n#### `nbsisplaying` - 查询玩家播放状态\n\n- 格式：`nbsisplaying`\n- 参数：无\n- 权限：所有人\n- 限制：只能由玩家以及`execute`命令执行\n\n## 安装\n\n请去 [Releases](https://github.com/lgc-LLSEDev/NbsPlayer/releases) 下载最新版插件附件，解压到 bds 的插件目录\n\n## 配置\n\n直接将 nbs 文件放置在插件数据目录即可，无需重启服务器~~，注意文件名不要有特殊字符、中文等，否则可能会出错~~（应该已修复）  \n例图：  \n![6](readme/6.png)\n\n## 配置文件\n\n插件没有配置文件\n\n## 联系我\n\nQQ：3076823485  \n吹水群：[1105946125](https://jq.qq.com/?_wv=1027&k=Z3n1MpEp)  \n邮箱：<lgc2333@126.com>\n\n## 赞助\n\n感谢大家的赞助！你们的赞助将是我继续创作的动力！\n\n- [爱发电](https://afdian.net/@lgc2333)\n- <details>\n    <summary>赞助二维码（点击展开）</summary>\n\n  ![讨饭](https://raw.githubusercontent.com/lgc2333/ShigureBotMenu/master/src/imgs/sponsor.png)\n\n  </details>\n\n## 更新日志\n\n- 0.1.1\n  - 修复 nbs 文件名不能为特殊符号或中文的问题\n  - 修复无法播放最后一 tick 的音符的 bug\n  - 加入音符数量显示\n- 0.2.0\n  - 换用向客户端发送数据包的方式播放音效\n  - NbsConvertor 的运行超时限制为 10s\n  - 加入歌曲列表为 0 时的提示，与页数小于 2 无法跳页的提示\n  - `nbsplayer`命令加入可选参数`filename`，可以直接指定播放的文件名\n  - 加入命令`nbsplay` `nbsisplaying`（[指令列表](#指令)）\n- 1.0.0\n  - 迁移到 nodejs 插件\n  - 更换 nbs 文件解析方式，弃用 `NbsConvertor`\n  - 歌曲进度显示方式更换为 boss 条\n  - 修复由于我对单音符`pitch`的错误理解导致的音符音高错误\n  - 修复玄学的命令方块内目标选择器问题（可能是我命令注册的问题）\n  - `nbsplay`指令的有关小 bug\n  - 其他问题修复/特性调整（不要问，问就是我忘了）\n- 1.0.1\n  - 播放性能优化（可能）\n  - 修复无法播放最后一个音符的 bug\n  - 更改自定义音色的使用方式\n"}],"gallery":[],"versions":[{"version":"1.0.1","prerelease":false,"released":"2023-03-09T07:43:37Z","releaseUrl":"https://github.com/lgc-LLDev/NBSPlayer/releases/tag/v1.0.1","manifestUrl":"https://github.com/lgc-LLDev/NBSPlayer/blob/v1.0.1/tooth.json","info":{"name":"NbsPlayer","description":"BDS 中的 NBS 音乐播放器！","tags":[]},"variants":{"":[{"side":"server","platform":"win-x64","deps":{}},{"side":"client","platform":"win-x64","deps":{}}]}}],"dependencies":{},"requiredBy":[]}