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
基于输入的颜色和文本返回对应的组件,可用颜色详见本章末尾(不含尖括号)。
以下是示例:
效果展示
// 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
这有帮助吗?