物品控制

物品控制

独立的物品禁用与统一、掉落保护、可恢复清理、保护区域及创造模式物品栏管理的Kinetic附加组件。

ItemControl

ItemControl 是 Kinetic 生态中一个独立的玩法与服务器管理模组。

它不是 KineticCore 或任何其他 Kinetic 附属模组的装饰、配置、加载器或功能变体。KineticCore 仅为 ItemControl 提供共享 API、UI 框架和通用基础设施。

ItemControl 提供自身的玩法与服务器管理系统,包括物品禁用与统一、掉落物保护、带可恢复垃圾历史的定时清理、保护区管理、物品标签编辑以及创造模式物品栏管理。

其他 Kinetic 附属模组实现不同的玩法或管理系统,可根据整合包或服务器的需求独立安装。共享 KineticCore 和一致的用户界面并不会使它们成为同一模组的变体。

ItemControl 专为需要统一物品规则的整合包,以及需要可配置清理和物品管理工具的服务器而设计。

安装与访问

当前构建目标:

  • Minecraft 1.20.1
  • Forge 47.4.2+
  • KineticCore 26.9.20+

多人游戏时,请在客户端和服务器上同时安装 ItemControl 和 KineticCore。

可选集成:

  • KubeJS — 掉落物事件和脚本集成
  • JEI — 配方查看器可见性集成

进入世界后按 F6,然后在 KineticCore 中选择 Item Control。

F6 键可在 Minecraft 的“控制”菜单中更改。

服务器物品管理和创造模式标签页编辑器需要权限等级 2。普通玩家的清理器访问权限由服务器配置单独控制。

物品禁用、合并与标签

物品模块为以下内容提供独立的可视化编辑器:

  • 禁用物品
  • 物品合并与统一
  • 物品标签
  • 掉落物保护规则

支持的规则输入

规则输入 含义 示例
物品 ID 匹配一个已注册物品 minecraft:rotten_flesh
@modid 匹配整个模组命名空间 @examplemod
#namespace:tag 匹配一个物品标签 #forge:ingots/copper
物品 ID + SNBT 匹配带有指定 NBT 的物品 minecraft:diamond_sword{Damage:10}

NBT 匹配只检查指定数据,而不要求整个物品堆叠标签完全相同。

当规则需要区分同一物品的不同变体时,请使用编辑器的 NBT 工具。

禁用物品

可以选择单个物品,或为整个模组和物品标签创建规则。

组规则禁用必须先在组规则层面移除,其成员才会从该规则中释放。

合并与统一物品

选择一个规范目标物品,并添加应自动转换为该目标的来源物品。

这对于包含多个提供等价材料模组的整合包非常有用,例如多个版本的同种铜、锡或钢锭。

合并会参与:

  • 物品堆叠创建
  • 标签更新
  • 物品检查
  • 标签检查
  • 非 NBT 替换 ID 的 JSON 数据重载处理

物品标签

标签可以手动添加,也可以从一个物品复制到另一个物品。

重复标签会自动移除。

标签编辑器区分:

  • 原生标签
  • 通过物品合并继承的标签
  • 手动添加的标签

只有手动添加的标签才能直接从标签编辑器中移除。要移除继承的标签,请修改相应的合并规则。

统一工作流示例

  1. 选择你的整合包应保留的锭。
  2. 将来自其他模组的等价锭添加为合并来源。
  3. 保存配置。
  4. 检查配方和新获得的物品堆叠。

创造模式标签页隐藏是一个独立的展示功能,其本身不会施加物品禁用。

掉落物保护

按物品设置的保护规则可独立控制:

  • 火焰免疫
  • 爆炸免疫
  • 发光
  • 无重力

规则支持:

  • 物品 ID
  • 物品标签
  • 模组命名空间
  • 物品特定 NBT

虚空回收

虚空回收可以将落入虚空的受保护掉落物移回安全地面或世界出生点。

伤害免疫

全局伤害免疫可以匹配:

  • 已注册的伤害类型
  • 伤害类型标签

全局直接实体免疫可以匹配:

  • 直接造成伤害的实体
  • 实体标签

伤害免疫规则会立即使用已保存的配置。

之前已生成的掉落物不会追溯重置所有初始保护和显示标志。

protection.toml 中的保护条目格式为:

Identifier;FireImmune;ExplosionImmune;Glowing;NoGravity

示例:

minecraft:nether_star;true;true;true;false

自动与手动清理

清理器会扫描服务器各维度中已加载的实体。

掉落物是主要清理目标。经验球和配置的实体 ID 也可启用。

默认生成的设置:

  • 自动清理间隔:600 秒
  • 经验球清理:禁用
  • 额外实体清理:禁用

清理白名单

物品白名单支持:

  • 物品 ID
  • @modid
  • #tags

在依赖自动清理处理贵重掉落物之前,请先配置白名单。

保护区

保护区可防止选定体积内的掉落物被清理移除。

在确定哪些掉落物可被清理时,也会遵循垃圾桶黑名单。

手动清理

