🗺️ バージョン互換性と複数世代ライフサイクルマトリックス
📌 リポジトリソースコードに関する免責事項: このWikiのドキュメントはリポジトリ内の現在のソースコードの状態を反映しており、CurseForgeおよびModrinthでの公式リリース前の最新コミットや開発中の機能が含まれている場合があります。
🏛️ 「1 Jar 1 Version(1バージョン1JAR)」運用基準
True Sleepは 「1 Jar 1 Version(1バージョン1JAR)」ポリシー を厳格に適用しています。サポート対象の各Minecraftバージョンには、そのバージョンのLoomツールチェーンおよびバイトコードに対してネイティブビルドされた専用JARが提供されます。
複数バージョン包括サポート指針 に基づき、明示的な事前告知なくサポート対象バージョンが廃止・放棄されることは一切ありません。
📊 Minecraftバージョン包括マトリックス
| Minecraft対象バージョン | リリース時代 | Javaツールチェーン | ビルド環境 | MODバージョンタグ | 運用ステータス |
|---|---|---|---|---|---|
| MC 26.3 | Modern Lead | Java 25+ (release = 25) | Loom 1.15+, Gradle 9.3+ | 1.3.23+26.3 | 🟢 アクティブサポート |
| MC 26.2 | Modern Predecessor | Java 25+ (release = 25) | Loom 1.15+, Gradle 9.3+ | 1.3.22+26.2 | 🟢 アクティブサポート |
| MC 26.1 / 26.1.2 | Modern Anchor | Java 25+ (release = 25) | Loom 1.15+, Gradle 9.3+ | 1.3.22+26.1.2 | 🟢 アクティブサポート |
| MC 1.21.11 | Winter Drop | Java 21 (release = 21) | Loom 1.15-SNAPSHOT | 1.1.2+1.21.11 | 🟡 アーカイブ保守 |
| MC 1.21.1 | Transitional Early | Java 21 (release = 21) | Loom 1.10+ | 1.1.2+1.21.1 | 🟡 アーカイブ保守 |
| MC 1.20.1 | Legacy Anchor | Java 17 (release = 17) | Loom 1.4+, Gradle 8.x | 1.0.3+1.20.1 | 🟡 アーカイブ保守 |
🛡️ ModVersionGuard 起動時安全性検証
プレイヤーのワールドセーブデータやデータ添付ファイルをクラスローダーの不一致やAPIの破損から保護するため、True Sleepは onInitialize() の実行時に依存関係ゼロのバイトコード検証を実施します。
java
public class TrueSleep implements ModInitializer {
@Override
public void onInitialize() {
net.vanillaoutsider.truesleep.util.ModVersionGuard.checkClass(
"True Sleep",
"net.minecraft.world.entity.player.Player"
);
LOGGER.info("Initializing True Sleep (Time Warp)...");
TrueSleepRules.init();
CommandRegistrationCallback.EVENT.register((dispatcher, registryAccess, environment) ->
TrueSleepCommand.register(dispatcher)
);
}
}Knotクラスローダーによるクラス解決
検証処理は Thread.currentThread().getContextClassLoader() を呼び出し、FabricのKnotクラスローダーを介してバニラクラスを解決します。互換性のない実行環境が検出された場合、チャンクやエンティティデータに変更が及ぶ前に、分かりやすい診断メッセージと共に出力を停止し安全に終了します。
📦 依存関係マトリックス
| 依存関係 | 最小バージョン | 必須 / 任意 | 用途と役割 |
|---|---|---|---|
| Fabric Loader | >=0.16.10 | 必須 | MODの読み込みおよびMixinバイトコード変換。 |
| Java Runtime | >=25 (26.x) / >=21 (1.21) / >=17 (1.20) | 必須 | コアJVM実行環境。 |
| Fabric API | * (Open Lower Bound) | 必須 | コマンド登録およびライフサイクルイベントフック。 |
| Dasik Library | >=1.8.0 | 必須 | 動的GameRuleエンジンおよびシステムスロットリング制御。 |
| Cloth Config | * | 任意 | ゲーム内GUI設定画面の提供。 |
| ModMenu | * | 任意 | ModMenuの一覧表示連携および設定ボタン。 |
