Combat Inventory Hotbar Auto-Swap

Combat_Auto_Swap Инвентарь (Inventory) HIGH +8 очков

🎮 Влияние на механику Minecraft

Автоматически перемещает вспомогательные предметы (жемчуг Края, золотые яблоки, зелья, обсидиан) в активный хотбар при нажатии горячих клавиш или падении HP.

🔍 Анализируемые функции и API

ScreenHandler.onSlotClick

Взаимодействие со слотами контейнеров инвентаря.

PlayerInventory.swapSlotWithHotbar

Обмен предметов из основного хранилища в активную панель быстрого доступа.

💻 Реализация в моде (Исходный код)

// Developer Source (Fabric / Yarn mappings)
public class AutoSwap {
    public static void quickSwap(MinecraftClient client, Item item) {
        int slot = findItem(client.player.getInventory(), item);
        if (slot != -1) {
            client.interactionManager.clickSlot(0, slot, client.player.getInventory().selectedSlot, SlotActionType.SWAP, client.player);
        }
    }
}

⚙️ Декомпилированный вид (Vineflower)

// Decompiled with Vineflower 1.12 (Intermediary mappings)
public class AutoSwap {
    public static void quickSwap(class_310 client, class_1792 item) {
        int slot = findItem(client.field_1724.method_31548(), item);
        if (slot != -1) {
            client.field_1761.method_2906(0, slot, client.field_1724.method_31548().field_7545, class_1713.field_7791, client.field_1724);
        }
    }
}

🛡️ Сигнатура байткода и статический детект

Идентификация SlotActionType.SWAP (field_7791) при вызове ClientPlayerInteractionManager.clickSlot.