From 6476158462650c9dea305c2e3892e976a258a529 Mon Sep 17 00:00:00 2001 From: ElgarL Date: Sat, 17 Mar 2012 15:56:40 +0000 Subject: 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. --- .../groupmanager/permissions/BukkitPermissions.java | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) (limited to 'EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java') 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 attachments = new HashMap(); + protected WeakHashMap attachments = new WeakHashMap(); protected LinkedHashMap registeredPermissions = new LinkedHashMap(); protected GroupManager plugin; protected boolean dumpAllPermissions = true; @@ -368,14 +368,6 @@ public class BukkitPermissions { updatePermissions(event.getPlayer(), event.getPlayer().getWorld().getName()); } - @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()); -- cgit v1.2.3