MethodInfo.java
net.minecraft.server.jsonrpc.api.MethodInfo
信息
- 全限定名:net.minecraft.server.jsonrpc.api.MethodInfo
- 类型:public record
- 包:net.minecraft.server.jsonrpc.api
- 源码路径:src/main/java/net/minecraft/server/jsonrpc/api/MethodInfo.java
- 起始行号:L11
- 职责:
TODO
字段/常量
- 无
内部类/嵌套类型
net.minecraft.server.jsonrpc.api.MethodInfo.Named- 类型:
record - 修饰符:
public - 源码定位:
L43 - 说明:
TODO
- 类型:
构造器
public MethodInfo(String description, ParamInfo<Params> paramInfo, ResultInfo<Result> resultInfo) @ L12
- 构造器名:MethodInfo
- 源码定位:L12
- 修饰符:public
参数:
- description: String
- paramInfo: ParamInfo
- resultInfo: ResultInfo
说明:
TODO
方法
下面的方法块按源码顺序生成。
private static <Params> Optional<ParamInfo<Params>> toOptional(List<ParamInfo<Params>> list) @ L16
- 方法名:toOptional
- 源码定位:L16
- 返回类型:
Optional<ParamInfo > - 修饰符:private static
参数:
- list: List<ParamInfo
>
说明:
TODO
private static <Params> List<ParamInfo<Params>> toList(Optional<ParamInfo<Params>> opt) @ L20
- 方法名:toList
- 源码定位:L20
- 返回类型:
List<ParamInfo > - 修饰符:private static
参数:
- opt: Optional<ParamInfo
>
说明:
TODO
private static <Params> Codec<Optional<ParamInfo<Params>>> paramsTypedCodec() @ L24
- 方法名:paramsTypedCodec
- 源码定位:L24
- 返回类型:
Codec<Optional<ParamInfo >> - 修饰符:private static
参数:
- 无
说明:
TODO
private static <Params,Result> MapCodec<MethodInfo<Params,Result>> typedCodec() @ L28
- 方法名:typedCodec
- 源码定位:L28
- 返回类型:<Params,Result> MapCodec<MethodInfo<Params,Result>>
- 修饰符:private static
参数:
- 无
说明:
TODO
public MethodInfo.Named<Params,Result> named(Identifier name) @ L39
- 方法名:named
- 源码定位:L39
- 返回类型:MethodInfo.Named<Params,Result>
- 修饰符:public
参数:
- name: Identifier
说明:
TODO
代码
public record MethodInfo<Params, Result>(String description, Optional<ParamInfo<Params>> params, Optional<ResultInfo<Result>> result) {
public MethodInfo(String description, @Nullable ParamInfo<Params> paramInfo, @Nullable ResultInfo<Result> resultInfo) {
this(description, Optional.ofNullable(paramInfo), Optional.ofNullable(resultInfo));
}
private static <Params> Optional<ParamInfo<Params>> toOptional(List<ParamInfo<Params>> list) {
return list.isEmpty() ? Optional.empty() : Optional.of(list.getFirst());
}
private static <Params> List<ParamInfo<Params>> toList(Optional<ParamInfo<Params>> opt) {
return opt.isPresent() ? List.of(opt.get()) : List.of();
}
private static <Params> Codec<Optional<ParamInfo<Params>>> paramsTypedCodec() {
return ParamInfo.<Params>typedCodec().codec().listOf().xmap(MethodInfo::toOptional, MethodInfo::toList);
}
private static <Params, Result> MapCodec<MethodInfo<Params, Result>> typedCodec() {
return RecordCodecBuilder.mapCodec(
i -> i.group(
Codec.STRING.fieldOf("description").forGetter(MethodInfo::description),
MethodInfo.<Params>paramsTypedCodec().fieldOf("params").forGetter(MethodInfo::params),
ResultInfo.<Result>typedCodec().optionalFieldOf("result").forGetter(MethodInfo::result)
)
.apply(i, MethodInfo::new)
);
}
public MethodInfo.Named<Params, Result> named(Identifier name) {
return new MethodInfo.Named<>(name, this);
}
public record Named<Params, Result>(Identifier name, MethodInfo<Params, Result> contents) {
public static final Codec<MethodInfo.Named<?, ?>> CODEC = (Codec<MethodInfo.Named<?, ?>>)(Codec<?>)typedCodec();
public static <Params, Result> Codec<MethodInfo.Named<Params, Result>> typedCodec() {
return RecordCodecBuilder.create(
i -> i.group(
Identifier.CODEC.fieldOf("name").forGetter(MethodInfo.Named::name),
MethodInfo.<Params, Result>typedCodec().forGetter(MethodInfo.Named::contents)
)
.apply(i, MethodInfo.Named::new)
);
}
}
}引用的其他类
-
- 引用位置:
参数/返回值
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数/返回值
- 引用位置:
-
- 引用位置:
参数
- 引用位置: