下面列出了org.bukkit.permissions.Permission#addParent ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
/**
* Add an option parser to this plugin
* @param parser The parser to add
*/
public void addOptionParser(OptionParser parser) {
optionParsers.add(parser);
if (parser instanceof SimpleOptionParser) {
Permission parent = getServer().getPluginManager().getPermission("randomteleport.manual.option.*");
for (String alias : ((SimpleOptionParser) parser).getAliases()) {
Permission perm = new Permission("randomteleport.manual.option." + alias, PermissionDefault.OP);
perm.addParent(parent, true);
try {
getServer().getPluginManager().addPermission(perm);
} catch (IllegalArgumentException ignored) {} // duplicate
}
}
}
void setupPermissions(String name, Permission parent) {
String permName = parent.getName();
if (permName.endsWith(".*")) {
permName = permName.substring(0, permName.length() - 2);
}
_perm = new Permission(permName + "." + name);
_perm.addParent(parent, true);
for (Entry<String, MySubCommand> entry : _subCommands.entrySet()) {
entry.getValue().setupPermissions(entry.getKey(), _perm);
}
Bukkit.getPluginManager().addPermission(_perm);
parent.recalculatePermissibles();
}
protected Permission createChannelPermission(Party party) {
Permission permission = new Permission("pgm.chat.team." + this.match.getId() + '-' + party.hashCode() + ".receive", PermissionDefault.FALSE);
getMatch().getPluginManager().addPermission(permission);
permission.addParent(matchListeningPermission, true);
return permission;
}
private void writePermissions() {
Permission mainNode = new Permission("ce.*", "The main permission node for Custom Enchantments.", PermissionDefault.OP);
Permission runecrafting = new Permission("ce.runecrafting", "The permission for Runecrafting.", PermissionDefault.OP);
runecrafting.addParent(mainNode, true);
Permission cmdNode = new Permission("ce.cmd.*", "The permission node for CE's commands.", PermissionDefault.OP);
Permission enchNode = new Permission("ce.ench.*", "The permission node for CE's EnchantManager.getEnchantments().", PermissionDefault.OP);
Permission itemNode = new Permission("ce.item.*", "The permission node for CE's items.", PermissionDefault.OP);
cmdNode.addParent(mainNode, true);
enchNode.addParent(mainNode, true);
itemNode.addParent(mainNode, true);
Permission cmdMenu = new Permission("ce.cmd.menu", "The permission for the CE command 'menu'");
Permission cmdList = new Permission("ce.cmd.reload", "The permission for the CE command 'reload'");
Permission cmdGive = new Permission("ce.cmd.give", "The permission for the CE command 'give'");
Permission cmdChange = new Permission("ce.cmd.change", "The permission for the CE command 'change'");
Permission cmdEnchant = new Permission("ce.cmd.enchant", "The permission for the CE command 'enchant'");
Permission cmdRunecraft = new Permission("ce.cmd.runecrafting", "The permission for the CE command 'runecrafting'");
cmdMenu.addParent(cmdNode, true);
cmdList.addParent(cmdNode, true);
cmdGive.addParent(cmdNode, true);
cmdChange.addParent(cmdNode, true);
cmdEnchant.addParent(cmdNode, true);
cmdRunecraft.addParent(cmdNode, true);
Bukkit.getServer().getPluginManager().addPermission(mainNode);
Bukkit.getServer().getPluginManager().addPermission(runecrafting);
Bukkit.getServer().getPluginManager().addPermission(cmdNode);
Bukkit.getServer().getPluginManager().addPermission(enchNode);
Bukkit.getServer().getPluginManager().addPermission(itemNode);
Bukkit.getServer().getPluginManager().addPermission(cmdMenu);
Bukkit.getServer().getPluginManager().addPermission(cmdList);
Bukkit.getServer().getPluginManager().addPermission(cmdGive);
Bukkit.getServer().getPluginManager().addPermission(cmdChange);
Bukkit.getServer().getPluginManager().addPermission(cmdEnchant);
Bukkit.getServer().getPluginManager().addPermission(cmdRunecraft);
for (CItem ci : items) {
Permission itemTemp = new Permission("ce.item." + ci.getPermissionName(), "The permission for the CE Item '" + ci.getOriginalName() + "'.");
itemTemp.addParent(itemNode, true);
Bukkit.getServer().getPluginManager().addPermission(itemTemp);
}
for (CEnchantment ce : EnchantManager.getEnchantments()) {
Permission enchTemp = new Permission("ce.ench." + ce.getPermissionName(), "The permission for the CE Enchantment '" + ce.getOriginalName() + "'.");
enchTemp.addParent(enchNode, true);
Bukkit.getServer().getPluginManager().addPermission(enchTemp);
}
}
public static void initialize() {
// Find NBTEditor plugin...
if (_plugin != null || (_plugin = Bukkit.getPluginManager().getPlugin("NBTEditor")) == null) {
return;
}
Permission mainPermission = new Permission("nbteditor.customitems.*");
mainPermission.addParent(UtilsMc.getRootPermission(_plugin), true);
_usePermission = new Permission("nbteditor.customitems.use.*");
_usePermission.addParent(mainPermission, true);
Bukkit.getPluginManager().addPermission(_usePermission);
_worldOverridePermission = new Permission("nbteditor.customitems.world-override.*");
_worldOverridePermission.addParent(mainPermission, true);
Bukkit.getPluginManager().addPermission(_worldOverridePermission);
_mainListener = new Listener() {
@EventHandler
private void onInventoryClick(InventoryClickEvent event) {
if (event.getInventory().getType() == InventoryType.ANVIL && getCustomItem(event.getCurrentItem()) != null) {
event.setCancelled(true);
}
}
@EventHandler
private void onPluginDisable(PluginDisableEvent event) {
Plugin plugin = event.getPlugin();
if (plugin == _plugin) {
HandlerList.unregisterAll(_mainListener);
HandlerList.unregisterAll(_listener);
_plugin = null;
_mainListener = null;
_container.clear();
_configsByGroup.clear();
} else {
_container.remove(plugin);
}
}
};
Bukkit.getPluginManager().registerEvents(_mainListener, _plugin);
Bukkit.getPluginManager().registerEvents(_listener, _plugin);
}