按 Delete 键可请求手动清理。

普通玩家只有在服务器允许时才能使用手动清理。

硬性禁用清理器会同时阻止:

  • 手动清理
  • 自动清理

清理开始前会有倒计时,大型清理操作会分散到多个游戏刻中执行。

可恢复的垃圾历史

被移除的物品堆叠可以存储在垃圾桶中,而不是立即被永久销毁。

垃圾桶存储:

  • 可恢复的物品堆叠
  • 有限数量的清理历史记录

它不会恢复:

  • 经验球
  • 其他被移除的实体

垃圾历史为服务器全局共享,并与世界一同存储,而不是按玩家单独存储。

默认生成的保留设置:

  • 3 条历史记录
  • 每条记录 28 行

打开物品栏中的垃圾桶按钮,或使用清理器命令,在相应历史记录过期前恢复物品。

清理器命令

命令 用途 / 权限
/kt clean help 显示清理器命令
/kt clean bin [index] 打开垃圾历史;索引 1 为最新
/del bin [index] 替代的垃圾桶命令
/kt del bin [index] 在 /kt 下的相同垃圾桶别名
/kt clean trash 删除所有存储的垃圾历史;权限等级 2
/kt clean auto <true/false> 启用或禁用自动清理;权限等级 2
/kt clean toggle <true/false> 完全启用或禁用清理器;权限等级 2
/kt reload 重载已注册配置并重置清理器计时器;权限等级 2

/kt clean toggle false 会同时禁用自动和手动清理。

/kt clean auto false 仅禁用自动计划。

保护区选择

默认选择工具是金锄。

默认区域操作键是 左 Shift。

将配置的选择工具握在任意一只手中。

操作

  • 左键点击方块以选择第一个角。
  • 右键点击方块以选择第二个角。
  • 按住区域操作键并左键点击以确认选定区域。
  • 按住区域操作键并右键点击以移除目标区域。
  • 按住 Alt + 区域操作键 + 右键点击 以清除自己的区域。

选择受服务器配置的方块体积配额和所有权规则限制。

额外的 Alt + 区域操作键 + 左键点击 操作会清除所有保护区,并受服务器权限限制。

编辑器会渲染选定区域,以便在保存前检查其边界。

创造模式物品栏管理

ItemControl 可以管理 Minecraft 创造模式标签页的内容。

支持的操作包括:

  • 隐藏整个创造模式标签页
  • 隐藏选定的条目
  • 恢复隐藏的条目
  • 向标签页添加自定义物品

规则可以针对:

  • 单个物品堆叠
  • NBT 特定的堆叠
  • 物品标签
  • 整个模组命名空间

创造模式标签页编辑器操作

选择一个标签页以浏览其内容。

  • 右键点击标签页或物品以隐藏它。
  • 从隐藏物品一侧恢复条目。
  • Ctrl 拖动条目在两侧之间移动。
  • Shift 右键点击物品以切换其可见性规则的严格 NBT 匹配。

保存配置以将其同步到服务器,然后重新打开创造模式物品栏。

如果需要完全刷新客户端资源,请使用 F3 + T。

配置文件

ItemControl 将其配置存储在:

config/kineticcore/

文件 内容
banitem.json 禁用物品、合并映射和手动添加的标签
banitem.old.json 物品规则保存流程使用的备份
protection.toml 掉落物保护、虚空回收和免疫规则
cleaner.toml 清理计划、列表、保护区和垃圾设置
creative_tabs.json 创造模式标签页隐藏、内容移除和添加

垃圾记录存储为名为以下名称的世界保存数据:

itemcontrol_trashbin

保护区也存储为世界数据。

垃圾桶按钮的可见性和位置是本地客户端偏好设置,与服务器清理规则无关。

重载行为

大多数清理器规则更改可立即生效。

在通过配置更改清理间隔或启用之前禁用的自动计划后,请使用:

/kt reload

或重载世界。

更改垃圾桶界面布局设置后,请重新打开垃圾桶界面。

物品和创造模式标签页的重载处理程序会重载并同步其配置。

JSON 配方和数据重写发生在数据加载期间,因此 /kt reload 不应被视为完整的配方重建。

KubeJS 集成

安装 KubeJS 后,ItemControl 会注册:

  • itemcontrolEvents.itemHurt
  • itemcontrolEvents.itemSpawn
  • itemcontrolEvents.itemRemoved
  • ItemProtection 绑定

这些事件向脚本暴露掉落物行为,并支持取消结果。

有关相应的脚本接口,请参阅 ItemControl 集成类。

与 KineticCore 及其他 Kinetic 项目的关系

KineticCore 是共享的 API 和 UI 框架依赖,而不是 ItemControl 的完整版本。

ItemControl 包含自身的物品管理、清理、保护、垃圾历史、保护区和创造模式物品栏系统。

其他 Kinetic 项目提供不同的功能模块,不是 ItemControl 的替代版本、装饰变体或不同版本。

这些项目有意共享 KineticCore,以便使用相同的界面约定和通用 API,而无需重复框架代码。