Bukkit  1.4.7-R1.0
 All Classes Namespaces Files Functions Variables Enumerator Pages
PermissionAttachment.java
Go to the documentation of this file.
1 package org.bukkit.permissions;
2 
3 import java.util.LinkedHashMap;
4 import java.util.Map;
5 import org.bukkit.plugin.Plugin;
6 
10 public class PermissionAttachment {
11  private PermissionRemovedExecutor removed;
12  private final Map<String, Boolean> permissions = new LinkedHashMap<String, Boolean>();
13  private final Permissible permissible;
14  private final Plugin plugin;
15 
17  if (plugin == null) {
18  throw new IllegalArgumentException("Plugin cannot be null");
19  } else if (!plugin.isEnabled()) {
20  throw new IllegalArgumentException("Plugin " + plugin.getDescription().getFullName() + " is disabled");
21  }
22 
23  this.permissible = Permissible;
24  this.plugin = plugin;
25  }
26 
32  public Plugin getPlugin() {
33  return plugin;
34  }
35 
42  removed = ex;
43  }
44 
51  return removed;
52  }
53 
60  return permissible;
61  }
62 
70  public Map<String, Boolean> getPermissions() {
71  return new LinkedHashMap<String, Boolean>(permissions);
72  }
73 
80  public void setPermission(String name, boolean value) {
81  permissions.put(name.toLowerCase(), value);
82  permissible.recalculatePermissions();
83  }
84 
91  public void setPermission(Permission perm, boolean value) {
92  setPermission(perm.getName(), value);
93  permissible.recalculatePermissions();
94  }
95 
103  public void unsetPermission(String name) {
104  permissions.remove(name.toLowerCase());
105  permissible.recalculatePermissions();
106  }
107 
115  public void unsetPermission(Permission perm) {
116  unsetPermission(perm.getName());
117  permissible.recalculatePermissions();
118  }
119 
125  public boolean remove() {
126  try {
127  permissible.removeAttachment(this);
128  return true;
129  } catch (IllegalArgumentException ex) {
130  return false;
131  }
132  }
133 }