Fork of Poseidon providing Bukkit #1060 to older Beta versions (b1.0-b1.7.3)
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}