危险

Adventure 文档目前仍为 尚在施工 状态,并且作为 Javadocs 的补充. 一些地方可能覆盖面有限,或可能不是完全最新的. 所有你有任何问题,欢迎加入我们的 Discord.

Gson

Gson 文本序列化器使用 Gson 依赖库将聊天组件与其 JSON 表示形式相互转换. 如果你对发送一个用于在 Minecraft 客户端中显示的聊天组件感兴趣, 或者想要支持进阶的聊天组件特性, 则你应该使用 Gson 文本序列化器.

半数使用此文本序列化器的用户通常只想反序列化一个来自外部源的组件 - 当组件被发送给用户时, 序列化将会由 平台 自动完成.

用法

Gson 序列化器可使用 GsonComponentSerializer 以访问.

在 Minecraft 1.16, Mojang 对 JSON 聊天格式作了许多主要更改, 增加了 RGB 聊天颜色以及更改了悬浮事件的序列化方式. 被旧版 Minecraft 生成的组件将仍旧能够在一个 1.16 客户端被显示, 然而为一个 1.16 客户端序列化的组件将不能被在 Minecraft 1.15.2 或更低版本的客户端被显示.

要想获取一个适用于 1.16 及更高版本的客户端的序列化器, 使用 GsonComponentSerializer.gson(). 要想获取一个适用于所有版本 Minecraft 支持文本组件的序列化器, 使用 GsonComponentSerializer.colorDownsamplingGson(). 此序列化器会将 RGB 颜色降采样 (downsamples) 到接近 Mojang 传统风格的颜色, 并将通过一种方式序列化悬浮事件以兼容旧版客户端.

我应该使用哪种序列化器?

如果你正在做的事情只是加载或保存组件到一个配置文件或数据库中, 你可能需要使用的是默认的 1.16 序列化器.

如果你正在尝试将一个组件发送给客户端,则首先考虑你是否可以使用提供的平台之一. 如果你不能使用一个平台,通常你应该偏向于使用默认的序列化器以反序列化组件 (因为他是向后兼容的), 然后基于正在运行的客户端版本, 在使用默认的还是颜色降采样的序列化器中做选择