Skip to content

Releases

v1.1.0 — 个人素材目录

Choose a tag to compare

@JYT-copy JYT-copy released this 21 Oct 15:19

v1.1.0 — 个人素材目录:升级不再吃掉你的壁纸和 BGM

一句话:把 npm 包换成「只带模板与音效」,你自己的壁纸/音乐放进安装目录之外的
~/.dsh/minecraft-ui/assets/,以后升级不再丢。

为什么有这个版本

1.0.1 装成 npm 包之后,有人(就是我)发现:原本在 assets/wallpapers、assets/music
里的私人壁纸和 C418 音乐全没了。原因是 npm 安装是整包替换,而开源包按版权只能带
1 张示例壁纸 + 5 个短音效;往 node_modules/dsh-minecraft-theme/assets/ 里补文件,
下一次 install_bundle 就会连目录一起换掉。

所以宿主端从这一版开始,除了读包内 assets/,还会读一个个人素材目录:

~/.dsh/minecraft-ui/assets/          # 可用环境变量 MC_UI_ASSETS_DIR 改位置
├── wallpapers/   # <slug>.webp、<slug>.thumb.webp、manifest.local.json
├── sfx/          # 与包内同名的 .mp3 会覆盖包内音效
└── music/        # ogg / oga / mp3 / m4a / wav / flac

规则:

  • 个人目录优先级高于包内目录,同名文件以个人为准;
  • 壁纸清单 = 包内 manifest.json + 个人 manifest.local.json + 两个目录里真实存在的文件,同 slug 合并;
  • sfx/ 放同名 mp3 就能换音色,删掉包内的则退回合成音;
  • 目录不存在、子目录为空都不报错,自动回退到包内素材;
  • 宿主启动日志会打印实际生效的目录:[dsh-minecraft-theme] personal assets directory: …。

界面里「上传壁纸 / 上传音乐」仍然可用(存浏览器 IndexedDB,跨插件升级也保留),
区别是:文件系统里的素材能跟着用户走,IndexedDB 只跟着这个浏览器。

顺带修掉的

  • assets/wallpapers/manifest.json 补进 npm files。之前漏了它,npm 安装后默认壁纸
    显示成 Cozy Cabin(由 slug 拼的名字)而不是 壁炉小屋。

验证

  • node build.mjs → 10 个源片段,lib/client.js 232.0 KiB。
  • node test/asset-dirs.cjs(新增)→ 16 PASS / 0 FAIL:合并清单、个人字节优先、
    同名音效覆盖、404/405、目录缺失回退。
  • 其余六项自检全绿:audio-selftest(321/307 节点配平、8 warn 0 error)、
    user-library-test、runtime-smoke、css-parse(0 warning)、symbol-audit、i18n-audit。
  • 端到端:从 registry 装回 1.1.0(包内无音乐、无额外壁纸)后,把个人素材放进
    ~/.dsh/minecraft-ui/assets/,/api/minecraft-ui/wallpapers → 14 张(含 壁炉小屋)、
    /api/minecraft-ui/music → 12 首、音效 200、未知壁纸 404。

从 1.0.1 升级

plugin_manager remove_bundle dsh-minecraft-theme
plugin_manager install_bundle  dsh-minecraft-theme@1.1.0
# 然后把自己的素材复制到下面两个目录(目录不存在就自己建):
#   %USERPROFILE%\.dsh\minecraft-ui\assets\wallpapers
#   %USERPROFILE%\.dsh\minecraft-ui\assets\music
# 完事 Ctrl+R 刷新页面

v1.0.1 — 音效随包开源

Choose a tag to compare

@JYT-copy JYT-copy released this 21 Oct 05:50

把 DSH Web 界面变成 Minecraft

方块化像素组件 + 可自建的照片壁纸库 + Minecraft 界面音效 + 可自建曲库的 BGM 播放器。
不额外染色,颜色全部采样自当前 DSH 主题(含亮/暗色切换),只把「表面」层透明度调低让壁纸透出来。

这个版本的重点

  • 5 个 Minecraft 界面音效随包开源:石切机「嗒」的点击声、开箱/关箱声、烟花成就声、木门出错声,
    装机即有声,不用自己找素材。约 60 KB,仍在 THIRD_PARTY_NOTICES.md 里标明归属(Mojang 素材,不在 MIT 范围内)。
  • 默认壁纸 壁炉小屋:一张暗调、温暖的雪夜木屋,作为仓库里唯一随包的壁纸。
  • 壁纸库:内置 + 本地 IndexedDB 上传/删除,自动轮换、亮度、暗化、面板不透明度都可调。
  • BGM:内置曲目目录(自己放文件即可识别)+ 界面内上传/删除,懒解码 + LRU 3 + 交叉淡入 + 自动接歌。
  • HUD 控制台:右下角常驻折叠按钮,展开向上长 3 列方块按钮(主题 / 换壁纸 / 音效 / BGM / 下一首 / 隐藏 / 选项),
    可一键隐藏,从设置或 MinecraftUI.showHud(true) 找回;开关都播开箱/关箱声。
  • 成就弹窗:切主题、换壁纸、开音效、切曲、上传素材时右上角弹「成就达成」提示。
  • Ctrl/⌘+Alt+M 一键关掉整个主题,回到原生 DSH 外观。

安装

git clone https://github.com/JYT-copy/dsh-minecraft-ui.git
plugin_manager install_bundle  <克隆下来的目录绝对路径>

装完刷新网页(Ctrl + R),右下角出现方块控制台即成。
听不到声音时先随便点一下界面(浏览器要求先有用户手势才允许播放音频),再开「设置 → Minecraft 主题 → 音效」。

素材与版权(请先读)

这是一个非官方粉丝主题,与 Mojang Studios / Microsoft 无关。

内容 是否随包 说明
代码 / 样式 / 宿主路由 ✅ MIT 自写代码,零第三方依赖、不联网
cozy-cabin.webp 基础壁纸 ✅ 唯一随包壁纸
assets/sfx/*.mp3(5 个音效) ✅ Mojang 素材,不在 MIT 内;删掉会自动退回合成音效
C418 原声音乐 ❌ 需自行准备,音源文件不入库
其余 Minecraft 美术素材 ❌ 不入库

详见 THIRD_PARTY_NOTICES.md 与
docs/OPEN-SOURCE.md。

本版验证

  • 构建:node build.mjs → 10 个源片段 → lib/client.js 237,419 B
  • 自检:test/audio-selftest.cjs、test/user-library-test.cjs、test/runtime-smoke.cjs、
    test/css-parse.cjs、test/symbol-audit.cjs、test/i18n-audit.cjs 全部 PASS
  • npm 包:20 个文件 / 216 KB,assets/ 下只有 5 个音效 mp3 + cozy-cabin 两个 webp + 三个 README
  • 宿主路由:/api/minecraft-ui/sounds/*.mp3 200、/wallpapers 200、/music 200、不存在的音效 404
  • 安装:插件 1.0.1 applied,shell.overlay 的 HUD/Toast 与 settings.section 的主题页均 active

已知限制

  • 像素级视觉与听感需人眼人耳确认(自动校验覆盖构建、自检、路由、插槽注册)。
  • 壁纸与上传的音乐存在浏览器 IndexedDB:换浏览器/清站点数据会丢失;插件目录里的文件不受影响。
  • 目录里新放的 BGM/壁纸需刷新页面才出现(界面上传的立刻出现)。
  • 未发生点击/按键前不会创建 AudioContext(浏览器策略,不是缺陷)。

变更记录

v1.0.1

  • 新增:5 个 Minecraft 界面音效随包发布(assets/sfx/*.mp3),并补齐 THIRD_PARTY_NOTICES / README / docs 的版权说明。
  • 文档:仓库与 npm 包清单、素材替换流程、版权投诉处理流程同步更新。

v1.0.0(首发)

  • 方块化像素 UI(按钮 / 卡片 / 导航 / 弹窗 / 输入框),跟随亮暗主题,不染色。
  • 照片壁纸库:自动轮换、亮度、暗化、面板不透明度、本地上传与删除。
  • 音效引擎:采样播放 + 逐音效合成兜底,点击/开箱/关箱/成功/出错/升级。
  • BGM 播放器:目录曲目 + 本地上传,懒解码、LRU 缓存、交叉淡入、自动接歌。
  • HUD 控制台、成就弹窗、Ctrl/⌘+Alt+M 开关、设置页。