模块 linlang.api
程序包 api.linlang.text

类 LinText

java.lang.Object
api.linlang.text.LinText
所有已实现的接口:
TextSource

public final class LinText extends Object implements TextSource
不可变的高级字符串,由可组合的 Adventure 文本组件构成。

parse(String) 接受 文本[@描述符] 语法,也接受旧式颜色代码。 描述符按分号分隔;支持 color、bold、italic、 underlined、strikethrough、obfuscated、font、 insertion、gradient、rainbow、keybind、 translate、hover 和 click.run/suggest/copy/url。 同一片段只能有一种点击行为。变量应在解析后通过 bind(TextArgs) 绑定。

  • 方法详细资料

    • parse

      public static LinText parse(String source)
      解析高级字符串源码;null 等同于空字符串。

      解析结果缓存为组件树,返回值本身不可变。非法描述符会直接报错。

      参数:
      source - 高级字符串源码
      返回:
      已解析的文本
      抛出:
      IllegalArgumentException - 描述符无效、未闭合或源码超出长度限制时
    • of

      public static LinText of(String source)
      parse(String) 的别名。
      参数:
      source - 高级字符串源码
      返回:
      已解析的文本
    • plain

      public static LinText plain(Object value)
      将值作为普通文本创建组件,不解析描述符或颜色代码。
      参数:
      value - 文本值,null 视为空字符串
      返回:
      普通文本
    • join

      public static LinText join(TextSource... parts)
      按顺序组合文本来源,此方法立即解析各部分。

      若需要在语言切换后重新读取动态来源,请使用 TextSource.join(TextSource...)。

      参数:
      parts - 文本来源;数组为 null 时返回空文本
      返回:
      组合后的不可变文本
    • builder

      public static LinText.Builder builder()
      创建按片段构造文本的构造器。
      返回:
      新构造器
    • append

      public LinText append(TextSource next)
      在当前文本末尾追加一个来源并返回新对象。
      参数:
      next - 追加的文本来源
      返回:
      组合后的文本
    • bind

      public LinText bind(TextArgs args)
      在组件树上绑定命名变量。
      参数:
      args - 变量集合;null 视为空集合
      返回:
      绑定后的新文本
    • bind

      public LinText bind(TextContext context)
      在指定语言和变量上下文中绑定文本。

      普通变量仅作为文本插入,不会重新解析成描述符;可信的 TextSource 变量可以携带自身样式。绑定不会修改当前对象。

      参数:
      context - 解析上下文;null 视为空上下文
      返回:
      绑定后的新文本
    • toPlainText

      public String toPlainText()
      序列化为不含样式和事件的纯文本。
      返回:
      纯文本
    • toLegacyText

      public String toLegacyText()
      序列化为传统 § 颜色代码文本。

      传统字符串不能保留点击、悬浮等组件事件。

      返回:
      传统颜色代码文本
    • toJson

      public String toJson()
      序列化为 Adventure 组件 JSON。
      返回:
      组件 JSON
    • fromJson

      public static LinText fromJson(String json)
      从 Adventure 组件 JSON 还原文本。
      参数:
      json - 组件 JSON
      返回:
      还原后的文本
    • source

      public String source()
      返回原始源码;没有源码的组件返回其纯文本表示。
      返回:
      源码或纯文本
    • component

      public net.kyori.adventure.text.Component component()
      返回不可变的 Adventure 组件。
      返回:
      文本组件
    • resolveText

      public LinText resolveText(TextContext context)
      从接口复制的说明: TextSource
      在当前上下文中解析并绑定文本。
      指定者:
      resolveText 在接口中 TextSource
      参数:
      context - 文本上下文
      返回:
      已编译的高级字符串
    • resolve

      public String resolve()
      从接口复制的说明: TextSource
      解析当前文本源码。
      指定者:
      resolve 在接口中 TextSource
      返回:
      高级字符串源码,不为 null
    • toString

      public String toString()
      覆盖:
      toString 在类中 Object
    • equals

      public boolean equals(Object other)
      覆盖:
      equals 在类中 Object
    • hashCode

      public int hashCode()
      覆盖:
      hashCode 在类中 Object