Skip to content

消费者模组整合指南

概述

本指南详细介绍第三方模组开发者与集合附属模组如何与 Stack Size Adjuster 进行深度集成,以定义专属堆叠上限或查询当前生效的类别数值。


🛠️ 逐步整合操作指南

第 1 步:在 fabric.mod.json 中添加依赖声明

stack-size-adjuster 添加至模组元数据的 dependssuggests 列表中:

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; // 未修改的物品继续采用全局 GameRules 上限
        });
    }
}

第 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.