summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--EssentialsGroupManager/src/Changelog.txt3
-rw-r--r--EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java10
-rw-r--r--EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java10
3 files changed, 16 insertions, 7 deletions
diff --git a/EssentialsGroupManager/src/Changelog.txt b/EssentialsGroupManager/src/Changelog.txt
index 2879a9d33..7005c8cc1 100644
--- a/EssentialsGroupManager/src/Changelog.txt
+++ b/EssentialsGroupManager/src/Changelog.txt
@@ -7,4 +7,5 @@ v 1.1:
- GroupManager will now attempt to select the default world when using commands instead of failing and telling you to use '/manselect <world>'.
- Invalid groups assigned to players in users.yml will no longer cause a crash. GM will now set them to the default group instead.
- Fix for Users.yml containing only 'users:' causing a crash.
- - GroupManager will now generate a fresh Users and Groups yml if either file is empty. \ No newline at end of file
+ - GroupManager will now generate a fresh Users and Groups yml if either file is empty.
+ - Fix for an infinite loop bug with the new Bukkit Perms during a new user creation. \ No newline at end of file
diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java
index f3ea1d0f5..e9bf79aa9 100644
--- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java
+++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java
@@ -104,7 +104,7 @@ public class User extends DataUnit implements Cloneable {
public void setGroup(String group) {
this.group = group;
flagAsChanged();
- if (GroupManager.isLoaded)
+ if ((GroupManager.isLoaded) && (GroupManager.BukkitPermissions.player_join = false))
GroupManager.BukkitPermissions.updateAllPlayers();
}
@@ -118,7 +118,7 @@ public class User extends DataUnit implements Cloneable {
group = getDataSource().getGroup(group.getName());
this.group = group.getName();
flagAsChanged();
- if (GroupManager.isLoaded)
+ if ((GroupManager.isLoaded) && (GroupManager.BukkitPermissions.player_join = false))
GroupManager.BukkitPermissions.updateAllPlayers();
}
@@ -133,7 +133,7 @@ public class User extends DataUnit implements Cloneable {
removeSubGroup(subGroup);
subGroups.add(subGroup.getName());
flagAsChanged();
- if (GroupManager.isLoaded)
+ if ((GroupManager.isLoaded) && (GroupManager.BukkitPermissions.player_join = false))
GroupManager.BukkitPermissions.updateAllPlayers();
}
@@ -153,7 +153,7 @@ public class User extends DataUnit implements Cloneable {
try {
if (subGroups.remove(subGroup.getName())) {
flagAsChanged();
- if (GroupManager.isLoaded)
+ if ((GroupManager.isLoaded) && (GroupManager.BukkitPermissions.player_join = false))
GroupManager.BukkitPermissions.updateAllPlayers();
return true;
}
@@ -197,7 +197,7 @@ public class User extends DataUnit implements Cloneable {
variables.addVar(key, temp.getVarObject(key));
}
flagAsChanged();
- if (GroupManager.isLoaded)
+ if ((GroupManager.isLoaded) && (GroupManager.BukkitPermissions.player_join = false))
GroupManager.BukkitPermissions.updateAllPlayers();
}
}
diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java
index e396118b4..5df263eb4 100644
--- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java
+++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java
@@ -56,6 +56,7 @@ public class BukkitPermissions {
protected Plugin plugin;
protected boolean dumpAllPermissions = true;
protected boolean dumpMatchedPermissions = true;
+ public boolean player_join = false;
public BukkitPermissions(Plugin plugin) {
this.plugin = plugin;
@@ -142,7 +143,14 @@ public class BukkitPermissions {
@Override
public void onPlayerJoin(PlayerJoinEvent event) {
- updatePermissions(event.getPlayer());
+ player_join = true;
+ Player player = event.getPlayer();
+ //force GM to create the player if they are not already listed.
+ if (GroupManager.getWorldsHolder().getWorldData(player.getWorld().getName()).getUser(player.getName()) != null) {
+ player_join = false;
+ updatePermissions(event.getPlayer());
+ } else
+ player_join = false;
}
@Override