MessageSignature.java
net.minecraft.network.chat.MessageSignature
信息
- 全限定名:net.minecraft.network.chat.MessageSignature
- 类型:public record
- 包:net.minecraft.network.chat
- 源码路径:src/main/java/net/minecraft/network/chat/MessageSignature.java
- 起始行号:L15
- 职责:
TODO
字段/常量
-
CODEC- 类型:
Codec<MessageSignature> - 修饰符:
public static final - 源码定位:
L16 - 说明:
TODO
- 类型:
-
BYTES- 类型:
int - 修饰符:
public static final - 源码定位:
L17 - 说明:
TODO
- 类型:
内部类/嵌套类型
net.minecraft.network.chat.MessageSignature.Packed- 类型:
record - 修饰符:
public - 源码定位:
L70 - 说明:
TODO
- 类型:
构造器
public MessageSignature(byte[] bytes) @ L19
- 构造器名:MessageSignature
- 源码定位:L19
- 修饰符:public
参数:
- bytes: byte[]
说明:
TODO
方法
下面的方法块按源码顺序生成。
public static MessageSignature read(FriendlyByteBuf input) @ L24
- 方法名:read
- 源码定位:L24
- 返回类型:MessageSignature
- 修饰符:public static
参数:
- input: FriendlyByteBuf
说明:
TODO
public static void write(FriendlyByteBuf output, MessageSignature signature) @ L30
- 方法名:write
- 源码定位:L30
- 返回类型:void
- 修饰符:public static
参数:
- output: FriendlyByteBuf
- signature: MessageSignature
说明:
TODO
public boolean verify(SignatureValidator signature, SignatureUpdater updater) @ L34
- 方法名:verify
- 源码定位:L34
- 返回类型:boolean
- 修饰符:public
参数:
- signature: SignatureValidator
- updater: SignatureUpdater
说明:
TODO
public ByteBuffer asByteBuffer() @ L38
- 方法名:asByteBuffer
- 源码定位:L38
- 返回类型:ByteBuffer
- 修饰符:public
参数:
- 无
说明:
TODO
public boolean equals(Object o) @ L42
- 方法名:equals
- 源码定位:L42
- 返回类型:boolean
- 修饰符:public
参数:
- o: Object
说明:
TODO
public int hashCode() @ L47
- 方法名:hashCode
- 源码定位:L47
- 返回类型:int
- 修饰符:public
参数:
- 无
说明:
TODO
public String toString() @ L52
- 方法名:toString
- 源码定位:L52
- 返回类型:String
- 修饰符:public
参数:
- 无
说明:
TODO
public static String describe(MessageSignature signature) @ L57
- 方法名:describe
- 源码定位:L57
- 返回类型:String
- 修饰符:public static
参数:
- signature: MessageSignature
说明:
TODO
public MessageSignature.Packed pack(MessageSignatureCache cache) @ L61
- 方法名:pack
- 源码定位:L61
- 返回类型:MessageSignature.Packed
- 修饰符:public
参数:
- cache: MessageSignatureCache
说明:
TODO
public int checksum() @ L66
- 方法名:checksum
- 源码定位:L66
- 返回类型:int
- 修饰符:public
参数:
- 无
说明:
TODO
代码
public record MessageSignature(byte[] bytes) {
public static final Codec<MessageSignature> CODEC = ExtraCodecs.BASE64_STRING.xmap(MessageSignature::new, MessageSignature::bytes);
public static final int BYTES = 256;
public MessageSignature(byte[] bytes) {
Preconditions.checkState(bytes.length == 256, "Invalid message signature size");
this.bytes = bytes;
}
public static MessageSignature read(FriendlyByteBuf input) {
byte[] bytes = new byte[256];
input.readBytes(bytes);
return new MessageSignature(bytes);
}
public static void write(FriendlyByteBuf output, MessageSignature signature) {
output.writeBytes(signature.bytes);
}
public boolean verify(SignatureValidator signature, SignatureUpdater updater) {
return signature.validate(updater, this.bytes);
}
public ByteBuffer asByteBuffer() {
return ByteBuffer.wrap(this.bytes);
}
@Override
public boolean equals(Object o) {
return this == o || o instanceof MessageSignature that && Arrays.equals(this.bytes, that.bytes);
}
@Override
public int hashCode() {
return Arrays.hashCode(this.bytes);
}
@Override
public String toString() {
return Base64.getEncoder().encodeToString(this.bytes);
}
public static String describe(@Nullable MessageSignature signature) {
return signature == null ? "<no signature>" : signature.toString();
}
public MessageSignature.Packed pack(MessageSignatureCache cache) {
int packedId = cache.pack(this);
return packedId != -1 ? new MessageSignature.Packed(packedId) : new MessageSignature.Packed(this);
}
public int checksum() {
return Arrays.hashCode(this.bytes);
}
public record Packed(int id, @Nullable MessageSignature fullSignature) {
public static final int FULL_SIGNATURE = -1;
public Packed(MessageSignature signature) {
this(-1, signature);
}
public Packed(int id) {
this(id, null);
}
public static MessageSignature.Packed read(FriendlyByteBuf input) {
int id = input.readVarInt() - 1;
return id == -1 ? new MessageSignature.Packed(MessageSignature.read(input)) : new MessageSignature.Packed(id);
}
public static void write(FriendlyByteBuf output, MessageSignature.Packed packed) {
output.writeVarInt(packed.id() + 1);
if (packed.fullSignature() != null) {
MessageSignature.write(output, packed.fullSignature());
}
}
public Optional<MessageSignature> unpack(MessageSignatureCache cache) {
return this.fullSignature != null ? Optional.of(this.fullSignature) : Optional.ofNullable(cache.unpack(this.id));
}
}
}引用的其他类
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置: