📄
XPlus KubeJS Tutorial v1 (zh_cn)
  • 前言
    • 本文更新日志
  • 一、一切的开始
    • 1.1 常用指令
    • 1.2 文件结构
    • 1.3 脚本基础
    • 1.4 事件列表
  • 二、配方
    • 2.1 新建配方及物品表示
    • 2.2 配方的修改和删除
    • 2.3 非标准配方修改
  • 三、自定义修改初步
    • 3 标签
    • 4 自定义Loot Table
    • 5 自定义流体
    • 6 自定义世界生成
    • 7 添加方块
    • 10:自定义窗口标题和logo
  • 四、事件初步
    • 8 聊天事件
    • 9 计划重启
  • 五、针对其他模组的修改
    • 11.1 JEI信息修改
    • 11.2 REI信息修改
    • 11.3 FTB Quest相关修改
    • 11.4 KubeJs内置游戏阶段 (类似于GameStage)
  • 六、拓展模组简介
    • 12.1 KubeJS Create
    • 12.2 KubeJS Blood Magic
    • 12.3 KubeJS Mekanism
    • 12.4 KubeJS UI
    • 12.5 KubeJS Termal
    • 12.7 便捷战利品表修改(LootJS Forge)
    • 12.8 LootJS战利品表修改实例
  • 七、游戏内容修改进阶
    • 13 自定义物品和物品ToolTip
    • 14 方块和物品属性修改
  • 八、事件进阶
    • 15.0 事件列表
    • 15.1 玩家&实体事件,信息获取及操作
    • 15.2 实体生成 & RayTraceResultJS & ItemStackJS及其他
    • 15.3 方块信息获取及操作
    • 15.4 WorldJS 和 ServerJS
    • 15.5 本章例子
    • 15.6 测试用例
  • 九、杂项
    • 16 网络包和Painter API
    • 17 本地化相关
    • 18.1 熔炼之镐
    • 18.2 罐头示例(包含物品注册, 配方添加, 玩家交互和persistentData的使用)
    • 19 Forge事件监听
  • 十、1.18.2的变化和介绍
    • 20 1.18.2中的变化和功能
    • 20.1 ProbeJS
    • 20.2 组件(Component)的使用
    • 20.3 格式变化
      • 20.3.1 世界生成
      • 20.3.2 方块 / 物品注册
      • 20.3.3 事件
      • 20.3.4 global[] 的使用
    • 20.4 命令注册
    • 20.5 反射与Java access
由 GitBook 提供支持
在本页
  • 一、基础使用
  • 二、可变组件(MutableComponent)

这有帮助吗?

在GitHub上编辑
  1. 十、1.18.2的变化和介绍

20.2 组件(Component)的使用


组件在(Component)1.18.2及以上版本的KubeJS中被大量使用。其可用于返回实体、物品的名称,亦或是设置悬浮提示,为玩家发送消息等等。

一、基础使用

你可以使用ComponentWrapper 来新建组件,它可以在任何地方以Component或Text形式被调用,以下为其方法:

方法名
返回值
描述

of(Object o)

MutableComponent

该方法会返回一个基于你输入对象的组件。输入可以是字符串、数字等基础数据类型,也可以是snbt/nbt等其他类型。

clickEventOf(Object o)

ClickEvent

基于输入的内容返回ClickEvent,详见下方示例。

prettyPrintNbt(Tag tag)

Component

返回一个高亮的nbt,详见下方示例。

join(MutableComponent 分隔符, Iterable<? extends Component> 待遍历内容)

MutableComponent

返回遍历 待遍历内容 的结果并把它们拼接在一起,并使用 分隔符 将其隔开。

string(String 文本)

MutableComponent

基于输入的字符串返回未格式化的TextComponent。

translate(String 本地化键名)

MutableComponent

基于输入的本地化键名返回未格式化的TextComponent。

translate(String 本地化键名, Object... 文本)

MutableComponent

