summaryrefslogtreecommitdiffstats
path: root/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java
diff options
context:
space:
mode:
authorKHobbits <rob@khobbits.co.uk>2011-10-12 17:10:31 +0100
committerKHobbits <rob@khobbits.co.uk>2011-10-12 17:10:31 +0100
commitd732821e06f917085a2c659879a14da1100ea2e8 (patch)
treebe6c20b50821ba7f1bd225bf0c13ab52ab719339 /EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java
parente628c36172590bc7bbae7eda9855890c1896250e (diff)
parent03adb56d256315924fd3cb14e5281dec28967195 (diff)
downloadEssentials-d732821e06f917085a2c659879a14da1100ea2e8.tar
Essentials-d732821e06f917085a2c659879a14da1100ea2e8.tar.gz
Essentials-d732821e06f917085a2c659879a14da1100ea2e8.tar.lz
Essentials-d732821e06f917085a2c659879a14da1100ea2e8.tar.xz
Essentials-d732821e06f917085a2c659879a14da1100ea2e8.zip
Merge remote branch 'remotes/ess/groupmanager' into essmaster
Diffstat (limited to 'EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java')
-rw-r--r--EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java29
1 files changed, 23 insertions, 6 deletions
diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java
index 19d90854b..6a5968c22 100644
--- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java
+++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java
@@ -43,6 +43,7 @@ import org.bukkit.event.server.ServerListener;
import org.bukkit.permissions.Permission;
import org.bukkit.permissions.PermissionAttachment;
import org.bukkit.permissions.PermissionAttachmentInfo;
+import org.bukkit.permissions.PermissionDefault;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.PluginManager;
@@ -124,15 +125,31 @@ public class BukkitPermissions {
User user = worldData.getUser(player.getName());
- // clear permissions
- for (String permission : attachment.getPermissions().keySet()) {
- attachment.unsetPermission(permission);
- }
+ // clear permissions
+ for (String permission : attachment.getPermissions().keySet())
+ attachment.unsetPermission(permission);
- // find matching permissions
+ /*
+ * find matching permissions
+ *
+ * and base bukkit perms if we are set to allow bukkit permissions to override.
+ */
Boolean value;
for (Permission permission : registeredPermissions) {
- value = worldData.getPermissionsHandler().checkUserPermission(user, permission.getName());
+
+ value = worldData.getPermissionsHandler().checkUserPermission(user, permission.getName());
+
+ // Only check bukkit override IF we don't have the permission directly.
+ if (value = false) {
+ PermissionDefault permDefault = permission.getDefault();
+
+ if ((plugin.getGMConfig().isBukkitPermsOverride())
+ && ((permDefault == PermissionDefault.TRUE)
+ || ((permDefault == PermissionDefault.NOT_OP) && !player.isOp())
+ || ((permDefault == PermissionDefault.OP) && player.isOp())))
+ value = true;
+ }
+
if (value == true)
attachment.setPermission(permission, value);
}