diff options
author | snowleo <schneeleo@gmail.com> | 2012-04-11 21:57:58 +0200 |
---|---|---|
committer | snowleo <schneeleo@gmail.com> | 2012-04-11 21:57:58 +0200 |
commit | 3f9e19d279c7f9534733b9868ca24a11e7e0e19b (patch) | |
tree | fff53a637c0e967ab1762901fa44176ab644e6ec /EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java | |
parent | c9e64d9e46c3e97b4be897b4449fdad667753d8e (diff) | |
parent | 25759064ff4c518193185fe3e993634408230eb7 (diff) | |
download | Essentials-3f9e19d279c7f9534733b9868ca24a11e7e0e19b.tar Essentials-3f9e19d279c7f9534733b9868ca24a11e7e0e19b.tar.gz Essentials-3f9e19d279c7f9534733b9868ca24a11e7e0e19b.tar.lz Essentials-3f9e19d279c7f9534733b9868ca24a11e7e0e19b.tar.xz Essentials-3f9e19d279c7f9534733b9868ca24a11e7e0e19b.zip |
Merge branch 'refs/heads/groupmanager'
Conflicts:
EssentialsGroupManager/src/globalgroups.yml
Diffstat (limited to 'EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java')
-rw-r--r-- | EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java index 5c711351e..516679544 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java @@ -20,6 +20,7 @@ import java.lang.reflect.Field; import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
@@ -351,10 +352,38 @@ public class BukkitPermissions { */
private void removeAttachment(Player player) {
if (attachments.containsKey(player)) {
- player.removeAttachment(attachments.get(player));
+ try {
+ player.removeAttachment(attachments.get(player));
+ } catch (IllegalArgumentException e) {
+ /*
+ * Failed to remove attachment
+ * This usually means Bukkit no longer knows of it.
+ */
+ }
attachments.remove(player);
}
}
+
+ /**
+ * Remove all attachments in case of a restart or reload.
+ */
+ public void removeAllAttachments() {
+
+ Iterator<Player> itr = attachments.keySet().iterator();
+
+ while (itr.hasNext()){
+ Player player = itr.next();
+ try {
+ player.removeAttachment(attachments.get(player));
+ } catch (IllegalArgumentException e) {
+ /*
+ * Failed to remove attachment
+ * This usually means Bukkit no longer knows of it.
+ */
+ }
+ }
+ attachments.clear();
+ }
/**
* Player events tracked to cause Superperms updates
|