Message.java

net.minecraft.server.jsonrpc.methods.Message

信息

  • 全限定名:net.minecraft.server.jsonrpc.methods.Message
  • 类型:public record
  • 包:net.minecraft.server.jsonrpc.methods
  • 源码路径:src/main/java/net/minecraft/server/jsonrpc/methods/Message.java
  • 起始行号:L9
  • 职责:

    TODO

字段/常量

  • CODEC
    • 类型: Codec<Message>
    • 修饰符: public static final
    • 源码定位: L10
    • 说明:

      TODO

内部类/嵌套类型

构造器

方法

下面的方法块按源码顺序生成。

public Optional<Component> asComponent() @ L19

  • 方法名:asComponent
  • 源码定位:L19
  • 返回类型:Optional
  • 修饰符:public

参数:

说明:

TODO

代码

public record Message(Optional<String> literal, Optional<String> translatable, Optional<List<String>> translatableParams) {
    public static final Codec<Message> CODEC = RecordCodecBuilder.create(
        i -> i.group(
                Codec.STRING.optionalFieldOf("literal").forGetter(Message::literal),
                Codec.STRING.optionalFieldOf("translatable").forGetter(Message::translatable),
                Codec.STRING.listOf().lenientOptionalFieldOf("translatableParams").forGetter(Message::translatableParams)
            )
            .apply(i, Message::new)
    );
 
    public Optional<Component> asComponent() {
        if (this.translatable.isPresent()) {
            String translationKey = this.translatable.get();
            if (this.translatableParams.isPresent()) {
                List<String> translationArgs = this.translatableParams.get();
                return Optional.of(Component.translatable(translationKey, translationArgs.toArray()));
            } else {
                return Optional.of(Component.translatable(translationKey));
            }
        } else {
            return this.literal.map(Component::literal);
        }
    }
}

引用的其他类

  • Component
    • 引用位置: 方法调用/返回值
    • 关联成员: Component.translatable()