diff options
author | KHobbits <rob@khobbits.co.uk> | 2013-02-01 00:01:57 +0000 |
---|---|---|
committer | KHobbits <rob@khobbits.co.uk> | 2013-02-01 00:01:57 +0000 |
commit | 9c09771845bdbff20433548a6203937b6a232aea (patch) | |
tree | 222caed06b254e5a6438b06e7fc96b790308ec55 /EssentialsGroupManager/src/org/anjocaido | |
parent | 8e6ef99ae23b7850b75522b17e13df5bf7759d86 (diff) | |
download | Essentials-9c09771845bdbff20433548a6203937b6a232aea.tar Essentials-9c09771845bdbff20433548a6203937b6a232aea.tar.gz Essentials-9c09771845bdbff20433548a6203937b6a232aea.tar.lz Essentials-9c09771845bdbff20433548a6203937b6a232aea.tar.xz Essentials-9c09771845bdbff20433548a6203937b6a232aea.zip |
Make gm API lookup respect offlineperms toggle properly.
Diffstat (limited to 'EssentialsGroupManager/src/org/anjocaido')
-rw-r--r-- | EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/AnjoPermissionsHandler.java | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/AnjoPermissionsHandler.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/AnjoPermissionsHandler.java index a221c56a2..f303aea35 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/AnjoPermissionsHandler.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/AnjoPermissionsHandler.java @@ -789,9 +789,9 @@ public class AnjoPermissionsHandler extends PermissionsReaderInterface { * We are in offline mode * and the player has the 'groupmanager.noofflineperms' permission. */ - if (user == null || targetPermission == null || targetPermission.isEmpty() || - (!Bukkit.getServer().getOnlineMode() - && (checkPermission(user, "groupmanager.noofflineperms", true).resultType == PermissionCheckResult.Type.FOUND))) { + if (user == null || targetPermission == null || targetPermission.isEmpty() + || (!Bukkit.getServer().getOnlineMode() + && (checkPermission(user, "groupmanager.noofflineperms", false).resultType == PermissionCheckResult.Type.FOUND))) { PermissionCheckResult result = new PermissionCheckResult(); result.accessLevel = targetPermission; @@ -1037,6 +1037,15 @@ public class AnjoPermissionsHandler extends PermissionsReaderInterface { userAccessLevelOffset = 1; result = PermissionCheckResult.Type.NEGATION; } + + if (fullPermissionName.equals(userAccessLevel)) { + return result; + } + + if ("groupmanager.noofflineperms".equals(fullPermissionName)) { + result = PermissionCheckResult.Type.NOTFOUND; + } + if ("*".regionMatches(0, userAccessLevel, userAccessLevelOffset, userAccessLevelLength - userAccessLevelOffset)) { return result; } |