1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
package org.bukkit.permissions;
import java.util.Set;
import org.bukkit.plugin.Plugin;
/**
* Represents an object that may be assigned permissions
*/
public interface Permissible extends ServerOperator {
/**
* Checks if this object contains an override for the specified permission, by fully qualified name
*
* @param name Name of the permission
* @return true if the permission is set, otherwise false
*/
public boolean isPermissionSet(String name);
/**
* Checks if this object contains an override for the specified {@link Permission}
*
* @param perm Permission to check
* @return true if the permission is set, otherwise false
*/
public boolean isPermissionSet(Permission perm);
/**
* Gets the value of the specified permission, if set.
* <p />
* If a permission override is not set on this object, the default value of the permission will be returned.
*
* @param name Name of the permission
* @return Value of the permission
*/
public boolean hasPermission(String name);
/**
* Gets the value of the specified permission, if set.
* <p />
* If a permission override is not set on this object, the default value of the permission will be returned
*
* @param perm Permission to get
* @return Value of the permission
*/
public boolean hasPermission(Permission perm);
/**
* Adds a new {@link PermissionAttachment} with a single permission by name and value
*
* @param plugin Plugin responsible for this attachment, may not be null or disabled
* @param name Name of the permission to attach
* @param value Value of the permission
* @return The PermissionAttachment that was just created
*/
public PermissionAttachment addAttachment(Plugin plugin, String name, boolean value);
/**
* Adds a new empty {@link PermissionAttachment} to this object
*
* @param plugin Plugin responsible for this attachment, may not be null or disabled
* @return The PermissionAttachment that was just created
*/
public PermissionAttachment addAttachment(Plugin plugin);
/**
* Temporarily adds a new {@link PermissionAttachment} with a single permission by name and value
*
* @param plugin Plugin responsible for this attachment, may not be null or disabled
* @param name Name of the permission to attach
* @param value Value of the permission
* @param ticks Amount of ticks to automatically remove this attachment after
* @return The PermissionAttachment that was just created
*/
public PermissionAttachment addAttachment(Plugin plugin, String name, boolean value, int ticks);
/**
* Temporarily adds a new empty {@link PermissionAttachment} to this object
*
* @param plugin Plugin responsible for this attachment, may not be null or disabled
* @param ticks Amount of ticks to automatically remove this attachment after
* @return The PermissionAttachment that was just created
*/
public PermissionAttachment addAttachment(Plugin plugin, int ticks);
/**
* Removes the given {@link PermissionAttachment} from this object
*
* @param attachment Attachment to remove
* @throws IllegalArgumentException Thrown when the specified attachment isn't part of this object
*/
public void removeAttachment(PermissionAttachment attachment);
/**
* Recalculates the permissions for this object, if the attachments have changed values.
* <p />
* This should very rarely need to be called from a plugin.
*/
public void recalculatePermissions();
/**
* Gets a set containing all of the permissions currently in effect by this object
*
* @return Set of currently effective permissions
*/
public Set<PermissionAttachmentInfo> getEffectivePermissions();
}
|