Compatibilidade e Integrações Inter-Mods (MC 26.2)
Este documento detalha integrações com mods de terceiros, salvaguardas de reflexão dinâmica, alinhamento com Stack Size Adjuster e compatibilidade com farms no Item Clumps para Minecraft 26.2.
📊 Ficha Técnica do Recurso
| Integração | Tipo | Status de Compatibilidade | Mecanismo de Manipulação |
|---|---|---|---|
| Magnet ("Let me get that!") | Opcional | 🟢 100% Integrado | Verificação de reflexão dinâmica (ig_magnet$isMagnetized / ig$isMagnetized) |
| Stack Size Adjuster | Opcional | 🟢 Sincronização Dinâmica | Cede o registro de max_clump_size para getMaxStackSize() |
| YetAnotherConfigLib (YACL v3) | GUI Opcional | 🟢 Suportado | Carregamento diferido de classes via GuiHelper.getOptionalYaclFactory |
| ModMenu | GUI Opcional | 🟢 Suportado | Integração com ponto de entrada do ModMenu |
| Automação Vanilla / Redstone | Núcleo | 🟢 100% Paridade | Extração em funil de 1 item e herança de idade mais jovem |
🧲 1. Proteção em Voo para Mods de Ímã
Ao utilizar mods de vácuo ou ímã de itens (como Magnet: Let me get that!), itens no chão são elevados em trajetórias de voo 3D indo em direção ao jogador.
┌───────────────────────────────────────────────────────────┐
│ 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! │
└───────────────────────────────────────────────────────────┘O Item Clumps consulta o estado do ímã via reflexão sem dependências rígidas em tempo de compilação:
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. Alinhamento Dinâmico com Stack Size Adjuster
Quando o Stack Size Adjuster está instalado junto com o Item Clumps:
- Desduplicação de GameRule: O Item Clumps suprime automaticamente o registro de
item_clumps:max_clump_sizee seu widget de configuração na YACL. - Sincronização Unificada de Limites: Os limites de fusão no chão consultam automaticamente
itemStack.getMaxStackSize(), permitindo que o Stack Size Adjuster defina os limites máximos globalmente ou por item.
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);
}