diff options
author | ElgarL <ElgarL@palmergames.com> | 2012-01-22 23:46:26 +0000 |
---|---|---|
committer | ElgarL <ElgarL@palmergames.com> | 2012-01-22 23:46:26 +0000 |
commit | 125ea7c701c365c0a903c436ef92577742eaad5f (patch) | |
tree | 8d8a38fc8c5d9912e0207d2b12380796a108cff5 /EssentialsGroupManager/src/org | |
parent | 6e03ea7b7deee8923d0c6804c105a3595838af9b (diff) | |
download | Essentials-125ea7c701c365c0a903c436ef92577742eaad5f.tar Essentials-125ea7c701c365c0a903c436ef92577742eaad5f.tar.gz Essentials-125ea7c701c365c0a903c436ef92577742eaad5f.tar.lz Essentials-125ea7c701c365c0a903c436ef92577742eaad5f.tar.xz Essentials-125ea7c701c365c0a903c436ef92577742eaad5f.zip |
Fixed infinite loop error on player join.
Optimized code to only update the player logging in instead of all
players online.
Diffstat (limited to 'EssentialsGroupManager/src/org')
-rw-r--r-- | EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java | 12 | ||||
-rw-r--r-- | EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java | 11 |
2 files changed, 15 insertions, 8 deletions
diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java index d41f96b0d..fd66bcfa2 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java @@ -114,7 +114,7 @@ public class User extends DataUnit implements Cloneable { flagAsChanged(); if (GroupManager.isLoaded()) if (!GroupManager.BukkitPermissions.isPlayer_join()) - GroupManager.BukkitPermissions.updateAllPlayers(); + GroupManager.BukkitPermissions.updatePlayer(getBukkitPlayer()); } /** @@ -131,7 +131,7 @@ public class User extends DataUnit implements Cloneable { flagAsChanged(); if (GroupManager.isLoaded()) { if (!GroupManager.BukkitPermissions.isPlayer_join()) - GroupManager.BukkitPermissions.updateAllPlayers(); + GroupManager.BukkitPermissions.updatePlayer(getBukkitPlayer()); // Do we notify of the group change? String defaultGroupName = getDataSource().getDefaultGroup().getName(); @@ -160,7 +160,7 @@ public class User extends DataUnit implements Cloneable { flagAsChanged(); if (GroupManager.isLoaded()) { if (!GroupManager.BukkitPermissions.isPlayer_join()) - GroupManager.BukkitPermissions.updateAllPlayers(); + GroupManager.BukkitPermissions.updatePlayer(getBukkitPlayer()); GroupManagerEventHandler.callEvent(this, Action.USER_SUBGROUP_CHANGED); } } @@ -183,7 +183,7 @@ public class User extends DataUnit implements Cloneable { flagAsChanged(); if (GroupManager.isLoaded()) if (!GroupManager.BukkitPermissions.isPlayer_join()) - GroupManager.BukkitPermissions.updateAllPlayers(); + GroupManager.BukkitPermissions.updatePlayer(getBukkitPlayer()); GroupManagerEventHandler.callEvent(this, Action.USER_SUBGROUP_CHANGED); return true; } @@ -229,8 +229,8 @@ public class User extends DataUnit implements Cloneable { } flagAsChanged(); if (GroupManager.isLoaded()) { - if (!GroupManager.BukkitPermissions.isPlayer_join()) - GroupManager.BukkitPermissions.updateAllPlayers(); + //if (!GroupManager.BukkitPermissions.isPlayer_join()) + // GroupManager.BukkitPermissions.updatePlayer(this.getName()); GroupManagerEventHandler.callEvent(this, Action.USER_INFO_CHANGED); } } diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java index e4bb94592..481779c3c 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java @@ -122,7 +122,6 @@ public class BukkitPermissions { registeredPermissions = new LinkedList<Permission>(Bukkit.getPluginManager().getPermissions());
}
-
public void updatePermissions(Player player) {
this.updatePermissions(player, null);
@@ -361,6 +360,14 @@ public class BukkitPermissions { updatePermissions(player);
}
}
+
+ /**
+ * force Bukkit to update this Players permissions.
+ */
+ public void updatePlayer(Player player) {
+ if (player != null)
+ this.updatePermissions(player, null);
+ }
protected class PlayerEvents implements Listener {
@@ -370,7 +377,7 @@ public class BukkitPermissions { Player player = event.getPlayer();
// force GM to create the player if they are not already listed.
if (plugin.getWorldsHolder().getWorldData(player.getWorld().getName()).getUser(player.getName()) != null) {
- //setPlayer_join(false);
+ setPlayer_join(false);
updatePermissions(event.getPlayer());
}
setPlayer_join(false);
|