summaryrefslogtreecommitdiffstats
path: root/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java
diff options
context:
space:
mode:
authorsnowleo <schneeleo@gmail.com>2012-04-11 21:57:58 +0200
committersnowleo <schneeleo@gmail.com>2012-04-11 21:57:58 +0200
commit3f9e19d279c7f9534733b9868ca24a11e7e0e19b (patch)
treefff53a637c0e967ab1762901fa44176ab644e6ec /EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java
parentc9e64d9e46c3e97b4be897b4449fdad667753d8e (diff)
parent25759064ff4c518193185fe3e993634408230eb7 (diff)
downloadEssentials-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.java31
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