Permission.java
net.minecraft.server.permissions.Permission
信息
- 全限定名:net.minecraft.server.permissions.Permission
- 类型:public interface
- 包:net.minecraft.server.permissions
- 源码路径:src/main/java/net/minecraft/server/permissions/Permission.java
- 起始行号:L10
- 职责:
TODO
字段/常量
-
FULL_CODEC- 类型:
Codec<Permission> - 修饰符:
package-private - 源码定位:
L11 - 说明:
TODO
- 类型:
-
CODEC- 类型:
Codec<Permission> - 修饰符:
package-private - 源码定位:
L12 - 说明:
TODO
- 类型:
内部类/嵌套类型
-
net.minecraft.server.permissions.Permission.Atom- 类型:
record - 修饰符:
public - 源码定位:
L20 - 说明:
TODO
- 类型:
-
net.minecraft.server.permissions.Permission.HasCommandLevel- 类型:
record - 修饰符:
public - 源码定位:
L39 - 说明:
TODO
- 类型:
构造器
- 无
方法
下面的方法块按源码顺序生成。
MapCodec<?extends Permission> codec() @ L18
- 方法名:codec
- 源码定位:L18
- 返回类型:MapCodec<?extends Permission>
- 修饰符:package-private
参数:
- 无
说明:
TODO
代码
public interface Permission {
Codec<Permission> FULL_CODEC = BuiltInRegistries.PERMISSION_TYPE.byNameCodec().dispatch(Permission::codec, c -> c);
Codec<Permission> CODEC = Codec.either(FULL_CODEC, Identifier.CODEC)
.xmap(
e -> e.map(permission -> (Permission)permission, Permission.Atom::create),
permission -> permission instanceof Permission.Atom atom ? Either.right(atom.id()) : Either.left(permission)
);
MapCodec<? extends Permission> codec();
public record Atom(Identifier id) implements Permission {
public static final MapCodec<Permission.Atom> MAP_CODEC = RecordCodecBuilder.mapCodec(
i -> i.group(Identifier.CODEC.fieldOf("id").forGetter(Permission.Atom::id)).apply(i, Permission.Atom::new)
);
@Override
public MapCodec<Permission.Atom> codec() {
return MAP_CODEC;
}
public static Permission.Atom create(String name) {
return create(Identifier.withDefaultNamespace(name));
}
public static Permission.Atom create(Identifier id) {
return new Permission.Atom(id);
}
}
public record HasCommandLevel(PermissionLevel level) implements Permission {
public static final MapCodec<Permission.HasCommandLevel> MAP_CODEC = RecordCodecBuilder.mapCodec(
i -> i.group(PermissionLevel.CODEC.fieldOf("level").forGetter(Permission.HasCommandLevel::level)).apply(i, Permission.HasCommandLevel::new)
);
@Override
public MapCodec<Permission.HasCommandLevel> codec() {
return MAP_CODEC;
}
}
}引用的其他类
- Identifier
- 引用位置:
方法调用 - 关联成员:
Identifier.withDefaultNamespace()
- 引用位置: