diff options
author | ElgarL <ElgarL@palmergames.com> | 2012-03-17 15:56:40 +0000 |
---|---|---|
committer | ElgarL <ElgarL@palmergames.com> | 2012-03-17 15:56:40 +0000 |
commit | e036ecf9247218da714dcb616e34269ac6cbbce3 (patch) | |
tree | 7805480ae5184148f5685be9cf8c913b6b693c60 /EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions | |
parent | 20b11318112033b50efcf96ab43505a93d285b00 (diff) | |
download | Essentials-e036ecf9247218da714dcb616e34269ac6cbbce3.tar Essentials-e036ecf9247218da714dcb616e34269ac6cbbce3.tar.gz Essentials-e036ecf9247218da714dcb616e34269ac6cbbce3.tar.lz Essentials-e036ecf9247218da714dcb616e34269ac6cbbce3.tar.xz Essentials-e036ecf9247218da714dcb616e34269ac6cbbce3.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')
-rw-r--r-- | EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java | 12 |
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());
}
|