From 78d4987d5d86e13b5fa36f20adb658e8459b043b Mon Sep 17 00:00:00 2001 From: ElgarL Date: Sat, 16 Jun 2012 19:04:40 +0100 Subject: Clear the player reference on logout so it's refreshed upon a reconnect. --- .../src/org/anjocaido/groupmanager/data/User.java | 4 ++++ .../anjocaido/groupmanager/permissions/BukkitPermissions.java | 9 +++++++++ 2 files changed, 13 insertions(+) (limited to 'EssentialsGroupManager') diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java index c10658fb0..77cca7b1e 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java @@ -256,6 +256,10 @@ public class User extends DataUnit implements Cloneable { } } + public void clearPlayer() { + bukkitPlayer = null; + } + public User updatePlayer(Player player) { if (player != null) { diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java index e8322c391..bd48d5079 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java @@ -31,6 +31,7 @@ import java.util.Set; import java.util.WeakHashMap; import org.anjocaido.groupmanager.GroupManager; +import org.anjocaido.groupmanager.data.User; import org.bukkit.Bukkit; import org.bukkit.entity.Player; @@ -441,6 +442,10 @@ public class BukkitPermissions { Player player = event.getPlayer(); + User user = plugin.getWorldsHolder().getWorldData(player.getWorld().getName()).getUser(player.getName()); + if (user != null) + user.clearPlayer(); + /* * force remove any attachments as bukkit may not */ @@ -454,6 +459,10 @@ public class BukkitPermissions { return; Player player = event.getPlayer(); + + User user = plugin.getWorldsHolder().getWorldData(player.getWorld().getName()).getUser(player.getName()); + if (user != null) + user.clearPlayer(); /* * force remove any attachments as bukkit may not -- cgit v1.2.3 From 5683ea35fc60eafe70753fb9b2261b8537ed0b0f Mon Sep 17 00:00:00 2001 From: ElgarL Date: Sat, 16 Jun 2012 19:12:54 +0100 Subject: Better update for the User object player reference. --- .../src/org/anjocaido/groupmanager/data/User.java | 7 +------ .../groupmanager/permissions/BukkitPermissions.java | 13 +++++-------- 2 files changed, 6 insertions(+), 14 deletions(-) (limited to 'EssentialsGroupManager') diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java index 77cca7b1e..6c74c2e50 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java @@ -256,15 +256,10 @@ public class User extends DataUnit implements Cloneable { } } - public void clearPlayer() { - bukkitPlayer = null; - } public User updatePlayer(Player player) { - if (player != null) { - bukkitPlayer = player; - } + bukkitPlayer = player; return this; } diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java index bd48d5079..05e152286 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java @@ -145,6 +145,11 @@ public class BukkitPermissions { if (player == null || !GroupManager.isLoaded()) { return; } + + // Reset the User objects player reference. + User user = plugin.getWorldsHolder().getWorldData(player.getWorld().getName()).getUser(player.getName()); + if (user != null) + user.updatePlayer(player); PermissionAttachment attachment; @@ -441,10 +446,6 @@ public class BukkitPermissions { public void onPlayerKick(PlayerKickEvent event) { Player player = event.getPlayer(); - - User user = plugin.getWorldsHolder().getWorldData(player.getWorld().getName()).getUser(player.getName()); - if (user != null) - user.clearPlayer(); /* * force remove any attachments as bukkit may not @@ -459,10 +460,6 @@ public class BukkitPermissions { return; Player player = event.getPlayer(); - - User user = plugin.getWorldsHolder().getWorldData(player.getWorld().getName()).getUser(player.getName()); - if (user != null) - user.clearPlayer(); /* * force remove any attachments as bukkit may not -- cgit v1.2.3