mcpField
M
minecraft-fabric-dev

minecraft-fabric-dev

github.com/mcdxai開発302 回インストール
リポジトリ

minecraft-fabric-dev について

minecraft-fabric-devは、Fabric MODの開発やForge、NeoForgeからの移植を支援するスキルです。バージョン別ドキュメントの参照、Minecraftソースの検索・分析、Mixinの検証、バージョン比較の手順を示し、3つのMCPサーバーの利用方法も説明します。

主な機能

  1. 01Fabric開発ワークフローの案内
  2. 02バージョン別ドキュメントとソース検索
  3. 03MOD JARとMixinの分析
  4. 04バージョン比較と移行支援
  5. 05ForgeからFabricへの移植案内

活用シーン

  1. 01Minecraftのクラスやメソッドの検索
  2. 02Mixinの対象とシグネチャの確認
  3. 03既存MOD JARの分析
  4. 04MODのForgeからFabricへの移植

MCP 対応

minecraft-dev-mcpでMinecraftソースの参照と分析を行い、fabric-docs-mcpでバージョン別Fabricドキュメントを、baritone-docs-mcpでBaritoneドキュメントを参照します。これらのMCPサーバーは、ソース検索、デコンパイル、分析などの開発作業を支援します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/mcdxai/meteor-rejects-v2 --skill minecraft-fabric-dev

インストール後、Claude Code で/minecraft-fabric-devを入力して読み込まれたか確認します。

詳細

Minecraft Fabric Mod 開発スキル

概要

このスキルでは、他の Mod ローダー(Forge、NeoForge)からの移植を含む、Fabric を使用した Minecraft Mod 開発について包括的に説明します。Mod 開発に必要なツール一式を提供するため、3 つの MCP サーバーと連携します。

利用可能な MCP サーバー

1. minecraft-dev-mcp

ソースコードへのアクセス、逆コンパイル、分析に使用する Minecraft 開発のコアツールです。

2. fabric-docs-mcp

バージョン固有のコンテンツを含む、Fabric の公式ドキュメントにアクセスできます。

3. baritone-docs-mcp

Baritone 経路探索ライブラリのドキュメントです(AI/自動化 Mod に便利です)。


コアワークフロー

初期セットアップのワークフロー

あらゆる Minecraft 開発タスクを開始するときは、必ず次の手順を行ってください。

  1. 最初にドキュメントを同期します。

    sync_fabric_docs (force: false) → Get latest Fabric docs
    baritone_refresh_docs → Get Baritone docs if needed
    
  2. 対象バージョンを特定します。

    list_fabric_versions → See available Fabric versions
    list_minecraft_versions → See available/cached Minecraft versions
    
  3. 必要に応じて対象バージョンを逆コンパイルします。

    decompile_minecraft_version (version, mapping: "yarn", force: false)
    
マッピングの理解

マッピングの種類(Fabric での優先順位順):

  • yarn - コミュニティ主導の、人間が読みやすい名前(Fabric では推奨)
  • mojmap - Mojang の公式名称(バニラの参照に適しています)
  • intermediary - 安定した難読化非依存の ID(Fabric 内部で使用)
  • official - 難読化された名前(a、b、c など) - 注意:Minecraft は難読化解除済みリリースへの移行中です

それぞれの使いどころ:

  • 開発:yarn を使用します(コミュニティのサポートが最も充実しています)
  • バニラのコードを読む場合:mojmap を使用します(公式名称)
  • マッピングを変換する場合:橋渡しとして intermediary を使用します
  • 難読化を解除する場合:official から yarn/mojmap に変換します

将来に備えるための注意事項: 1.21.11 以降の実験的スナップショットから、Minecraft は難読化解除済みのビルドをリリースしています。最終的には、「official」マッピングに難読化された名前(a、b、c)ではなく、人間が読みやすい名前が含まれるようになります。MCP サーバーはすでにこの移行に対応しています。これが標準になった場合:

  • 公式リリースはすぐに読みやすくなります
  • yarn/mojmap は、一貫した命名のために引き続き役立ちます
  • intermediary は、Fabric の安定性保証において引き続き重要です
  • レガシーバージョンでは、引き続き難読化の解除が必要です

現在の状況(1.21.11 以前): official = 難読化済み。開発には yarn/mojmap を使用します
今後の状況(実験的スナップショット以降): official = 難読化解除済み。Fabric での一貫性のため、引き続き yarn を推奨します


Minecraft の難読化解除済みリリース

移行について

バージョン 1.21.11 以降の実験的スナップショットから、Minecraft は難読化解除済みビルドをリリースしています。これは段階的な移行であり、最終的にはすべての Minecraft リリースで標準になります。

これが意味すること:

  • Minecraft の公式 JAR には、人間が読みやすいクラス名/メソッド名/フィールド名が含まれます
  • 公式リリースで a、b、c のような難読化された名前が使われなくなります
  • バニラ JAR からソースコードを直接読めるようになります
  • 新しいバージョンでは、難読化解除ツールの必要性が減ります
開発ワークフローへの影響

新しいバージョン(難読化解除済み)の場合:

  • 公式マッピングをすぐに活用できます
  • yarn/mojmap は、引き続き次の点で役立ちます。
    • 一貫した命名規則
    • より充実したドキュメント
    • コミュニティで合意された用語
    • バージョンをまたいだ安定性
  • intermediary は、Fabric のバージョン非依存の Mod 読み込みにおいて、引き続き重要です

レガシーバージョン(1.21.11 以前)の場合:

  • 従来どおり難読化の解除が必要です
  • 主なマッピングとして yarn/mojmap を使用します
  • 公式マッピングは引き続き難読化されています(a、b、c)
  • 既存のワークフローはすべて変更なく継続します
MCP サーバーの互換性

minecraft-dev-mcp サーバーはすでに将来の変更に対応しています。

  • 難読化済みと難読化解除済みの両方の公式マッピングに対応します
  • マッピング形式を自動的に検出します
  • 難読化の状態にかかわらず、ツールは同じように動作します
  • 移行時にワークフローを変更する必要はありません

心配する必要がないこと:

  • 難読化の状態を手動で検出すること
  • バージョンごとに異なるツール呼び出しを使うこと
  • マッピングの互換性の問題
  • レガシーバージョンのサポート
推奨プラクティス

最大限の互換性を確保するには:

# Still use yarn as primary for Fabric development
decompile_minecraft_version (version: "1.21.11", mapping: "yarn")
decompile_minecraft_version (version: "1.22-experimental", mapping: "yarn")

# Both work identically, server handles the difference

バージョンの境界をまたいで作業する場合:

# Comparing old (obfuscated) to new (de-obfuscated)
compare_versions (
  fromVersion: "1.21.11",  # Obfuscated official
  toVersion: "1.22",        # De-obfuscated official
  mapping: "yarn"           # Consistent naming across both
)

それでも Yarn/Mojmap を使う理由:

  1. 一貫性 - 名前がバージョン間で予告なく変わりません
  2. ドキュメント - コミュニティのドキュメントでは Yarn の名前が使われています
  3. 安定性 - Intermediary と Yarn により、Fabric はバージョンに依存しません
  4. 互換性 - 既存の MOD は Yarn を使っているため、一貫性を維持できます
  5. ツール - Fabric エコシステムは Yarn の規約を中心に構築されています
移行戦略

対応は不要です:

  • Fabric の開発では、引き続きすべてに Yarn を使用します
  • MCP サーバーが両方の形式を自動的に処理します
  • 既存の検証ツールは変更せずに動作します
  • ドキュメントも引き続き正確です

任意の最適化:

  • バニラの情報を手早く確認する場合は、公式ソースも利用できます
  • 学習時には、公式名と Yarn の名前を照合します
  • Mojang が意図した命名を理解するには、公式名を使用します
バージョンの検出

ツールはバージョンの種類を自動的に処理します:

# Works for both obfuscated and de-obfuscated
get_minecraft_source (version, className, mapping: "yarn")

# Server internally detects:
# - Is this version obfuscated? → Apply traditional deobfuscation
# - Is this version de-obfuscated? → Use direct mapping translation

難読化の状態を手動で指定する必要はありません。


一般的な開発タスク

1. Minecraft のソースコードを理解する

ワークフロー:

Step 1: Find the class
  → search_fabric_docs (query: "entity", mcVersion: "latest")
  → search_minecraft_code (version, query: "Entity", searchType: "class", mapping: "yarn")

Step 2: Get source code
  → get_minecraft_source (version, className: "net.minecraft.entity.Entity", mapping: "yarn")

