summaryrefslogtreecommitdiffstats
path: root/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java
diff options
context:
space:
mode:
authorElgarL <ElgarL@palmergames.com>2012-03-17 15:56:40 +0000
committerElgarL <ElgarL@palmergames.com>2012-03-17 15:56:40 +0000
commit6476158462650c9dea305c2e3892e976a258a529 (patch)
tree1d74751993e91cfc119c867894865bee6dff0ff3 /EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java
parentb72083fb186504b88aad84c9b4df4b5349602c77 (diff)
downloadEssentials-6476158462650c9dea305c2e3892e976a258a529.tar
Essentials-6476158462650c9dea305c2e3892e976a258a529.tar.gz
Essentials-6476158462650c9dea305c2e3892e976a258a529.tar.lz
Essentials-6476158462650c9dea305c2e3892e976a258a529.tar.xz
Essentials-6476158462650c9dea305c2e3892e976a258a529.zip
Don't remove an attachment on a player leaving as Bukkit never forgets
it. This fixes non mirrored permissions being messed up if a player relogs.
Diffstat (limited to 'EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java')
-rw-r--r--EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java12
1 files changed, 2 insertions, 10 deletions
diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java
index 0b6148900..dc08168dc 100644
--- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java
+++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java
@@ -26,6 +26,7 @@ import java.util.List;
import java.util.ListIterator;
import java.util.Map;
import java.util.Set;
+import java.util.WeakHashMap;
import org.anjocaido.groupmanager.GroupManager;
@@ -37,7 +38,6 @@ import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerChangedWorldEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerKickEvent;
-import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.event.server.PluginDisableEvent;
import org.bukkit.event.server.PluginEnableEvent;
import org.bukkit.permissions.Permission;
@@ -54,7 +54,7 @@ import org.bukkit.plugin.PluginManager;
*/
public class BukkitPermissions {
- protected Map<Player, PermissionAttachment> attachments = new HashMap<Player, PermissionAttachment>();
+ protected WeakHashMap<Player, PermissionAttachment> attachments = new WeakHashMap<Player, PermissionAttachment>();
protected LinkedHashMap<String, Permission> registeredPermissions = new LinkedHashMap<String, Permission>();
protected GroupManager plugin;
protected boolean dumpAllPermissions = true;
@@ -369,14 +369,6 @@ public class BukkitPermissions {
}
@EventHandler(priority = EventPriority.LOWEST)
- public void onPlayerQuit(PlayerQuitEvent event) {
- if (!GroupManager.isLoaded())
- return;
-
- attachments.remove(event.getPlayer());
- }
-
- @EventHandler(priority = EventPriority.LOWEST)
public void onPlayerKick(PlayerKickEvent event) {
attachments.remove(event.getPlayer());
}