← ClaudeAtlas

nms-version-adapterlisted

多版本 NMS 相容性 Adapter 模式:抽象介面 + 版本特定實作 + runtime dispatch,讓同一 plugin 支援多個 MC 版本 / Multi-version NMS compatibility adapter pattern
MrPippi/MJP-Claude-Skills · ★ 1 · Data & Documents · score 70
Install: claude install-skill MrPippi/MJP-Claude-Skills
# NMS Version Adapter / NMS 多版本適配器 ## 技能名稱 / Skill Name `nms-version-adapter` ## 目的 / Purpose 建立抽象 Adapter 介面定義共通 NMS 操作,再為每個支援的 MC 版本提供具體實作,runtime 時根據伺服器版本自動選擇正確 adapter。適合需支援多版本發佈的商業/大型 plugin。 ## NMS 版本需求 / NMS Version Requirements - 支援範圍:Paper 1.21 – 1.21.3 - 建議搭配 `nms-reflection-bridge` 或 multi-module Gradle build - Adapter 實作可選 Paperweight(需 multi-module)或純反射 ## 觸發條件 / Triggers - 「version adapter」「版本適配器」「multi-version」 - 「多版本相容」「跨版本 NMS」「backwards compatibility」 - 「adapter pattern NMS」 ## 輸入參數 / Inputs | 參數 | 範例 | 說明 | |------|------|------| | `package_name` | `com.example.nms` | 產出類別所在 package | | `adapter_interface` | `NmsAdapter` | 抽象介面名稱 | | `supported_versions` | `1.21, 1.21.1, 1.21.3` | 需支援的 MC 版本列表 | ## 輸出產物 / Outputs - `NmsAdapter.java` — 共通抽象介面 - `AdapterRegistry.java` — 版本偵測與 adapter 選擇器 - `V1_21_Adapter.java` — Paper 1.21/1.21.1 實作 - `V1_21_3_Adapter.java` — Paper 1.21.3 實作 - `NmsVersion.java` — 版本列舉 ## Paperweight 建置設定 / Build Setup 建議採用 **multi-module Gradle build**,每個版本各自 module 編譯: ``` my-plugin/ ├── build.gradle ├── core/ # 版本無關邏輯 + NmsAdapter 介面 ├── adapter-v1_21/ # 使用 paperweight 1.21 編譯 ├── adapter-v1_21_3/ # 使用 paperweight 1.21.3 編譯 └── plugin/ # 整合所有 adapter 並打包 ``` ## 代碼範本 / Code Template ### `NmsVersion.java` ```java package com.example.nms; import org.bukkit.Bukkit; public enum NmsVersion { V1_21, V1_21_1, V1_21_3, UNSUPPORTED; public static NmsVersion detect(