Step 3: Get documentation context
  → get_documentation (className: "Entity")
  → get_fabric_doc (path: "develop/entities.md", mcVersion: "latest")

ベストプラクティス:

  • Fabric の開発では、必ず Yarn のマッピングを使用します
  • 検索範囲を広くしてから、徐々に絞り込みます
  • Fabric のドキュメントと Minecraft のソースコードの両方を確認します
  • 検索結果から関連するクラスを探します
2. Mixin を作成する

必須のワークフロー:

Step 1: Understand the target
  → get_minecraft_source (version, className: "[target]", mapping: "yarn")
  → get_fabric_doc (path: "develop/mixins.md", mcVersion: "latest")

Step 2: Write mixin code
  [User writes mixin based on source + docs]

Step 3: Validate mixin
  → analyze_mixin (source: "[mixin code]", mcVersion: "[version]", mapping: "yarn")

Step 4: Fix issues
  [Review validation results, make corrections]
  → analyze_mixin (source: "[updated code]", mcVersion: "[version]", mapping: "yarn")

重要なルール:

  • Fabric では、Mixin に必ず Yarn のマッピングを使用します
  • 完成したと提案する前に、すべての Mixin を検証します
  • 対象クラスにインジェクションポイントが存在することを確認します
  • メソッドシグネチャが完全に一致することを確認します
  • Mixin の優先度と競合を考慮します

検証に失敗した場合:

  • 対象のクラス/メソッドがそのバージョンに存在するか確認します
  • マッピングが正しいか(Fabric では Yarn)確認します
  • バージョン間で名前が変更されたメソッドがないか調べます
  • メソッドシグネチャ(戻り値の型、パラメーター)を確認します
3. Access Widener を使用する

ワークフロー:

Step 1: Identify what needs widening
  → get_minecraft_source (version, className: "[class]", mapping: "yarn")
  [Check field/method visibility]

Step 2: Create access widener file
  [Write .accesswidener with proper syntax]

Step 3: Validate
  → validate_access_widener (content: "[file content]", mcVersion: "[version]", mapping: "yarn")

Step 4: Apply fixes from validation
  [Update based on validation results]

Access Widener の構文:

accessWidener v2 named
accessible class net/minecraft/class/Name
accessible method net/minecraft/class/Name methodName (Lparams;)Lreturn;
accessible field net/minecraft/class/Name fieldName Ltype;
extendable class net/minecraft/class/Name
mutable field net/minecraft/class/Name fieldName Ltype;
4. 既存の MOD を分析する

理解/移植する場合:

Step 1: Extract mod metadata
  → analyze_mod_jar (jarPath: "[path]", includeAllClasses: false, includeRawMetadata: true)

Step 2: Examine mixins (if present)
  → analyze_mixin (source: "[jar path]", mcVersion: "[version]", mapping: "yarn")

Step 3: Check dependencies and entry points
  [Review metadata from Step 1]

Step 4: Decompile/remap if needed
  → remap_mod_jar (inputJar, outputJar, mcVersion, toMapping: "yarn")

パスの正規化:

  • ツールは WSL(/mnt/c/...)と Windows(C:\...)の両方のパスを受け付けます
  • パスは内部で自動的に正規化されます
5. バージョンの移行と移植

Minecraft のバージョンを比較する:

Step 1: Get high-level overview
  → compare_versions (fromVersion, toVersion, mapping: "yarn", category: "all")

Step 2: Detailed API changes
  → compare_versions_detailed (fromVersion, toVersion, mapping: "yarn", 
     packages: ["net.minecraft.entity", "net.minecraft.world"], maxClasses: 500)

Step 3: Check registry changes
  → get_registry_data (version: "[old]", registry: "blocks")
  → get_registry_data (version: "[new]", registry: "blocks")

Step 4: Search for specific changes
  → search_fabric_docs (query: "migration [version]", mcVersion: "all")

互換性を損なう変更のチェックリスト:

  • クラス名の変更/移動
  • メソッドシグネチャの変更
  • フィールド型の変更
  • レジストリ ID の変更
  • API の削除/非推奨化
6. Forge から Fabric への移植

包括的な移植ワークフロー:

Step 1: Analyze Forge mod
  → analyze_mod_jar (jarPath: "[forge-mod.jar]", includeAllClasses: true, includeRawMetadata: true)

Step 2: Understand Forge-specific code
  [Review: @Mod annotations, event handlers, capability system, sided proxies]

Step 3: Find Fabric equivalents
  → search_fabric_docs (query: "[forge concept]", mcVersion: "latest")
  → get_fabric_doc (path: "develop/[topic].md", mcVersion: "latest")

Step 4: Map common patterns
  Forge Events → Fabric Events (different registration)
  Capabilities → Cardinal Components API or custom solution
  @Mod annotation → fabric.mod.json
  FMLJavaModLoadingContext → Fabric Mod Initializer
  DeferredRegister → Registry.register in onInitialize

Step 5: Check Minecraft version compatibility
  → get_minecraft_source (version, className: "[needed class]", mapping: "yarn")
  → compare_versions (fromVersion: "[forge ver]", toVersion: "[fabric ver]", mapping: "yarn")

Step 6: Validate converted mixins
  [If Forge mod uses CoreMods/ASM]
  → analyze_mixin (source: "[converted mixin]", mcVersion, mapping: "yarn")

Forge から Fabric への変換パターン:

Forge のパターンFabric での同等の仕組み
@Mod クラスfabric.mod.json の ModInitializer インターフェース
MinecraftForge.EVENT_BUS.register()各クラスのイベントコールバック
@SubscribeEventイベントへのメソッドの直接登録
CapabilitiesCardinal Components API(別ライブラリ)
@ObjectHolderRegistry.register() の直接呼び出し
Config(ForgeConfig)Cloth Config API または独自の方法
@OnlyIn(Dist.CLIENT)fabric.mod.json の client エントリーポイント
ネットワークパケット(SimpleChannel)Fabric Networking API
@Mod.EventBusSubscriberClientModInitializer / DedicatedServerModInitializer

Fabric 固有の重要な要件:

  • mods.toml の代わりに fabric.mod.json を使用します
  • Mixin 設定ファイル(modid.mixins.json)
  • Access Widener ファイル(必要な場合)
  • 適切なエントリーポイントの登録
  • イベントシステムのアーキテクチャが異なります

高度なワークフロー

大規模なコード検索

コードベース全体からパターンを見つける場合:

Step 1: Index the version (one-time, enables fast search)
  → index_minecraft_version (version, mapping: "yarn")

Step 2: Fast full-text search
  → search_indexed (query: "entity damage", version, mapping: "yarn", 
     types: ["method", "field"], limit: 100)

Alternative: Direct search (slower, no index needed)
  → search_minecraft_code (version, query: "damage", searchType: "all", 
     mapping: "yarn", limit: 50)

検索タイプのガイド:

  • "class" - クラス名の照合
  • "method" - メソッド定義
  • "field" - フィールド宣言
  • "content" - あらゆるコード内容
  • "all" - すべて
システム間のマッピングを見つける

ユースケース:難読化された名前から yarn 名を調べる場合(旧バージョン):

find_mapping (symbol: "a", version: "1.21.11", sourceMapping: "official", targetMapping: "yarn")
find_mapping (symbol: "Entity", version: "1.21.11", sourceMapping: "mojmap", targetMapping: "yarn")
find_mapping (symbol: "class_1234", version: "1.21.11", sourceMapping: "intermediary", targetMapping: "yarn")

ユースケース:難読化解除済みのリリース(1.22 以降、実験的):

# Official names are now readable, but still translate to yarn for consistency
find_mapping (symbol: "Entity", version: "1.22", sourceMapping: "official", targetMapping: "yarn")
find_mapping (symbol: "LivingEntity", version: "1.22", sourceMapping: "official", targetMapping: "intermediary")

戻り値:

  • クラスのマッピング
  • メソッドのマッピング(ディスクリプター付き)
  • フィールドのマッピング

バージョン間のマッピング:

# Works across obfuscated/de-obfuscated boundary
find_mapping (symbol: "Entity", version: "1.21.11", sourceMapping: "yarn", targetMapping: "yarn")
find_mapping (symbol: "Entity", version: "1.22", sourceMapping: "yarn", targetMapping: "yarn")
# Yarn provides consistency even as official format changes
レジストリデータの分析

ブロック、アイテム、エンティティなどの場合:

# Get all registries
get_registry_data (version, registry: undefined)

# Get specific registry
get_registry_data (version, registry: "blocks")
get_registry_data (version, registry: "items")
get_registry_data (version, registry: "entities")
get_registry_data (version, registry: "biomes")

ユースケース:

  • MOD で有効なレジストリ ID を見つける
  • バージョン間の変更点を確認する
  • データパックの参照を検証する

ドキュメント戦略

ドキュメントを検索するタイミング

Fabric のドキュメント - 優先度 1:

# Feature implementation
search_fabric_docs (query: "custom blocks", mcVersion: "latest", limit: 15)
get_fabric_doc (path: "develop/blocks.md", mcVersion: "latest")

# Concept learning
list_fabric_sections (mcVersion: "latest")
get_fabric_doc_headings (path: "develop/mixins.md", mcVersion: "latest")

Minecraft ソース - 優先度 2:

# When you need to see how vanilla does it
get_minecraft_source (version, className: "BlockItem", mapping: "yarn")
search_minecraft_code (version, query: "registerBlock", searchType: "method", mapping: "yarn")

Baritone のドキュメント - 優先度 3(AI/パスファインディング関連):

# Only for pathfinding/AI mods
baritone_search_docs (query: "GoalBlock")
baritone_read_doc (path: "baritone/api/pathing/goals/GoalBlock.md")
ドキュメントを読む優先順位
  1. Fabric のドキュメントから始める - 公式で、保守されており、バージョン固有です
  2. Minecraft のソースを参照する - バニラの実装を確認します
  3. 関連クラスを確認する - システム全体を理解します
  4. ツールで検証する - Mixin/アクセスワイダーをテストします

エラー処理とトラブルシューティング

よくある問題

「逆コンパイル済みソースが見つかりません」 → まず decompile_minecraft_version を実行してください

「Mixin の検証に失敗しました」 → 対象クラスが存在するか確認してください:get_minecraft_source → メソッドのシグネチャが完全に一致していることを確認してください → yarn マッピングを使用していることを確認してください

「ドキュメントが見つかりません」 → sync_fabric_docs を実行してください(Fabric) → baritone_refresh_docs を実行してください(Baritone)

「マッピングタイプが無効です」 → Fabric では必ず「yarn」を使用します(mojmap ではありません) → find_mapping で利用可能なマッピングを確認してください

「パスが見つかりません」(MOD の分析) → パスの形式を確認してください(WSL と Windows の両方に対応しています) → 指定した場所にファイルが存在することを確認してください → 正規化されたパスを使用してください(自動変換されます)

検証のベストプラクティス

コードが完成したと提案する前に、必ず検証してください:

  • Mixin:analyze_mixin
  • アクセスワイダー:validate_access_widener
  • バージョン互換性:compare_versions
  • レジストリ ID:get_registry_data

ツール選択の判断ツリー

User wants to...

├─ Understand Minecraft code
│  ├─ Find a class → search_minecraft_code (searchType: "class")
│  ├─ See implementation → get_minecraft_source
│  └─ Find all usages → search_indexed (after indexing)
│
├─ Learn Fabric concepts
│  ├─ Browse topics → list_fabric_sections
│  ├─ Search for feature → search_fabric_docs
│  └─ Read full guide → get_fabric_doc
│
├─ Write a mixin
│  ├─ Get target class → get_minecraft_source
│  ├─ Check Fabric mixin docs → get_fabric_doc (path: "develop/mixins.md")
│  └─ Validate mixin → analyze_mixin
│
├─ Access private members
│  ├─ Check what exists → get_minecraft_source
│  ├─ Write access widener → [user writes]
│  └─ Validate → validate_access_widener
│
├─ Port a mod
│  ├─ Analyze original → analyze_mod_jar
│  ├─ Check Forge→Fabric patterns → search_fabric_docs
│  ├─ Compare MC versions → compare_versions_detailed
│  └─ Validate converted code → analyze_mixin
│
├─ Update for new version
│  ├─ High-level changes → compare_versions
│  ├─ Detailed API diff → compare_versions_detailed
│  ├─ Registry changes → get_registry_data (both versions)
│  └─ Migration guide → search_fabric_docs (query: "migration")
│
└─ Understand mappings
   ├─ Translate obfuscated → find_mapping
   ├─ See all mappings → List available in tool
   └─ Convert between systems → find_mapping


ユーザー向けの出力形式

Mixin コードを提示する場合

必ず含めるもの:

  1. インポートを含む Mixin クラス全体
  2. 実行すべき検証コマンド
  3. コードの動作説明
  4. テストに関する警告

テンプレート:

// Your mixin code here

検証:

analyze_mixin (source: "[above code]", mcVersion: "1.21.11", mapping: "yarn")

重要: 本番環境で使用する前に、開発環境でテストしてください。

アクセスワイダーを提案する場合

テンプレート:

accessWidener v2 named
[entries here]

検証:

validate_access_widener (content: "[above content]", mcVersion: "1.21.11", mapping: "yarn")
バージョン間の違いを示す場合

提示するもの:

  1. 変更点の概要
  2. 破壊的変更の強調表示
  3. 推奨する対応
  4. 移行コードの例

パフォーマンスに関する考慮事項

インデックス作成の戦略

インデックスを作成する場合:

  • ユーザーが広範囲に検索する
  • 大規模なリファクタリングに取り組む
  • コードベース全体のパターンを分析する

インデックス作成を省略する場合:

  • 1 回限りのクエリ
  • 単一のクラスを調べるだけ
  • 簡単なリファレンス確認

インデックス作成コマンド:

index_minecraft_version (version, mapping: "yarn")
キャッシュに関する注意

以下はキャッシュされます(初回実行後は高速です):

  • decompile_minecraft_version
  • get_minecraft_source
  • get_registry_data
  • Fabric/Baritone のドキュメント(同期後)

以下はキャッシュされません(常に最新の状態です):

  • search_minecraft_code(インデックス作成済みの場合を除く)
  • analyze_mixin
  • validate_access_widener
  • compare_versions

バージョン互換性マトリックス

Minecraft のバージョンサポート

利用可能なバージョンを確認する:

list_minecraft_versions → See what's available
list_fabric_versions → See what Fabric supports

一般的なワークフロー:

  1. ユーザーが対象バージョンを指定する
  2. バージョンが存在することを確認する:list_minecraft_versions
  3. Fabric のサポート状況を確認する:list_fabric_versions
  4. 必要に応じて逆コンパイルする:decompile_minecraft_version
マッピングのバージョンに関する注意事項
  • yarn:バージョン固有で、Minecraft のバージョンと一致している必要があります(すべてのバージョンで動作します)
  • mojmap:バージョン固有で、Minecraft のバージョンと一致している必要があります(すべてのバージョンで動作します)
  • intermediary:バージョン固有の安定した中間形式です(Fabric の基盤)
  • official:
    • 旧形式(≤1.21.11):難読化された生の形式(a、b、c)で、バージョンメタデータはありません
    • 新形式(1.22+ の実験版):難読化が解除され、人間が読みやすい名前になっています
バージョンの分類

難読化時代(≤1.21.11):

  • 開発には難読化解除が必要です
  • 公式マッピングは難読化されています
  • 読みやすさを確保するには Yarn/Mojmap が不可欠です
  • 標準的なワークフローを適用できます

難読化解除時代(1.22+ の実験的スナップショット):

  • 公式リリースは人間が読みやすい形式です
  • 一貫性を保つため、引き続き Yarn/Mojmap を推奨します
  • Fabric では Intermediary が引き続き重要です
  • ツールは同じように動作します(サーバーが自動検出します)

移行期間:

  • 一部のスナップショットは難読化が解除されている場合があります(オプトインの実験的機能)
  • リリース版は公式の Mojang のスケジュールに従います
  • MCP サーバーは両方の形式をシームレスに処理します
  • ワークフローの変更は不要です
クロスバージョン開発

難読化/難読化解除の境界をまたいで作業する場合:

# Use yarn for consistent names across versions
decompile_minecraft_version (version: "1.21.11", mapping: "yarn")
decompile_minecraft_version (version: "1.22-experimental", mapping: "yarn")

# Compare versions safely
compare_versions_detailed (
  fromVersion: "1.21.11",    # Obfuscated
  toVersion: "1.22",          # De-obfuscated
  mapping: "yarn"             # Consistent across both
)

ベストプラクティス: 対象バージョンの難読化状態にかかわらず、Fabric の開発には常に yarn を使用してください。


重要な注意事項

