ArgumentSignatures.java
net.minecraft.commands.arguments.ArgumentSignatures
信息
- 全限定名:net.minecraft.commands.arguments.ArgumentSignatures
- 类型:public record
- 包:net.minecraft.commands.arguments
- 源码路径:src/main/java/net/minecraft/commands/arguments/ArgumentSignatures.java
- 起始行号:L11
- 职责:
TODO
字段/常量
-
EMPTY- 类型:
ArgumentSignatures - 修饰符:
public static final - 源码定位:
L12 - 说明:
TODO
- 类型:
-
MAX_ARGUMENT_COUNT- 类型:
int - 修饰符:
private static final - 源码定位:
L13 - 说明:
TODO
- 类型:
-
MAX_ARGUMENT_NAME_LENGTH- 类型:
int - 修饰符:
private static final - 源码定位:
L14 - 说明:
TODO
- 类型:
内部类/嵌套类型
-
net.minecraft.commands.arguments.ArgumentSignatures.Entry- 类型:
record - 修饰符:
public - 源码定位:
L32 - 说明:
TODO
- 类型:
-
net.minecraft.commands.arguments.ArgumentSignatures.Signer- 类型:
interface - 修饰符:
public - 源码定位:
L44 - 说明:
TODO
- 类型:
构造器
public ArgumentSignatures(FriendlyByteBuf input) @ L16
- 构造器名:ArgumentSignatures
- 源码定位:L16
- 修饰符:public
参数:
- input: FriendlyByteBuf
说明:
TODO
方法
下面的方法块按源码顺序生成。
public void write(FriendlyByteBuf output) @ L20
- 方法名:write
- 源码定位:L20
- 返回类型:void
- 修饰符:public
参数:
- output: FriendlyByteBuf
说明:
TODO
public static ArgumentSignatures signCommand(SignableCommand<?> command, ArgumentSignatures.Signer signer) @ L24
- 方法名:signCommand
- 源码定位:L24
- 返回类型:ArgumentSignatures
- 修饰符:public static
参数:
- command: SignableCommand<?>
- signer: ArgumentSignatures.Signer
说明:
TODO
代码
public record ArgumentSignatures(List<ArgumentSignatures.Entry> entries) {
public static final ArgumentSignatures EMPTY = new ArgumentSignatures(List.of());
private static final int MAX_ARGUMENT_COUNT = 8;
private static final int MAX_ARGUMENT_NAME_LENGTH = 16;
public ArgumentSignatures(FriendlyByteBuf input) {
this(input.<ArgumentSignatures.Entry, List<ArgumentSignatures.Entry>>readCollection(FriendlyByteBuf.limitValue(ArrayList::new, 8), ArgumentSignatures.Entry::new));
}
public void write(FriendlyByteBuf output) {
output.writeCollection(this.entries, (out, entry) -> entry.write(out));
}
public static ArgumentSignatures signCommand(SignableCommand<?> command, ArgumentSignatures.Signer signer) {
List<ArgumentSignatures.Entry> entries = command.arguments().stream().map(argument -> {
MessageSignature signature = signer.sign(argument.value());
return signature != null ? new ArgumentSignatures.Entry(argument.name(), signature) : null;
}).filter(Objects::nonNull).toList();
return new ArgumentSignatures(entries);
}
public record Entry(String name, MessageSignature signature) {
public Entry(FriendlyByteBuf input) {
this(input.readUtf(16), MessageSignature.read(input));
}
public void write(FriendlyByteBuf output) {
output.writeUtf(this.name, 16);
MessageSignature.write(output, this.signature);
}
}
@FunctionalInterface
public interface Signer {
@Nullable MessageSignature sign(String content);
}
}引用的其他类
-
- 引用位置:
参数/方法调用 - 关联成员:
FriendlyByteBuf.limitValue()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
MessageSignature.read(), MessageSignature.write()
- 引用位置:
-
- 引用位置:
参数
- 引用位置: