41 lines
1.8 KiB
Java
41 lines
1.8 KiB
Java
package net.minecraft.network.chat;
|
|
|
|
import com.mojang.authlib.GameProfile;
|
|
import java.time.Duration;
|
|
import java.util.UUID;
|
|
import net.minecraft.network.FriendlyByteBuf;
|
|
import net.minecraft.util.SignatureValidator;
|
|
import net.minecraft.world.entity.player.ProfilePublicKey;
|
|
|
|
public record RemoteChatSession(UUID sessionId, ProfilePublicKey profilePublicKey) {
|
|
public SignedMessageValidator createMessageValidator(Duration p_298140_) {
|
|
return new SignedMessageValidator.KeyBased(this.profilePublicKey.createSignatureValidator(), () -> this.profilePublicKey.data().hasExpired(p_298140_));
|
|
}
|
|
|
|
public SignedMessageChain.Decoder createMessageDecoder(UUID p_249107_) {
|
|
return new SignedMessageChain(p_249107_, 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 p_252181_) {
|
|
return new RemoteChatSession.Data(p_252181_.readUUID(), new ProfilePublicKey.Data(p_252181_));
|
|
}
|
|
|
|
public static void write(FriendlyByteBuf p_248910_, RemoteChatSession.Data p_250537_) {
|
|
p_248910_.writeUUID(p_250537_.sessionId);
|
|
p_250537_.profilePublicKey.write(p_248910_);
|
|
}
|
|
|
|
public RemoteChatSession validate(GameProfile p_251231_, SignatureValidator p_248970_) throws ProfilePublicKey.ValidationException {
|
|
return new RemoteChatSession(this.sessionId, ProfilePublicKey.createValidated(p_248970_, p_251231_.getId(), this.profilePublicKey));
|
|
}
|
|
}
|
|
} |