RemoteChatSession.java

net.minecraft.network.chat.RemoteChatSession

信息

  • 全限定名:net.minecraft.network.chat.RemoteChatSession
  • 类型:public record
  • 包:net.minecraft.network.chat
  • 源码路径:src/main/java/net/minecraft/network/chat/RemoteChatSession.java
  • 起始行号:L10
  • 职责:

    TODO

字段/常量

内部类/嵌套类型

  • net.minecraft.network.chat.RemoteChatSession.Data
    • 类型: record
    • 修饰符: public
    • 源码定位: L27
    • 说明:

      TODO

构造器

方法

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

public SignedMessageValidator createMessageValidator(Duration gracePeriod) @ L11

  • 方法名:createMessageValidator
  • 源码定位:L11
  • 返回类型:SignedMessageValidator
  • 修饰符:public

参数:

  • gracePeriod: Duration

说明:

TODO

public SignedMessageChain.Decoder createMessageDecoder(UUID profileId) @ L15

  • 方法名:createMessageDecoder
  • 源码定位:L15
  • 返回类型:SignedMessageChain.Decoder
  • 修饰符:public

参数:

  • profileId: UUID

说明:

TODO

public RemoteChatSession.Data asData() @ L19

  • 方法名:asData
  • 源码定位:L19
  • 返回类型:RemoteChatSession.Data
  • 修饰符:public

参数:

说明:

TODO

public boolean hasExpired() @ L23

  • 方法名:hasExpired
  • 源码定位:L23
  • 返回类型:boolean
  • 修饰符:public

参数:

说明:

TODO

代码

public record RemoteChatSession(UUID sessionId, ProfilePublicKey profilePublicKey) {
    public SignedMessageValidator createMessageValidator(Duration gracePeriod) {
        return new SignedMessageValidator.KeyBased(this.profilePublicKey.createSignatureValidator(), () -> this.profilePublicKey.data().hasExpired(gracePeriod));
    }
 
    public SignedMessageChain.Decoder createMessageDecoder(UUID profileId) {
        return new SignedMessageChain(profileId, this.sessionId).decoder(this.profilePublicKey);
    }
 
    public RemoteChatSession.Data asData() {
        return new RemoteChatSession.Data(this.sessionId, this.profilePublicKey.data());
    }
 
    public boolean hasExpired() {
        return this.profilePublicKey.data().hasExpired();
    }
 
    public record Data(UUID sessionId, ProfilePublicKey.Data profilePublicKey) {
        public static RemoteChatSession.Data read(FriendlyByteBuf input) {
            return new RemoteChatSession.Data(input.readUUID(), new ProfilePublicKey.Data(input));
        }
 
        public static void write(FriendlyByteBuf output, RemoteChatSession.Data data) {
            output.writeUUID(data.sessionId);
            data.profilePublicKey.write(output);
        }
 
        public RemoteChatSession validate(GameProfile profile, SignatureValidator serviceSignatureValidator) throws ProfilePublicKey.ValidationException {
            return new RemoteChatSession(this.sessionId, ProfilePublicKey.createValidated(serviceSignatureValidator, profile.id(), this.profilePublicKey));
        }
    }
}

引用的其他类

  • SignedMessageChain

    • 引用位置: 构造调用/返回值
    • 关联成员: SignedMessageChain()
  • SignedMessageValidator

    • 引用位置: 方法调用/构造调用/返回值
    • 关联成员: KeyBased(), SignedMessageValidator.KeyBased()
  • ProfilePublicKey

    • 引用位置: 方法调用/构造调用
    • 关联成员: Data(), ProfilePublicKey.Data(), ProfilePublicKey.createValidated()