Skip to content

Руководство по интеграции сторонних модов

Обзор

В данном руководстве описывается, как разработчики сторонних модов и аддонов могут интегрироваться со Stack Size Adjuster для задания собственных лимитов стаков.


🛠️ Пошаговое руководство

Шаг 1: Добавление зависимости в fabric.mod.json

Добавьте stack-size-adjuster в блок depends или suggests:

json
"depends": {
    "stack-size-adjuster": ">=1.4.16+26.2"
}

Шаг 2: Регистрация функции переопределения

В вашем ModInitializer вызовите StackSizeManager.registerOverride:

java
package com.example.addon;

import net.fabricmc.api.ModInitializer;
import net.instantgratification.stacksizeadjuster.util.StackSizeManager;
import net.minecraft.world.item.Items;
import net.minecraft.world.item.SplashPotionItem;

public class ExampleAddonMod implements ModInitializer {
    @Override
    public void onInitialize() {
        // Настройка размера стака для взрывных зелий
        StackSizeManager.registerOverride((item, originalSize) -> {
            if (item instanceof SplashPotionItem) {
                return 8; // Лимит 8 для взрывных зелий
            }
            if (item == Items.TOTEM_OF_UNDYING) {
                return 16; // Стаковать тотемы бессмертия до 16
            }
            return originalSize; // Остальные предметы используют стандартные правила
        });
    }
}

Шаг 3: Программный запрос активного лимита

Для получения текущего лимита стака в коде:

java
import net.instantgratification.stacksizeadjuster.util.StackSizeManager;
import net.minecraft.world.item.ItemStack;

public class StackQueryUtil {
    public static int getEffectiveLimit(ItemStack stack) {
        int original = stack.getMaxStackSize();
        return StackSizeManager.getModifiedStackSize(stack.getItem(), original);
    }
}

Official documentation & web portal for Dasik Igaijinn mods.