Skip to content
On this page

Common API

由模块 common 生成。

源码根目录

  • common/src/main/kotlin/top/katton/api

页面

  • ClientDataApi - 向所有已连接玩家同步一个键值对。 值为 null 时会在客户端删除该键。
  • ClientItemRenderAnimation - 动画轨道上的变换关键帧。[time] 通常取 0.0 到 1.0。
  • ClientItemRenderMarkerApi - 直接在世界中渲染的轻量级客户端物品模型。
  • ClientPostEffectApi - 注册一个运行时客户端 post effect,读取 Minecraft 26.x 的 post-effect JSON。
  • ClientPostEffectPresetsApi - 注册一个可配置的全屏反色效果。
  • ClientPostEffectServerApi - 请求一个 Fabric 或 NeoForge 客户端启用已注册的后处理效果。
  • KattonAPI - 在当前脚本所有者命名空间下,对指定键只执行一次。
  • KattonClientApi - 获取原始 Minecraft 客户端实例。
  • KattonClientRenderApi - 屏幕空间渲染回调上下文。
  • KattonComponentApi - 将两个可空的 Component 合并为一个新的 Component。
  • KattonConfigApi - 面向脚本的配置 API,会从当前脚本包的 manifest 里读取配置值。
  • KattonContextApi - 决定返回的 [ExecutionContext] 使用哪个位置。
  • ScriptEntrypoint - 将一个顶层无参数函数标记为客户端脚本入口点。
  • Recipes
  • KattonBlockApi - Map-like access to blocks in a level by position.
  • KattonBlockEntityApi - 以类似 Map 的方式按位置访问关卡中的方块实体。
  • KattonEntityApi - 获取或设置 Entity 的 NBT 数据。
  • KattonItemApi - 用于读取和写入 ItemStack NBT 数据的扩展属性。
  • KattonLootTableApi - 获取方块在使用工具破坏时的掉落物。
  • KattonMiscApi - 向玩家发送系统消息。
  • KattonNbtApi - 根据 Number 值创建数值类型的 Tag。
  • KattonPlayerApi - 以类似 List 的方式访问所有在线玩家。
  • KattonRecipeApi - 向玩家授予配方进度。
  • KattonScoreboardApi - Get a score value for a target in an objective.
  • KattonServerApi - 访问所有在线玩家。
  • KattonSlotProviderApi - 从容器槽位中获取物品。
  • KattonWorldApi - 以类似 Map 的方式按 ResourceKey 访问所有服务端关卡。
  • KattonEventsArg - Argument for server-level events.
  • ManagedEvents - Managed event listener handle returned to scripts when registering a native listener. 注册原生事件监听器后返回给脚本的托管监听器句柄。
  • InjectApi - 注册注入的句柄,用于回滚操作。
  • KattonBlockModificationApi - 用于修改现有方块属性的配置对象。 这个类提供一个流式 API,用于修改已经注册到 Minecraft 方块注册表中的方块属性。 风格上类似 KubeJS 的方块修改系统。
  • KattonEntityTypeModificationApi - 用于修改现有 EntityType 默认属性的配置对象(原版或模组添加的实体都适用)。 它的属性面与 [top.katton.registry.KattonEntityProperties] 对应,但作用对象是已经注册的实体类型, 并通过 [top.katton.registry.DefaultAttributesHelper] 生效。
  • KattonItemModificationApi - 用于修改现有物品属性的配置对象。 这个类提供一个流式 API,用于修改已经注册到 Minecraft 物品注册表中的物品属性。 风格上类似 KubeJS 的物品修改系统。
  • KattonLootTableModificationApi - 返回现有战利品表的 JSON 形式;如果战利品表未注册或服务器离线,则返回 null。 这里会从 server.reloadableRegistries() 读取,因为从 MC 1.21.5+ 开始,战利品表就存放在那里, 然后再通过 [LootTable.DIRECT_CODEC] 重新编码。
  • KattonRecipeModificationApi - 用于修改现有配方属性的配置对象。 这个类提供一个流式 API,用于修改已经注册到 Minecraft 配方管理器中的配方属性。 风格上类似 KubeJS 的配方修改系统。
  • KattonVillagerTradeModificationApi - 用于向现有 [TradeSet] 追加单条交易的配置对象,可由 [addVillagerTrade] 使用。
  • Block - 注册原生方块,并支持热重载(String 重载)。 这是脚本中注册自定义方块子类的主要 API。 方块会注册到全局 Minecraft 注册表,并具备完整的热重载能力。
  • BlockEntityType - 注册原生 BlockEntityType,并支持热重载。
  • CreativeModeTab - 注册原生 CreativeModeTab,并支持热重载。
  • DataComponentType - 注册持久化(保存到磁盘)的 DataComponentType,并支持热重载。 持久化组件会使用其 codec 进行序列化,并随物品一并保存。 适用于必须跨存档读写周期保留的数据。
  • Effect - 注册原生 MobEffect,并支持热重载(String 重载)。 这是脚本中注册自定义 MobEffect 子类的主要 API。 该效果会注册到全局 Minecraft 注册表,并具备完整的热重载能力。
  • Entity - 注册完整的原生 Entity,并支持热重载。 这是脚本中注册自定义实体的主要 API。 它会在一次调用中完成 EntityType 注册,以及可选的属性、刷怪蛋和生成位置配置。
  • EntityRenderer - 为脚本注册的实体类型注册自定义实体渲染器。 这是 [registerNativeEntity] 在客户端侧的配套 API。完成实体类型注册后, 在客户端调用这里的方法,就能为实体提供可视化外观。 [rendererFactory] 会接收一个 [EntityRendererProvider.Context],其中可访问 实体渲染分发器、物品渲染器、资源管理器和实体模型集,足以构造标准 [EntityRenderer]。
  • EntityType - 注册原生 EntityType,并支持热重载。 这是一个更底层的 API,只负责注册 EntityType 本身。 如果需要完整的实体注册流程(包括属性、刷怪蛋和生成位置),请改用 [registerNativeEntity]。
  • Item - 注册原生 Item,并支持热重载。 这是脚本中注册自定义 Item 子类的主要 API。通过该 API 注册的 Item 会进入全局 Minecraft 注册表,并具备完整的热重载能力。
  • ParticleType - 注册原生 ParticleType,并支持热重载。
  • SoundEvent - 注册原生 SoundEvent,并支持热重载。