Fork of Poseidon providing Bukkit #1060 to older Beta versions (b1.0-b1.7.3)
at develop 85 lines 3.2 kB view raw
1package org.bukkit.util.permissions; 2 3import org.bukkit.Bukkit; 4import org.bukkit.permissions.Permission; 5import org.bukkit.permissions.PermissionDefault; 6 7import java.util.Map; 8 9public final class DefaultPermissions { 10 private static final String ROOT = "craftbukkit"; 11 private static final String PREFIX = ROOT + "."; 12 private static final String LEGACY_PREFIX = "craft"; 13 14 private DefaultPermissions() { 15 } 16 17 public static Permission registerPermission(Permission perm) { 18 return registerPermission(perm, true); 19 } 20 21 public static Permission registerPermission(Permission perm, boolean withLegacy) { 22 Permission result = perm; 23 24 try { 25 Bukkit.getPluginManager().addPermission(perm); 26 } catch (IllegalArgumentException ex) { 27 result = Bukkit.getPluginManager().getPermission(perm.getName()); 28 } 29 30 if (withLegacy) { 31 Permission legacy = new Permission(LEGACY_PREFIX + result.getName(), result.getDescription(), PermissionDefault.FALSE); 32 legacy.getChildren().put(result.getName(), true); 33 registerPermission(perm, false); 34 } 35 36 return result; 37 } 38 39 public static Permission registerPermission(Permission perm, Permission parent) { 40 parent.getChildren().put(perm.getName(), true); 41 return registerPermission(perm); 42 } 43 44 public static Permission registerPermission(String name, String desc) { 45 Permission perm = registerPermission(new Permission(name, desc)); 46 return perm; 47 } 48 49 public static Permission registerPermission(String name, String desc, Permission parent) { 50 Permission perm = registerPermission(name, desc); 51 parent.getChildren().put(perm.getName(), true); 52 return perm; 53 } 54 55 public static Permission registerPermission(String name, String desc, PermissionDefault def) { 56 Permission perm = registerPermission(new Permission(name, desc, def)); 57 return perm; 58 } 59 60 public static Permission registerPermission(String name, String desc, PermissionDefault def, Permission parent) { 61 Permission perm = registerPermission(name, desc, def); 62 parent.getChildren().put(perm.getName(), true); 63 return perm; 64 } 65 66 public static Permission registerPermission(String name, String desc, PermissionDefault def, Map<String, Boolean> children) { 67 Permission perm = registerPermission(new Permission(name, desc, def, children)); 68 return perm; 69 } 70 71 public static Permission registerPermission(String name, String desc, PermissionDefault def, Map<String, Boolean> children, Permission parent) { 72 Permission perm = registerPermission(name, desc, def, children); 73 parent.getChildren().put(perm.getName(), true); 74 return perm; 75 } 76 77 public static void registerCorePermissions() { 78 Permission parent = registerPermission(ROOT, "Gives the user the ability to use all Craftbukkit utilities and commands"); 79 80 CommandPermissions.registerPermissions(parent); 81 BroadcastPermissions.registerPermissions(parent); 82 83 parent.recalculatePermissibles(); 84 } 85}