基于输入的本地化键名和输入的对象返回未格式化的TextComponent,后者中的"%s"被本地化键名对应的译名替代。

keybind(String 键名)

MutableComponent

基于输入的键名返回客户端对应热键的KeybindComponent。

(Object 文本)

MutableComponent

基于输入的颜色和文本返回对应的组件,可用颜色详见本章末尾(不含尖括号)。

以下是示例:

onEvent('player.chat', event => {
  // 为玩家发送消息
  event.player.tell(Component.string('测试消息'))
  // 该消息现在为黑色
  event.player.tell(Component.black('黑色测试消息'))
  // 发送对应键名item.minecraft.diamond的文本
  event.player.tell(Component.translate('item.minecraft.diamond').blue())
  // 发送玩家潜行绑定的热键名称
  event.player.tell(Component.keybind('key.sneak'))
  // 发送高亮后的主手物品的nbt
  event.player.tell(Component.prettyPrintNbt(event.player.mainHandItem.nbt))
})

效果展示

// img0

二、可变组件(MutableComponent)

以下为MutableComponent支持的方法,其中包含ComponentKJS向原版Component注入的拓展。除相关原版方法外,你还可以调用以下由ComponentKJS添加的方法。

方法名
返回值
信息

iterator()

Iterator

返回当前组件中包含的子Component。

self()

MutableComponent

返回当前组件。

toJson()

JsonElement

返回当前组件的Json形式。

()

MutableComponent

设置当前组件的颜色,支持的颜色见下。

color(Color c)

MutableComponent

设置当前组件的颜色(颜色为Rhino格式)。

noColor()

MutableComponent

清除当前组件的颜色

bold(@Nullable Boolean 是否使用) italic(@Nullable Boolean 是否使用) underlined(@Nullable Boolean 是否使用) strikethrough(@Nullable Boolean 是否使用) obfuscated(@Nullable Boolean 是否使用)

MutableComponent

将组件设定为给定格式(依次为加粗,斜体,下划线,删除线,拼合),不填时默认值为true

insertion(@Nullable String 自动填充文字)

MutableComponent

当玩家点击该组件时在聊天框自动填充给定的文本(不自动发送)

font(@Nullable ResourceLocation 字体资源)

MutableComponent

click(@Nullable ClickEvent 点击事件)

MutableComponent

设置文本点击事件

hover(@Nullable Component s)

MutableComponent

把当前组件的鼠标悬浮提示文本设置为输入的。

setStyle(Style 样式)

MutableComponent

将当前的样式设置为输入的样式(net.minecraft.network.chat.Style) 并返回自身。(不推荐使用)

append(String 添加字符)

MutableComponent

在当前的组件末尾拼接输入字符串对应的TextComponent并返回自身

append(Component component)

MutableComponent

在当前组件的末尾拼接输入的组件并返回自身

withStyle(Style style)

MutableComponent

将输入的样式与组件的已有样式合并,冲突的属性将被设置为输入样式。

getStyle()

Style

返回当前组件的样式

getContents()

MutableComponent

返回当前组件的内容。其中TextComponent会返回Text,SelectorComponents会返回其对应的目标选择器,其余类型的组件会返回一个空的字符串。

getSiblings()

List

返回一个包含所有“使用append()添加到当前组件”的组件的列表。

plainCopy()

BaseComponent

只复制当前组件的基本内容,不包含样式等。

copy()

MutableComponent

完全复制当前组件,保留样式

getString()

String

返回组件文本对应的字符串。非文字类型的组件会返回一个空的字符串。

待补:相关示例。

附:

Component中可用的颜色:

  • black

  • darkBlue

  • darkGreen

  • darkAqua

  • darkRed

  • darkPurple

  • gold

  • gray

  • darkGray

  • blue

  • green

  • aqua

  • red

  • lightPurple

  • yellow

  • white

上一页20.1 ProbeJS下一页20.3 格式变化

这有帮助吗?

设置的字体。关于字体的更多信息详见

Minecraft Wiki - 资源包 - 字体