minecraft-dev-starter:在 DSH 會話裏識別、啓動並驗證 Minecraft 模組構建

前言

用 DeepSeek Harness(DSH)改 Minecraft 模組時,常見做法是自己在終端裏跑 Gradle,再把日誌片段貼回會話;模型很難穩定地選任務、等客戶端就緒,更談不上對 runData 這類一次性任務給出通過或失敗的結論。minecraft-dev-starter 是社區維護的 DSH 工作流插件:在當前工作區裏識別 Fabric、Forge、NeoForge 等工程,在會話標題欄提供運行目標與啓停,並把日誌接到側邊欄;可選的模型工具與面板共用同一份運行狀態,便於「改代碼 → 跑一遍 → 看 verdict」閉環。

這是什麼

minecraft-dev-starter(npm 包名 minecraft-dev-starter,當前發佈版本 0.1.11,MIT 許可證)由 Chemiofitor4096 維護。官方簡介爲:在 DeepSeek Harness 會話標題欄中檢測、啓動並驗證 Minecraft 模組構建(DSH plugin: detect, launch and verify Minecraft mod builds from the session header)。

插件識別工作區中的模組與插件工程,在標題欄展示當前運行目標並提供啓動、停止;日誌流入側邊欄標籤頁。面板面向人操作,六個可選工具面向模型,兩者共享運行狀態與鎖:同一工程至多一個實例,互不誤殺對方拉起的進程。

核心功能

工程識別與運行目標

支持 Fabric、Forge、NeoForge、Architectury、Paper 與 Spigot,覆蓋 Minecraft 1.7.10 至 26.x;單模塊、多模塊與聚合倉庫均可,loader 只寫在子模塊時也能識別。運行目標從 Gradle 構建中提取,分爲兩類:

  • daemon(常駐):如 runClient、runServer,直到人關閉窗口;
  • oneshot(會跑完):如 runData、runGameTestServer,結束時給出通過或失敗,便於模型自動驗證而無需人盯畫面。

按 loader 慣例推斷、尚未從構建腳本證實的目標會標記爲未驗證,仍可選擇與啓動。

託管啓動、JDK 與依賴展示

任務通過工程自帶的 Gradle Wrapper 啓動。常駐目標依據日誌中的就緒標記判定是否進入運行態;一次性任務區分成功、失敗、被停止、起不來。停止時會終止 Gradle 及其整棵子進程樹。

JDK 大版本按 MC 版本與 toolchain 推斷;本機探測到的 JDK 可在「Mod Dev」面板選擇,也可手動登記 JDK 根目錄。選擇保存在 ~/.dsh/mc-dev-starter/jdk.json,經 -Dorg.gradle.java.home 與 JAVA_HOME 傳給 Gradle,不寫進 gradle.properties。

聲明依賴從 dependencies { }、gradle/libs.versions.toml 與元數據 depends 解析,按配置、座標與 文件:行號 列出,用於覈對是否已添加;不包含 Gradle 解析後的傳遞依賴圖。

日誌、狀態與模型工具

運行記錄按 DSH profile 存放在 ~/.dsh/mc-dev-starter/profiles/<name>/;宿主重啓後按 PID 對賬,無法確認存活時記爲未知。日誌支持跟隨、級別着色與過濾(全部 / INFO+ / WARN+ / ERROR);異常退出時給出依賴解析、JDK 不匹配、端口占用、認證失敗等可能原因。

工作區隨當前會話的工作目錄變化,切換會話自動重掃;沒有可運行工程時不渲染標題欄膠囊,避免佔用非 MC 項目界面。

可選模型工具(與面板同一服務):mc_projects、mc_project_detail、mc_launch、mc_launch_logs、mc_launch_list、mc_launch_stop。對 oneshot 目標,mc_launch 默認等到結束並返回 verdict(passed / failed / aborted / error)及失敗行摘要。

安裝 dsh-better-sidebar 後,面板與日誌可在其側邊欄以圖標標籤頁打開。

安裝與啓用

需要 DSH Desktop 0.2.1 或更高版本,或匹配的 dsh CLI。插件 peer 依賴 @deepseek-ai/cordis 與 @deepseek-ai/dsh-tools(見 npm 包 package.json)。

