org.bukkit.permissions.Permission类的使用及代码示例

x33g5p2x  于2022-01-26 转载在 其他  
字(11.5k)|赞(0)|评价(0)|浏览(177)

本文整理了Java中org.bukkit.permissions.Permission类的一些代码示例,展示了Permission类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Permission类的具体详情如下:
包路径:org.bukkit.permissions.Permission
类名称:Permission

Permission介绍

[英]Represents a unique permission that may be attached to a Permissible
[中]表示可附加到许可文件的唯一权限

代码示例

代码示例来源:origin: Bukkit/Bukkit

/**
 * Adds this permission to the specified parent permission.
 * <p>
 * If the parent permission does not exist, it will be created and
 * registered.
 *
 * @param name Name of the parent permission
 * @param value The value to set this permission to
 * @return Parent permission it created or loaded
 */
public Permission addParent(String name, boolean value) {
  PluginManager pm = Bukkit.getServer().getPluginManager();
  String lname = name.toLowerCase();
  Permission perm = pm.getPermission(lname);
  if (perm == null) {
    perm = new Permission(lname);
    pm.addPermission(perm);
  }
  addParent(perm, value);
  return perm;
}

代码示例来源:origin: Bukkit/Bukkit

public void recalculatePermissions() {
  clearPermissions();
  Set<Permission> defaults = Bukkit.getServer().getPluginManager().getDefaultPermissions(isOp());
  Bukkit.getServer().getPluginManager().subscribeToDefaultPerms(isOp(), parent);
  for (Permission perm : defaults) {
    String name = perm.getName().toLowerCase();
    permissions.put(name, new PermissionAttachmentInfo(parent, name, null, true));
    Bukkit.getServer().getPluginManager().subscribeToPermission(name, parent);
    calculateChildPermissions(perm.getChildren(), false, null);
  }
  for (PermissionAttachment attachment : attachments) {
    calculateChildPermissions(attachment.getPermissions(), false, attachment);
  }
}

代码示例来源:origin: Bukkit/Bukkit

public boolean hasPermission(String inName) {
  if (inName == null) {
    throw new IllegalArgumentException("Permission name cannot be null");
  }
  String name = inName.toLowerCase();
  if (isPermissionSet(name)) {
    return permissions.get(name).getValue();
  } else {
    Permission perm = Bukkit.getServer().getPluginManager().getPermission(name);
    if (perm != null) {
      return perm.getDefault().getValue(isOp());
    } else {
      return Permission.DEFAULT_PERMISSION.getValue(isOp());
    }
  }
}

代码示例来源:origin: Bukkit/Bukkit

/**
 * Adds this permission to the specified parent permission.
 *
 * @param perm Parent permission to register with
 * @param value The value to set this permission to
 */
public void addParent(Permission perm, boolean value) {
  perm.getChildren().put(getName(), value);
  perm.recalculatePermissibles();
}

代码示例来源:origin: Bukkit/Bukkit

public static Permission registerPermission(Permission perm, boolean withLegacy) {
  Permission result = perm;
  try {
    Bukkit.getPluginManager().addPermission(perm);
  } catch (IllegalArgumentException ex) {
    result = Bukkit.getPluginManager().getPermission(perm.getName());
  }
  if (withLegacy) {
    Permission legacy = new Permission(LEGACY_PREFIX + result.getName(), result.getDescription(), PermissionDefault.FALSE);
    legacy.getChildren().put(result.getName(), true);
    registerPermission(perm, false);
  }
  return result;
}

代码示例来源:origin: Bukkit/Bukkit

public static Permission registerPermission(String name, String desc, Permission parent) {
  Permission perm = registerPermission(name, desc);
  parent.getChildren().put(perm.getName(), true);
  return perm;
}

代码示例来源:origin: Multiverse/Multiverse-Core

private void addToRootPermission(String rootPerm, String permStringChopped) {
  Permission rootPermission = this.plugin.getServer().getPluginManager().getPermission(rootPerm);
  if (rootPermission == null) {
    rootPermission = new Permission(rootPerm);
    this.plugin.getServer().getPluginManager().addPermission(rootPermission);
  }
  rootPermission.getChildren().put(permStringChopped + ".*", true);
  this.plugin.getServer().getPluginManager().recalculatePermissionDefaults(rootPermission);
}

代码示例来源:origin: Bukkit/Bukkit

private void calculateChildPermissions(Map<String, Boolean> children, boolean invert, PermissionAttachment attachment) {
  Set<String> keys = children.keySet();
  for (String name : keys) {
    Permission perm = Bukkit.getServer().getPluginManager().getPermission(name);
    boolean value = children.get(name) ^ invert;
    String lname = name.toLowerCase();
    permissions.put(lname, new PermissionAttachmentInfo(parent, lname, attachment, value));
    Bukkit.getServer().getPluginManager().subscribeToPermission(name, parent);
    if (perm != null) {
      calculateChildPermissions(perm.getChildren(), !value, attachment);
    }
  }
}

代码示例来源:origin: NoCheatPlus/NoCheatPlus

private Permission fetchBukkitPermission() {
  // Create with lower case string representation anyway.
  final PluginManager pm = Bukkit.getPluginManager();
  Permission permission = pm.getPermission(lowerCaseStringRepresentation);
  if (permission == null) {
    // Assume this one doesn't have children etc.
    permission = new Permission(lowerCaseStringRepresentation, 
        PermissionUtil.AUTO_GENERATED, 
        PermissionDefault.FALSE // Cautious, perhaps.
        );
    pm.addPermission(permission);
  }
  return permission;
}

代码示例来源:origin: nsporillo/GlobalWarming

/**
 * Economy (soft-dependency on Vault)
 * - If a Vault-based economy was not found, disable the bounty system
 */
private static void setupEconomy() {
  if (Bukkit.getPluginManager().getPlugin("Vault") != null) {
    RegisteredServiceProvider<Economy> economyProvider = Bukkit.getServicesManager().getRegistration(Economy.class);
    if (economyProvider != null) {
      economy = economyProvider.getProvider();
    }
  }
  if (economy == null) {
    instance.getLogger().warning("Bounty-system [disabled], Vault economy not found");
    for (Permission permission : Bukkit.getPluginManager().getDefaultPermissions(false)) {
      if (permission.getName().startsWith("globalwarming.bounty")) {
        Bukkit.getPluginManager().getPermission(permission.getName())
          .setDefault(PermissionDefault.FALSE);
      }
    }
  } else {
    instance.getLogger().info("Bounty-system [enabled], Vault economy found");
  }
}

代码示例来源:origin: Multiverse/Multiverse-Core

private void ensureSecondNamespaceIsPrepared() {
  Permission special = this.plugin.getServer().getPluginManager().getPermission("mv.bypass.gamemode.*");
  if (special == null) {
    special = new Permission("mv.bypass.gamemode.*", PermissionDefault.FALSE);
    this.plugin.getServer().getPluginManager().addPermission(special);
  }
}

代码示例来源:origin: webbukkit/dynmap

