WikiChree.COM 新規   編集   添付   管理  



dev/MCPitanLib/Overview の変更点


#author("2025-06-16T13:24:40+09:00","default:pitan","pitan")
#author("2025-06-16T13:25:00+09:00","default:pitan","pitan")
* MCPitanLib ドキュメント [#z03e78cb]
IntelliJ IDEAプラグインの[[MCPitanLibプラグイン - JetBrains Marketplace>https://plugins.jetbrains.com/plugin/27584-mcpitanlib]]や[[テンプレート - GitHub>https://github.com/Pitan76/TemplateMod-for-MCPitanLib]]を用いるとより簡易的にプロジェクトを作成できます。もしよければご利用ください。


** 1. 概要 [#g5ee34a8]
- ''MCPitanLibとは'': 1つのjarファイルで複数のMinecraftバージョンに対応したMOD開発のためのライブラリです。
- ''主な機能について'':
-- アイテム、ブロック、エンティティ、GUI、コマンドなどの登録
-- 複数バージョン対応を容易にするための各種ユーティリティ
- ''開発状況と注意点'': 開発中であり、予告なく仕様が変更、不具合が含まれる可能性があります。

** 2. ライセンス [#d4065116]
- MIT License

** 3. 導入方法 [#efe12032]
*** 3.1. 前提Mod [#a0464d47]
- ''Modローダー'':
-- [[FabricMC>https://fabricmc.net/]]
-- [[Minecraft Forge>https://files.minecraftforge.net/]]
-- [[NeoForge>https://neoforged.net/]]
- ''前提Mod'':
-- Architectury API [[CurseForge>https://www.curseforge.com/minecraft/mc-mods/architectury-api]]
*** 3.2. ダウンロード [#s022737e]
- [[CurseForge>https://www.curseforge.com/minecraft/mc-mods/mcpitanlibarch]]
- [[Modrinth>https://modrinth.com/mod/mcpitanlibarch]]

*** 3.3. プロジェクトへの追加方法 [#ld93eb84]
- ''build.gradle'' にリポジトリと依存関係を記述します。
#gcode(groovy){{{
        repositories {
            maven {
                url = "https://maven.pitan76.net/"
            }
        }

        dependencies {
            // FabricMC ※それぞれ別のbuild.gradleを用いてください。
            modImplementation "net.pitan76:mcpitanlib-fabric:${rootProject.mcpitanlib_version}"
            // Minecraft Forge
            modImplementation "net.pitan76:mcpitanlib-forge:${rootProject.mcpitanlib_version}"
            // NeoForge
            modImplementation "net.pitan76:mcpitanlib-neoforge:${rootProject.mcpitanlib_version}"
        }
}}}

- ''gradle.properties'' にバージョンを指定します。
#gcode(properties){{
# Example: mcpitanlib_version=+1.18.2:3.3.1
mcpitanlib_version=+x.x.x:x.x.x
}}}
}}

最新のバージョンは [[maven.pitan76.net>https://maven.pitan76.net/net/pitan76/]] をご覧ください。

** 4. ファイル構造について
** 4. ファイル構造について [#ibd964ac]
- ''README.md'': 大まかな説明とセットアップ方法
- ''LICENSE'': ライセンス
- ''build.gradle'', ''gradle.properties'', ''settings.gradle'': Gradleビルドスクリプト
- ''.github/'': GitHub Actionsのワークフロー定義。
-- ''workflows/'': 自動ビルド、テスト、リリース、Cherry-PickなどのCI/CDパイプラインが格納されています。
- ''common/'': 全てのMODローダーで共通して使用されるソースコード。
-- ''src/main/java/net/pitan76/mcpitanlib/api/'': MCPitanLibのコアAPIが含まれます。''CommonModInitializer'', ''CompatRegistryV2'', ''CompatIdentifier'' など、複数バージョン対応のための開発の基盤となるクラス群があります。
-- ''src/main/java/net/pitan76/mcpitanlib/test/ExampleMod.java'': MCPitanLibの基本的な使用方法を示すサンプルMODの実装です。
- ''fabric/'': Fabric環境専用のソース
- ''forge/'': Forge環境専用のソース
- ''neoforge/'': NeoForge環境専用のソース
- ''mappings/'': マッピング
- ''upload_maven.php'': ライブラリをMavenリポジトリにアップロードするためのPHPスクリプト(開発者向け)
- ''info.properties'': バージョン情報など

## 5. MOD開発の始め方 (MCPitanLib利用)
** 5. MOD開発の始め方 (MCPitanLib利用) [#xf4d91da]

1. CommonModInitializer を継承したクラスを作成: MODのメインクラスとなり、初期化処理をここに記述します。(''ExampleMod.java''参照)
2. IDの定義: ''CompatIdentifier.of("your_mod_id", "object_id")'' を使用して、アイテムやブロックなどのIDを定義します。
3. オブジェクトの登録: CommonModInitializerで自動的に生成されるCompatRegistryV2のインスタンス、registryを使用して、アイテム、ブロック、スクリーンハンドラーなどを登録します。
--アイテム: ''new CompatItem(CompatibleItemSettings.of(...))''
-- ブロック: ''new CompatBlock(CompatibleBlockSettings.of(...))''
-- GUI (ScreenHandler): ''registry.registerScreenHandlerType(...)''
4. ''プラットフォーム固有処理'': 必要に応じて、fabric/, forge/ などの各プラットフォーム用ディレクトリに固有のコードを記述します。基本的にCommonModInitializerを継承したcommon/のメインクラス呼び出します。

** 6. 主要APIコンセプト (MCPitanLib)
** 6. 主要APIコンセプト (MCPitanLib) [#d2c29397]
- ''CompatRegistryV2'': アイテム、ブロック、エンティティ、GUIなどのゲーム内要素を登録するための中心的なクラス
- ''CompatIdentifier'': Minecraftの識別子 (net.minecraft.util.Identifier) の互換ラッパー
- ''CompatibleItemSettings'': Item.Settingsのバージョン互換用クラス
- ''CompatibleBlockSettings'': AbstractBlock.Settingsのバージョン互換用クラス
- ''CompatItem'', ''CompatBlock'': ライブラリが提供するバージョン互換用クラス
- ''CommonModInitializer'': commonの初期化エントリーポイント。
- ''CommandRegistry'': コマンドを登録するためのユーティリティ
- ''GUI関連'': SimpleScreenHandlerTypeBuilder, GuiRegistry など、GUI作成を支援するクラス群

** 7. 自動 Cherry-Pick (GitHub Actions)
** 7. 自動 Cherry-Pick (GitHub Actions) [#y3bf1eee]
MCPitanLibに含まれているworkflowについて

- コミットメッセージで ''[cp]'' から始めると、GitHub Actionsにより自動的に下位バージョンのブランチへCherry-Pickが試みられます。
- コンフリクトが発生した場合はプルリクエストが作成されます(現状、このPRは手動での対応が必要です)

** 8. 貢献方法
** 8. 貢献方法 [#t6a7ed7f]
バグ報告や機能要望は GitHub Issues へ、コードの改善提案はプルリクエストでお願いします
}}
  編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS