Skip to content
On this page

注册表生命周期

Katton 的可重载注册表让脚本可以在不重启游戏的情况下迭代原生 Minecraft 对象。

受管注册表

Katton 跟踪 10 个可重载注册表领域:

注册表类型
物品Item
方块Block
实体类型EntityType<?>
方块实体类型BlockEntityType<?>
效果MobEffect
声音事件SoundEvent
粒子类型ParticleType<?>
创造模式标签页CreativeModeTab
数据组件类型DataComponentType<?>
实体渲染器客户端渲染器注册

模式

模式行为
RegisterMode.GLOBAL永久注册,只允许在初始化阶段使用,不受重载和世界切换影响。
RegisterMode.WORLD在一次世界会话内有效;会保留到 /katton reload 之后,并在离开世界时释放。
RegisterMode.RELOADABLE按脚本跟踪所有权,并在 /katton reload 时刷新所有权。

重载语义

重载期间,Katton 会清理所有权跟踪,然后由脚本重新注册内容。已有 Minecraft 注册表对象会软保留,而不是硬删除,因为硬删除可能破坏 holder 和已加载游戏状态。

stale 条目表示对象仍在 Minecraft 注册表中,但当前没有脚本拥有它。移除某个脚本定义的物品或方块后重载,出现 stale 是预期行为。

在 Fabric/NeoForge 上可用 /katton registry/katton registry stale 检查这些状态。

Paper

Paper 完全禁用注册表修改。连接到 Paper 服务器的原版客户端无法接收 Katton 定义的注册表条目,因此 Paper 脚本应使用原版内容、Bukkit API、数据包修改与事件逻辑。