Kompatibilitas & Integrasi Lintas-Mod (MC 26.2)
Dokumen ini menjelaskan integrasi mod pihak ketiga, perlindungan refleksi dinamis, penyelarasan Stack Size Adjuster, dan kompatibilitas farm di Item Clumps untuk Minecraft 26.2.
📊 Kotak Info Fitur
| Integrasi | Jenis | Status Kompatibilitas | Mekanisme Penanganan |
|---|---|---|---|
| Magnet ("Let me get that!") | Opsional | 🟢 100% Mulus | Pemeriksaan refleksi dinamis (ig_magnet$isMagnetized / ig$isMagnetized) |
| Stack Size Adjuster | Opsional | 🟢 Sinkronisasi Batas Dinamis | Menyerahkan pendaftaran max_clump_size ke getMaxStackSize() |
| YetAnotherConfigLib (YACL v3) | GUI Opsional | 🟢 Didukung | Pemuatan kelas tertunda via GuiHelper.getOptionalYaclFactory |
| ModMenu | GUI Opsional | 🟢 Didukung | Integrasi entrypoint ModMenu |
| Otomasi Vanilla / Redstone | Inti | 🟢 100% Paritas | Ekstraksi tetesan corong 1-item & pewarisan usia termuda |
🧲 1. Perlindungan Melayang Mod Magnet
Saat menggunakan mod vakum atau magnet item (seperti Magnet: Let me get that!), item di tanah diangkat ke lintasan terbang 3D menuju pemain.
┌───────────────────────────────────────────────────────────┐
│ 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 memeriksa status magnet melalui refleksi tanpa dependensi waktu kompilasi yang kaku:
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. Penyelarasan Dinamis Stack Size Adjuster
Ketika Stack Size Adjuster terpasang bersama Item Clumps:
- Penghapusan Duplikasi GameRule: Item Clumps secara otomatis menonaktifkan pendaftaran
item_clumps:max_clump_sizedan widget konfigurasi YACL-nya. - Sinkronisasi Batas Terpadu: Batas penggabungan di tanah secara otomatis menanyakan
itemStack.getMaxStackSize(), memungkinkan Stack Size Adjuster menentukan batas tumpukan tanah secara global atau per-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);
}