下面介紹官方文檔中的安裝方式(dsh plugin 是對 pnpm 的封裝,效果等同於編輯 profile 的 package.json 後執行 pnpm install):

# 從 npm 安裝
dsh plugin --profile desktop add minecraft-dev-starter

# 本地倉庫(修改後即時生效)
dsh plugin --profile desktop add link:C:/Projects/minecraft-dev-starter

# 使用打包文件
dsh plugin --profile desktop add file:./minecraft-dev-starter-0.1.10.tgz

安裝完成後重啓 DSH。卸載:

dsh plugin --profile desktop remove minecraft-dev-starter

插件在 SkillHub 社區目錄 歸類爲「工作流」;該目錄爲獨立社區站點,與 DeepSeek / 幻方無官方從屬關係。

典型用法

  1. 打開工作區包含 Minecraft 工程的 DSH 會話。
  2. 標題欄顯示當前運行目標;點擊名稱打開浮層,選擇工程與 Gradle 任務。
  3. 在「Mod Dev」面板「構建環境」中更換 JDK(下拉或填寫 JDK 根目錄)。
  4. 點擊啓動開始構建並運行;默認自動打開運行日誌標籤頁(可通過配置關閉)。
  5. 運行中按鈕變爲停止,點擊後終止 Gradle 及子進程。

用模型工具驗證 oneshot 任務

  1. 調用 mc_project_detail,確認哪些目標是 oneshot(如 runData、runGameTestServer 及項目自定義 runGametest)。
  2. 調用 mc_launch 啓動;失敗時查看返回的 summary、failures,必要時用 mc_launch_logs 讀全文。
  3. 常駐 runClient 僅能自動斷言是否進入運行態及日誌異常;畫面與手感仍適合人工查看後再讓模型讀日誌。

配置

在 profile 的 cordis.patch.yml 中爲插件條目添加 config(插件 id 以你 profile 中實際條目爲準,文檔示例爲 mcdev-host):

- id: mcdev-host
  name: minecraft-dev-starter
  config:
    autoOpenLogTab: true
    # logDock: right        # 默認:裝了 dsh-better-sidebar 落底部工作臺,沒有則落右側欄
    readyTimeoutMs: 90000
    logRingLines: 2000
配置項 類型 默認值 說明
autoOpenLogTab boolean true 啓動後自動打開運行日誌標籤頁
logDock right | bottom 自動 日誌停靠位置;可強制 right
readyTimeoutMs number 90000 等待進入運行態的超時(超時不計爲失敗)
logRingLines number 2000 內存保留的日誌行數

適用場景與注意

適合誰:在 DSH 裏日常開發 Fabric / Forge / NeoForge 等模組或 Paper 插件、希望標題欄一鍵跑 Client/Data、或希望 Agent 通過工具拿到 oneshot 構建結論的開發者。

權限與安全:啓動時在工程目錄執行該倉庫自帶的 Gradle Wrapper,環境變量繼承自 DSH 宿主,即以當前 dsh 進程的用戶權限運行工作區構建腳本——與你在本機手動執行 gradlew 同屬一種信任邊界。運行記錄與日誌寫在 ~/.dsh/mc-dev-starter;除 Gradle 自身產物外不改工程目錄;/mcdev/api 由本機 DSH Web 服務提供,文檔說明不向外發送數據。安裝前建議閱讀 GitHub 倉庫 源碼、SECURITY.md 與 MIT 許可證。

其他限制:原生右側欄標籤無圖標字段(圖標依賴 dsh-better-sidebar);子模塊各自成工程後,聚合根上單獨掛的 run 目標不會出現在列表;Windows 上首次構建可能因下載 Gradle 與依賴耗時較長。

結尾

minecraft-dev-starter 把 MC 模組的識別、Gradle 託管啓動、日誌與 oneshot verdict 收進 DSH 會話標題欄與可選工具,減少在終端與聊天之間來回搬運的狀態。進一步瞭解可查看 SkillHub 目錄頁 與 GitHub:Chemiofitor4096/minecraft-dev-starter。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