MegaStacks

MegaStacks

将每种可堆叠物品的最大堆叠数量提升至你想要的任何数值,最高可达1,000,000。

巨型堆叠 (Mega Stacks)

将所有可堆叠物品的最大堆叠数量提升到您想要的任意值,最高可达 1,000,000。

该模组自动适配模组物品。模组直接修改 Item 类本身的限制——这也是原版游戏和所有模组共用的路径——因此它无需了解您安装了哪些模组,也无需为各个模组提供兼容补丁。

前置要求

  • Minecraft 1.20.1
  • Fabric Loader 0.14 或更高版本
  • Java 17

不需要 Fabric API。 此模组完全没有任何依赖项。

需要在客户端和服务端同时安装。 原版将物品数量存储在一个字节(最大 127)中,而本模组在存档文件和网络数据包中都扩展了这一限制。未安装此模组的客户端无法正确显示或发送大型堆叠。

功能特色

  • 任意堆叠数量,最高可达 1,000,000,可全局设置或按物品单独设置。
  • 通配符规则 — 使用一行配置即可为某个模组的所有物品设置独立的堆叠上限。
  • 游戏内指令 — 无需重启即可更改限制;更改会保存到磁盘并同步给玩家。
  • 服务端权威 — 服务端会将限制推送给加入的客户端,确保双方始终一致。
  • 槽位数字优化 — 物品上的数量显示为 1.2k / 340k / 1.0M 这样的缩写形式,完整数字显示在悬停提示中。
  • 内置自检功能 — /megastacks selftest 指令可在游戏中实时验证所有修改,确保模组在加入大型整合包后仍能正常工作。

配置

config/megastacks.json 会在首次启动时生成。

选项 默认值 描述
defaultMaxStackSize 1000000 所有可堆叠物品的限制(1–1,000,000)
applyToSmallStacks true 同时提升原版堆叠上限低于 64 的物品(末影珍珠、雪球、鸡蛋、告示牌)
abbreviateCountInGui true 在物品槽上方显示 1.0M 而非难以阅读的 1000000
showExactCountInTooltip true 在悬停提示中添加精确格式化的数量行
overrides {} 按物品单独设置的堆叠上限

按物品单独设置

"overrides": {
  "minecraft:ender_pearl": 4096,
  "create:*": 100000,
  "*:*_bucket": 64
}

游戏指令

status、held 和 overrides 对所有玩家开放。其他指令需要权限等级 2。

  • /megastacks status — 查看当前全局限制以及生效中的物品覆盖数量
  • /megastacks held — 查看手持物品的堆叠上限及其原版堆叠上限
  • /megastacks default <1-1000000> — 设置全局堆叠上限
  • /megastacks set <item> <size> — 为单个物品设置堆叠上限
  • /megastacks clear <item> — 移除某个物品的覆盖设置
  • /megastacks overrides — 列出所有覆盖设置
  • /megastacks reload — 重新加载配置文件
  • /megastacks selftest — 验证模组是否正常工作

模组修改内容

  • 堆叠上限 — 直接写入 Item.maxCount,因此任何调用 getMaxCount() 的模组都能无额外开销地获取新值。自身重写了 getMaxCount() 的物品则会单独处理。
  • 存档文件 — Count 标签仅在堆叠数量超过 127 时才会变为整数类型。普通堆叠的写入方式与原版完全一致。
  • 网络通信 — 原版的字节计数保持不变;溢出的部分通过已经发送的 NBT 数据携带,在读取堆叠时即刻剥离。数量为 127 或更少物品的数据包与原版逐字节相同。
  • 物品栏和槽位 — 移除了硬编码的 64 上限。有意限制数量上限的槽位(例如讲台只能放一本书)不受影响。
  • 创造模式 — 移除了服务端对创造模式槽位编辑的 64 件物品限制。
  • /item replace 指令 — 其数量参数不再受 64 上限限制。
  • 掉落物 — 大型堆叠会作为单个实体掉落,而不会分裂成数万个实体导致服务器卡顿。
  • 地面物品合并 — 使用物品自身的堆叠上限而非硬编码的 64。
  • 收纳袋 (Bundles) — 保持原版的 64 容量不变。若不进行此处理,原版会产生除零错误并导致崩溃。

已知限制

  • 原版中不可堆叠的物品——工具、盔甲、药水——仍保持堆叠上限为 1。堆叠带有耐久度和附魔的物品弊大于利。
  • 如果移除本模组,现有世界中超过 127 的堆叠会损坏。普通堆叠不受影响。
  • 某些模组在自身代码中计算槽位容量,绕过了 Inventory 和 Slot 类,这些模组仍会保持其自身的 64 上限。

许可证

保留所有权利 (All Rights Reserved)