Skip to content

⚡ Mode Pengambilan Instan (MC 26.1.2)

📌 Pernyataan Sumber Kode Repositori: Dokumentasi dalam Wiki ini mencerminkan status kode sumber saat ini di repositori, yang mungkin mencakup komit terbaru yang belum dirilis atau fitur dalam pengembangan sebelum rilis publik di CurseForge dan Modrinth.

Kotak Info FiturParameter Teknis
Kelas Sistemnet.instantgratification.magnet.mixin.PlayerMixin
GameRule Pengaktifig:magnet_instant (Standar: false)
GameRule Radiusig:magnet_range (Standar: 12, Rentang: 1..64)
Titik Injeksi@ModifyVariable(method = "aiStep", at = @At("STORE"), ordinal = 0)
Variabel TargetKotak Pembatas Koleksi Pemain (AABB pickupArea)

📖 Ikhtisar Pengambilan Instan

Dalam Minecraft 26.1.2, Mode Pengambilan Instan melenyapkan waktu terbang item dengan memperluas kotak pembatas koleksi pemain di dalam Player.aiStep(), langsung memasukkan drop ke inventaris pemain melalui penangan pengambilan vanilla.

+-----------------------------------------------------------------------------------+
|                           TICK aiStep() PEMAIN VANILLA                            |
+-----------------------------------------------------------------------------------+
                                          |
                                          v
                +---------------------------------------------------+
                |   PlayerMixin.ig_magnet$expandPickupArea()        |
                |   pickupArea = pickupArea.inflate(range);         |
                +---------------------------------------------------+
                                          |
                                          v
+-----------------------------------------------------------------------------------+
|               EKSEKUSI VANILLA ItemEntity.playerTouch(Player)                     |
|   - Penumpukan Inventaris Asli & Pengambilan Sebagian                             |
|   - Animasi & Efek Suara Pengambilan Vanilla (item.pickup / entity.experience_orb)|
|   - Pemicu Kemajuan & Statistik Bawaan                                            |
|   - Penanganan Kepenuhan Wadah & Retensi Item yang Tersisa                        |
+-----------------------------------------------------------------------------------+

🧩 Implementasi Arsitektur (PlayerMixin.java)

java
@ModifyVariable(
        method = "aiStep",
        at = @At(value = "STORE"),
        ordinal = 0
)
private AABB ig_magnet$expandPickupArea(AABB pickupArea) {
    Player player = (Player) (Object) this;
    Level level = player.level();
    
    if (!level.isClientSide()) {
        if (ModGameRules.getBoolean(level, ModGameRules.MAGNET_INSTANT)) {
            int range = ModGameRules.getInt(level, ModGameRules.MAGNET_RANGE);
            if (range > 0) {
                return pickupArea.inflate(range);
            }
        }
    }
    
    return pickupArea;
}

⚙️ Konfigurasi & GameRules Terkait

GameRuleTipeStandarDeskripsi
ig:magnet_instantBooleanfalseJika true, item langsung berpindah ke pemain alih-alih terbang.
ig:magnet_rangeInteger12Radius dalam blok untuk area pengambilan yang diperluas.
ig:magnet_enabledBooleantrueSakelar utama untuk seluruh mod.

🔗 Dokumentasi Wiki Terkait

Official documentation & web portal for Dasik Igaijinn mods.