Skip to content

Совместимость и межмодовые интеграции (MC 26.2)

Этот документ подробно описывает интеграцию со сторонними модами, динамическую рефлексию, работу со Stack Size Adjuster и совместимость с фермами в Minecraft 26.2.


📊 Информационный блок функции

ИнтеграцияТипСтатус совместимостиМеханизм обработки
Magnet («Let me get that!»)Опционально🟢 100% бесшовноДинамическая проверка через рефлексию (ig_magnet$isMagnetized / ig$isMagnetized)
Stack Size AdjusterОпционально🟢 Динамическая синхронизацияДелегирует регистрацию max_clump_size методу getMaxStackSize()
YetAnotherConfigLib (YACL v3)Опциональный GUI🟢 ПоддерживаетсяОтложенная загрузка классов через GuiHelper.getOptionalYaclFactory
ModMenuОпциональный GUI🟢 ПоддерживаетсяИнтеграция точки входа ModMenu
Ванильная автоматизация / РедстоунЯдро🟢 100% соответствиеПоштучное извлечение воронками и наследование наименьшего возраста

🧲 1. Защита предметов мода Magnet в полете

При использовании магнитов (например, Magnet: Let me get that!) предметы поднимаются в воздух и летят по трехмерной траектории к игроку.

       ┌───────────────────────────────────────────────────────────┐
       │             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

При совместной установке со 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.