String bukkitver = getServer().getVersion();
String mcver = "1.0.0";
int idx = bukkitver.indexOf("(MC: ");
List<Permission> pd = plugin.getDescription().getPermissions();
for(Permission p : pd) {
  perdefs.put(p.getName(), p.getDefault() == PermissionDefault.TRUE);
  pm.registerEvents(pl, this);
perTickLimit = core.getMaxTickUseMS() * 1000000;
getServer().getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
  public void run() {
    processTick();

代码示例来源:origin: NoCheatPlus/NoCheatPlus

final RegisteredPermission registeredChild, final PermissionDefault permissionDefault) {
final String childPermissionName = registeredChild.getStringRepresentation();
final PluginManager pm = Bukkit.getPluginManager();
Permission childPermission = pm.getPermission(childPermissionName);
if (childPermission == null) {
  childPermission = new Permission(childPermissionName, AUTO_GENERATED, permissionDefault);
  pm.addPermission(childPermission);
  Permission permission = pm.getPermission(permissionName);
  if (permission == null) {
    permission = new Permission(permissionName, AUTO_GENERATED, permissionDefault);
    pm.addPermission(permission);
  if (!permission.getChildren().containsKey(childPermissionName)) {
    childPermission.addParent(permission, true);

代码示例来源:origin: MilkBowl/Vault

@Override
public void run() {
  org.bukkit.permissions.Permission perm = getServer().getPluginManager().getPermission("vault.update");
  if (perm == null)
    perm = new org.bukkit.permissions.Permission("vault.update");
    perm.setDefault(PermissionDefault.OP);
    plugin.getServer().getPluginManager().addPermission(perm);
  perm.setDescription("Allows a user or the console to check for vault updates");
  getServer().getScheduler().runTaskTimerAsynchronously(plugin, new Runnable() {

代码示例来源:origin: NoCheatPlus/NoCheatPlus

checked.add(CommandUtil.getCommandLabel(label, false));
final PluginManager pm = Bukkit.getPluginManager();
Permission rootPerm = pm.getPermission(permissionBase);
if (rootPerm == null) {
  rootPerm = new Permission(permissionBase);
  pm.addPermission(rootPerm);
  Permission cmdPerm = pm.getPermission(cmdPermName);
  final boolean permRegistered = cmdPerm != null;
  if (!permRegistered) {
    cmdPerm = new Permission(cmdPermName);
    if (!cmdHadPerm) {
      cmdPerm.addParent(rootPerm, true);
    pm.addPermission(cmdPerm);
    changed.add(new CommandProtectionEntry(command, lcLabel, cmdPermName, cmdPerm.getDefault(), command.getPermissionMessage()));
  cmdPerm.setDefault(ops ? PermissionDefault.OP : PermissionDefault.FALSE);
  command.setPermissionMessage(permissionMessage);

代码示例来源:origin: EngineHub/WorldEdit

/**
 * Checks the permission from dinnerperms
 *
 * @param perms      Permissible to check for
 * @param permission The permission to check
 * @return -1 if the permission is explicitly denied, 1 if the permission is allowed,
 *         0 if the permission is denied by a default.
 */
public int internalHasPermission(Permissible perms, String permission) {
  if (perms.isPermissionSet(permission)) {
    return perms.hasPermission(permission) ? 1 : -1;
  } else {
    Permission perm = server.getPluginManager().getPermission(permission);
    if (perm != null) {
      return perm.getDefault().getValue(perms.isOp()) ? 1 : 0;
    } else {
      return 0;
    }
  }
}

代码示例来源:origin: DRE2N/DungeonsXL

/**
 * Registers the permissions.
 */
public static void register() {
  for (DPermission permission : values()) {
    Bukkit.getPluginManager().addPermission(new Permission(permission.getNode(), permission.isDefault()));
  }
}

代码示例来源:origin: NoCheatPlus/NoCheatPlus

public void restore() {
    // (Don't skip resetting, as there could be fall-back aliases.)
    //			Command registered = CommandUtil.getCommand(label);
    //			if (registered == null || registered != command) return;
    if (!label.equalsIgnoreCase(command.getLabel().trim().toLowerCase())) {
      command.setLabel(label);
    }
    command.setPermission(permission);
    if (permission != null && permissionDefault != null) {
      Permission perm = Bukkit.getPluginManager().getPermission(permission);
      if (perm != null && perm.getDefault() != permissionDefault) {
        perm.setDefault(permissionDefault);
      }
    }
    command.setPermissionMessage(permissionMessage);
  }
}

代码示例来源:origin: bergerkiller/BKCommonLib

@Override
  public boolean handlePermission(CommandSender sender, String permission) {
    org.bukkit.permissions.Permission perm = Bukkit.getPluginManager().getPermission(permission);
    if (perm == null) {
      return false;
    }
    switch (perm.getDefault()) {
      case TRUE : this.hasTRUE = true; break;
      case OP : this.hasOP = true; break;
      case NOT_OP : this.hasNOTOP = true; break;
      default: break;
    }
    if (hasOP && hasNOTOP) {
      hasTRUE = true;
    }
    // Quit checking if we found out it's TRUE
    return hasTRUE;
  }
}

代码示例来源:origin: Multiverse/Multiverse-Core

/**
 * Initializes permissions.
 */
private void initPerms() {
  this.permission = new Permission("multiverse.access." + this.getName(), "Allows access to " + this.getName(), PermissionDefault.OP);
  // This guy is special. He shouldn't be added to any parent perms.
  this.ignoreperm = new Permission("mv.bypass.gamemode." + this.getName(),
      "Allows players with this permission to ignore gamemode changes.", PermissionDefault.FALSE);
  this.exempt = new Permission("multiverse.exempt." + this.getName(),
      "A player who has this does not pay to enter this world, or use any MV portals in it " + this.getName(), PermissionDefault.OP);
  this.limitbypassperm = new Permission("mv.bypass.playerlimit." + this.getName(),
      "A player who can enter this world regardless of wether its full", PermissionDefault.OP);
  try {
    this.plugin.getServer().getPluginManager().addPermission(this.permission);
    this.plugin.getServer().getPluginManager().addPermission(this.exempt);
    this.plugin.getServer().getPluginManager().addPermission(this.ignoreperm);
    this.plugin.getServer().getPluginManager().addPermission(this.limitbypassperm);
    // Add the permission and exempt to parents.
    this.addToUpperLists(this.permission);
    // Add ignore to it's parent:
    this.ignoreperm.addParent("mv.bypass.gamemode.*", true);
    // Add limit bypass to it's parent
    this.limitbypassperm.addParent("mv.bypass.playerlimit.*", true);
  } catch (IllegalArgumentException e) {
    this.plugin.log(Level.FINER, "Permissions nodes were already added for " + this.name);
  }
}

相关文章