Skip to content

互換性と他MOD連携 (MC 26.2)

本書では、Minecraft 26.2 における他MOD連携、動的リフレクション保護、Stack Size Adjusterとの整合、トラップタワー互換性について解説します。


📊 機能情報ボックス

連携対象種類互換性ステータス処理メカニズム
Magnet («Let me get that!»)任意🟢 100% 完全互換動的リフレクション検査 (ig_magnet$isMagnetized / ig$isMagnetized)
Stack Size Adjuster任意🟢 動的同期max_clump_sizegetMaxStackSize() に委譲
YetAnotherConfigLib (YACL v3)任意GUI🟢 対応GuiHelper.getOptionalYaclFactory による遅延ロード
ModMenu任意GUI🟢 対応ModMenu エントリーポイント連携
バニラ自動化 / 赤石回路コア🟢 100% パリティホッパー1個抽出&最新寿命継承

🧲 1. マグネットMOD飛行中の保護

アイテムマグネットMOD (例: Magnet: Let me get that!) を使用すると、地上のアイテムがプレイヤーに向かって3D空間を飛行します。

       ┌───────────────────────────────────────────────────────────┐
       │             Item In-Flight Magnet Trajectory              │
       │                                                           │
       │       [Item A (In-Flight)] --------> [Player]             │
       │               │                                           │
       │       (Passes close to Item B on ground)                  │
       │               │                                           │
       │   ❌ WITHOUT MAGNET CHECK:                                │
       │      Item A merges with B; flight velocity resets;        │
       │      Item snaps to ground.                                │
       │                                                           │
       │   ✅ WITH ITEM CLUMPS MAGNET CHECK:                       │
       │      Merge paused while in-flight;                         │
       │      Smooth curve preserved straight to player!           │
       └───────────────────────────────────────────────────────────┘

Item Clumps はコンパイル時の依存関係なしに、リフレクションを通じてマグネットの状態を安全に検知します:

java
if (net.fabricmc.loader.api.FabricLoader.getInstance().isModLoaded("magnet")) {
    try {
        java.lang.reflect.Method isMagnetizedMethod;
        try {
            isMagnetizedMethod = this.getClass().getMethod("ig_magnet$isMagnetized");
        } catch (NoSuchMethodException e) {
            isMagnetizedMethod = this.getClass().getMethod("ig$isMagnetized");
        }
        if ((boolean) isMagnetizedMethod.invoke(this) || (boolean) isMagnetizedMethod.invoke(other)) {
            ci.cancel();
            return;
        }
    } catch (Throwable ignored) {}
}

📦 2. Stack Size Adjusterとの動的同期

Item Clumps と Stack Size Adjuster を併用する場合:

  1. 設定の重複排除: Item Clumps は item_clumps:max_clump_size の登録およびYACL設定ウィジェットを自動的に無効化します。
  2. 上限の完全同期: 地上での結合上限が自動的に itemStack.getMaxStackSize() を参照するようになり、Stack Size Adjusterの設定に従います。
java
int maxClump;
if (net.fabricmc.loader.api.FabricLoader.getInstance().isModLoaded("stack-size-adjuster") || 
    ItemClumpsFabric.MAX_CLUMP_SIZE == null) {
    maxClump = thisStack.getMaxStackSize();
} else {
    maxClump = DynamicGameRuleManager.getInt(this.level(), ItemClumpsFabric.MAX_CLUMP_SIZE);
}

🔗 関連ドキュメント (MC 26.2)

Official documentation & web portal for Dasik Igaijinn mods.