LevelBasedPermissionSet.java

net.minecraft.server.permissions.LevelBasedPermissionSet

信息

  • 全限定名:net.minecraft.server.permissions.LevelBasedPermissionSet
  • 类型:public interface
  • 包:net.minecraft.server.permissions
  • 源码路径:src/main/java/net/minecraft/server/permissions/LevelBasedPermissionSet.java
  • 起始行号:L3
  • 继承:PermissionSet
  • 职责:

    TODO

字段/常量

  • ALL

    • 类型: LevelBasedPermissionSet
    • 修饰符: package-private
    • 源码定位: L4
    • 说明:

      TODO

  • MODERATOR

    • 类型: LevelBasedPermissionSet
    • 修饰符: package-private
    • 源码定位: L6
    • 说明:

      TODO

  • GAMEMASTER

    • 类型: LevelBasedPermissionSet
    • 修饰符: package-private
    • 源码定位: L7
    • 说明:

      TODO

  • ADMIN

    • 类型: LevelBasedPermissionSet
    • 修饰符: package-private
    • 源码定位: L8
    • 说明:

      TODO

  • OWNER

    • 类型: LevelBasedPermissionSet
    • 修饰符: package-private
    • 源码定位: L9
    • 说明:

      TODO

内部类/嵌套类型

构造器

方法

下面的方法块按源码顺序生成。

PermissionLevel level() @ L11

  • 方法名:level
  • 源码定位:L11
  • 返回类型:PermissionLevel
  • 修饰符:package-private

参数:

说明:

TODO

default boolean hasPermission(Permission permission) @ L13

  • 方法名:hasPermission
  • 源码定位:L13
  • 返回类型:boolean
  • 修饰符:default

参数:

  • permission: Permission

说明:

TODO

default PermissionSet union(PermissionSet other) @ L22

  • 方法名:union
  • 源码定位:L22
  • 返回类型:PermissionSet
  • 修饰符:default

参数:

  • other: PermissionSet

说明:

TODO

static LevelBasedPermissionSet forLevel(PermissionLevel level) @ L31

  • 方法名:forLevel
  • 源码定位:L31
  • 返回类型:LevelBasedPermissionSet
  • 修饰符:static

参数:

  • level: PermissionLevel

说明:

TODO

private static LevelBasedPermissionSet create(PermissionLevel level) @ L41

  • 方法名:create
  • 源码定位:L41
  • 返回类型:LevelBasedPermissionSet
  • 修饰符:private static

参数:

  • level: PermissionLevel

说明:

TODO

代码

public interface LevelBasedPermissionSet extends PermissionSet {
    @Deprecated
    LevelBasedPermissionSet ALL = create(PermissionLevel.ALL);
    LevelBasedPermissionSet MODERATOR = create(PermissionLevel.MODERATORS);
    LevelBasedPermissionSet GAMEMASTER = create(PermissionLevel.GAMEMASTERS);
    LevelBasedPermissionSet ADMIN = create(PermissionLevel.ADMINS);
    LevelBasedPermissionSet OWNER = create(PermissionLevel.OWNERS);
 
    PermissionLevel level();
 
    @Override
    default boolean hasPermission(Permission permission) {
        if (permission instanceof Permission.HasCommandLevel levelCheck) {
            return this.level().isEqualOrHigherThan(levelCheck.level());
        } else {
            return permission.equals(Permissions.COMMANDS_ENTITY_SELECTORS) ? this.level().isEqualOrHigherThan(PermissionLevel.GAMEMASTERS) : false;
        }
    }
 
    @Override
    default PermissionSet union(PermissionSet other) {
        if (other instanceof LevelBasedPermissionSet otherSet) {
            return this.level().isEqualOrHigherThan(otherSet.level()) ? otherSet : this;
        } else {
            return PermissionSet.super.union(other);
        }
    }
 
    static LevelBasedPermissionSet forLevel(PermissionLevel level) {
        return switch (level) {
            case ALL -> ALL;
            case MODERATORS -> MODERATOR;
            case GAMEMASTERS -> GAMEMASTER;
            case ADMINS -> ADMIN;
            case OWNERS -> OWNER;
        };
    }
 
    private static LevelBasedPermissionSet create(PermissionLevel level) {
        return new LevelBasedPermissionSet() {
            @Override
            public PermissionLevel level() {
                return level;
            }
 
            @Override
            public String toString() {
                return "permission level: " + level.name();
            }
        };
    }
}

引用的其他类