summaryrefslogtreecommitdiffstats
path: root/EssentialsGroupManager/src/org
diff options
context:
space:
mode:
authorElgarL <ElgarL@palmergames.com>2011-09-24 15:26:55 +0100
committerElgarL <ElgarL@palmergames.com>2011-09-24 15:26:55 +0100
commit497a08940ee20cbd8ed8478530c9d030bc96e81e (patch)
tree9299a7c19c4234090268a2d7c7d1a622962a95af /EssentialsGroupManager/src/org
parentb0fe18915694ad92102e78a1ba477aab34e1059e (diff)
downloadEssentials-497a08940ee20cbd8ed8478530c9d030bc96e81e.tar
Essentials-497a08940ee20cbd8ed8478530c9d030bc96e81e.tar.gz
Essentials-497a08940ee20cbd8ed8478530c9d030bc96e81e.tar.lz
Essentials-497a08940ee20cbd8ed8478530c9d030bc96e81e.tar.xz
Essentials-497a08940ee20cbd8ed8478530c9d030bc96e81e.zip
manulistp now accepts an additional + to list ALL Superperms
effective permissions (/manulistp <name> +). manucheckp also outputs superperms results.
Diffstat (limited to 'EssentialsGroupManager/src/org')
-rw-r--r--EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java31
-rw-r--r--EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java24
2 files changed, 50 insertions, 5 deletions
diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java
index 52b67c57c..203d20c49 100644
--- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java
+++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java
@@ -637,16 +637,18 @@ public class GroupManager extends JavaPlugin {
return true;
}
//VALIDANDO ARGUMENTOS
- if (args.length != 1) {
- sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <player>)");
+ if ((args.length == 0) || (args.length > 2)) {
+ sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <player> (+))");
return false;
}
+
if (validateOnlinePlayer) {
match = this.getServer().matchPlayer(args[0]);
if (match.size() != 1) {
sender.sendMessage(ChatColor.RED + "Player not found!");
return false;
- }
+ } else
+ targetPlayer = this.getServer().getPlayer(match.get(0).getName());
}
if (match != null) {
auxUser = dataHolder.getUser(match.get(0).getName());
@@ -683,6 +685,18 @@ public class GroupManager extends JavaPlugin {
sender.sendMessage(ChatColor.YELLOW + "And all permissions from subgroups: " + auxString);
}
}
+
+ //bukkit perms
+ if ((args.length == 2) && (args[1].equalsIgnoreCase("+"))) {
+ if (targetPlayer != null) {
+ sender.sendMessage(ChatColor.YELLOW + "Superperms reports: ");
+ for(String line: BukkitPermissions.listPerms(targetPlayer))
+ sender.sendMessage(ChatColor.YELLOW + line);
+
+ }
+ }
+
+
return true;
case manucheckp:
//VALIDANDO ESTADO DO SENDER
@@ -695,12 +709,14 @@ public class GroupManager extends JavaPlugin {
sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <player> <permission>)");
return false;
}
+
if (validateOnlinePlayer) {
match = this.getServer().matchPlayer(args[0]);
if (match.size() != 1) {
sender.sendMessage(ChatColor.RED + "Player not found!");
return false;
- }
+ } else
+ targetPlayer = this.getServer().getPlayer(match.get(0).getName());
}
if (match != null) {
auxUser = dataHolder.getUser(match.get(0).getName());
@@ -730,6 +746,13 @@ public class GroupManager extends JavaPlugin {
}
sender.sendMessage(ChatColor.YELLOW + "Permission Node: " + permissionResult.accessLevel);
}
+
+ // superperms
+ if (targetPlayer != null) {
+ sender.sendMessage(ChatColor.YELLOW + "SuperPerms reports Node: " + targetPlayer.hasPermission(args[1]));
+ }
+
+
return true;
case mangaddp:
//VALIDANDO ESTADO DO SENDER
diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java
index cf3edafc0..afb65b26c 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.PluginEnableEvent;
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.PermissionAttachmentInfo;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.PluginManager;
@@ -106,7 +107,7 @@ public class BukkitPermissions {
}
public void updatePermissions(Player player, String world) {
- if (player == null || !this.plugin.isEnabled()) {
+ if (player == null || !GroupManager.isLoaded) {
return;
}
@@ -172,6 +173,27 @@ public class BukkitPermissions {
}
*/
}
+
+ public List<String> listPerms(Player player) {
+ List<String> perms = new ArrayList<String>();
+
+ /*
+ // All permissions registered with Bukkit for this player
+ PermissionAttachment attachment = this.attachments.get(player);
+
+ // List perms for this player
+ perms.add("Attachment Permissions:");
+ for(Map.Entry<String, Boolean> entry : attachment.getPermissions().entrySet()){
+ perms.add(" " + entry.getKey() + " = " + entry.getValue());
+ }
+ */
+
+ perms.add("Effective Permissions:");
+ for(PermissionAttachmentInfo info : player.getEffectivePermissions()){
+ perms.add(" " + info.getPermission() + " = " + info.getValue());
+ }
+ return perms;
+ }
public void updateAllPlayers() {
for (Player player : Bukkit.getServer().getOnlinePlayers()) {