必ず覚えておくこと
  1. Fabric = yarn マッピング(開発では mojmap でも intermediary でもありません)— すべてのバージョンで一貫しています
  2. 完了とする前に検証する(Mixin、アクセス拡張子)
  3. 最初にドキュメントを同期する(古いドキュメントを防ぎます)
  4. バージョンの互換性を確認する(特に移植する場合)
  5. 適切な検索範囲を使う(インデックス検索と直接検索)
  6. 検証コマンドを提示する(ユーザーが確認できるようにします)
  7. パスを正規化する(ツールが WSL/Windows を自動的に処理します)
  8. MCP サーバーは将来にも対応しています(難読化されたリリースと難読化解除されたリリースの両方を自動的に処理します)
絶対にしないこと
  1. Fabric の開発に mojmap を推奨しない
  2. Mixin の検証を省略しない
  3. 確認せずにクラスが存在すると決めつけない
  4. 不完全な検証手順を提示しない
  5. バージョンの違いを無視しない
  6. ドキュメントの同期を忘れない
  7. 同じコンテキスト内でマッピングの種類を混在させない
  8. 難読化状態を気にしない(サーバーが処理します)
難読化解除時代について

ユーザーがバージョン 1.22+ または実験的スナップショットに言及した場合:

  • 難読化が解除されたリリースの可能性があることを伝えます
  • Fabric の一貫性を保つため、いずれの場合も yarn を推奨します
  • 公式の名前は読みやすくなりましたが、yarn を使うと安定性が得られることを説明します
  • ツールが形式を自動検出するため、ワークフローの変更は不要です

例:Mixin 作成の完全なワークフロー

ユーザーの依頼:「落下ダメージを防ぐ Mixin を作成してください」

応答パターン:

Let me help you create a fall damage prevention mixin for Fabric.

Step 1: Understanding the vanilla implementation
[get_minecraft_source for LivingEntity with fall damage logic]

Step 2: Checking Fabric mixin documentation
[get_fabric_doc for mixins guide]

Step 3: Creating the mixin

[Full mixin code with proper imports and structure]

Step 4: Validation (CRITICAL - run this!)

analyze_mixin (
  source: "[mixin code above]",
  mcVersion: "1.21.11",
  mapping: "yarn"
)

This mixin injects into the fall damage method and cancels it. The @Inject annotation targets the method responsible for applying fall damage, and we use cancellable = true to allow preventing the damage.

Important notes:
- Test in creative world first
- May conflict with other fall damage mods
- Affects all entities, not just players

リソース URI

Fabric ドキュメントのリソース

形式: fabric://docs/{path}

例:

fabric://docs/develop/getting-started.md
fabric://docs/develop/mixins.md
fabric://docs/items/custom-item.md

アクセス方法:

  • get_fabric_doc ツール
  • リソースを直接読み取る
  • 検索結果に URI が含まれます
Minecraft ソースのリソース

形式: minecraft://source/{version}/{mapping}/{className}

例:

minecraft://source/1.21.1/yarn/net.minecraft.entity.Entity
minecraft://source/1.21.1/mojmap/net.minecraft.world.level.Level

以下も利用できます:

  • minecraft://mappings/{version}/{mapping}
  • minecraft://registry/{version}/{registryType}
  • minecraft://versions/list
  • minecraft://index/{version}/{mapping}

Mod 開発の最終チェックリスト

解決策が完成したと案内する前に、以下を確認してください。

  • ドキュメントを検索し、参照した
  • 対象の Minecraft バージョンを確認した
  • 正しいマッピングの種類を使用した(Fabric では yarn)
  • バニラの実装についてソースコードを調べた
  • analyze_mixin で Mixin を検証した
  • アクセス拡張子を検証した(使用した場合)
  • バージョンの互換性を確認した
  • 依存関係を特定した
  • テスト手順を提示した
  • 想定される競合について言及した

コマンド早見表

初期セットアップ:

sync_fabric_docs
list_minecraft_versions
decompile_minecraft_version (version: "1.21.11", mapping: "yarn")

開発:

get_fabric_doc (path: "develop/[topic].md")
get_minecraft_source (version, className, mapping: "yarn")
analyze_mixin (source, mcVersion, mapping: "yarn")

分析:

analyze_mod_jar (jarPath)
compare_versions (fromVersion, toVersion, mapping: "yarn")
search_minecraft_code (version, query, searchType: "all", mapping: "yarn")

検証:

analyze_mixin (source, mcVersion, mapping: "yarn")
validate_access_widener (content, mcVersion, mapping: "yarn")

このスキルでは、利用可能なすべての MCP ツールを使った Minecraft Fabric MOD 開発ワークフローを網羅しています。

コメント