diff --git a/lib/PermissionsEx.jar b/lib/PermissionsEx.jar index 8711b8e..3a63d21 100644 Binary files a/lib/PermissionsEx.jar and b/lib/PermissionsEx.jar differ diff --git a/pom.xml b/pom.xml index eaa2362..ce0f1bb 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ UTF-8 - 1.7.9-R0.1-SNAPSHOT + 1.7.9-R0.2-SNAPSHOT ${project.groupId}.${project.artifactId} 1.4 @@ -325,7 +325,7 @@ Vault currently supports the following: Permissions 3, PEX, GroupManager, bPerms ru.tehkode PermissionsEx - 1.20.4 + 1.22 true system ${project.basedir}/lib/PermissionsEx.jar diff --git a/src/net/milkbowl/vault/permission/plugins/Permission_PermissionsBukkit.java b/src/net/milkbowl/vault/permission/plugins/Permission_PermissionsBukkit.java index 7208246..ca9a96f 100644 --- a/src/net/milkbowl/vault/permission/plugins/Permission_PermissionsBukkit.java +++ b/src/net/milkbowl/vault/permission/plugins/Permission_PermissionsBukkit.java @@ -21,6 +21,7 @@ import java.util.List; import net.milkbowl.vault.permission.Permission; import org.bukkit.Bukkit; +import org.bukkit.OfflinePlayer; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; diff --git a/src/net/milkbowl/vault/permission/plugins/Permission_PermissionsEx.java b/src/net/milkbowl/vault/permission/plugins/Permission_PermissionsEx.java index da542ad..ea0ae93 100644 --- a/src/net/milkbowl/vault/permission/plugins/Permission_PermissionsEx.java +++ b/src/net/milkbowl/vault/permission/plugins/Permission_PermissionsEx.java @@ -15,9 +15,12 @@ */ package net.milkbowl.vault.permission.plugins; +import java.util.List; + import net.milkbowl.vault.permission.Permission; import org.bukkit.Bukkit; +import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; @@ -67,11 +70,6 @@ public class Permission_PermissionsEx extends Permission { } } - @Override - public boolean playerInGroup(String worldName, String playerName, String groupName) { - return PermissionsEx.getPermissionManager().getUser(playerName).inGroup(groupName); - } - public class PermissionServerListener implements Listener { Permission_PermissionsEx permission = null; @@ -114,6 +112,32 @@ public class Permission_PermissionsEx extends Permission { return name; } + @Override + public boolean playerInGroup(String worldName, OfflinePlayer op, String groupName) { + PermissionUser user = getUser(op); + if (user == null) { + return false; + } + return user.inGroup(groupName, worldName); + } + + @Override + public boolean playerInGroup(String worldName, String playerName, String groupName) { + return PermissionsEx.getPermissionManager().getUser(playerName).inGroup(groupName, worldName); + } + + @Override + public boolean playerAddGroup(String worldName, OfflinePlayer op, String groupName) { + PermissionGroup group = PermissionsEx.getPermissionManager().getGroup(groupName); + PermissionUser user = getUser(op); + if (group == null || user == null) { + return false; + } else { + user.addGroup(groupName, worldName); + return true; + } + } + @Override public boolean playerAddGroup(String worldName, String playerName, String groupName) { PermissionGroup group = PermissionsEx.getPermissionManager().getGroup(groupName); @@ -126,6 +150,13 @@ public class Permission_PermissionsEx extends Permission { } } + @Override + public boolean playerRemoveGroup(String worldName, OfflinePlayer op, String groupName) { + PermissionUser user = getUser(op); + user.removeGroup(groupName, worldName); + return true; + } + @Override public boolean playerRemoveGroup(String worldName, String playerName, String groupName) { PermissionsEx.getPermissionManager().getUser(playerName).removeGroup(groupName, worldName); @@ -133,8 +164,8 @@ public class Permission_PermissionsEx extends Permission { } @Override - public boolean playerAdd(String worldName, String playerName, String permission) { - PermissionUser user = PermissionsEx.getPermissionManager().getUser(playerName); + public boolean playerAdd(String worldName, OfflinePlayer op, String permission) { + PermissionUser user = getUser(op); if (user == null) { return false; } else { @@ -143,9 +174,31 @@ public class Permission_PermissionsEx extends Permission { } } + @Override + public boolean playerAdd(String worldName, String playerName, String permission) { + PermissionUser user = getUser(playerName); + if (user == null) { + return false; + } else { + user.addPermission(permission, worldName); + return true; + } + } + + @Override + public boolean playerRemove(String worldName, OfflinePlayer op, String permission) { + PermissionUser user = getUser(op); + if (user == null) { + return false; + } else { + user.removePermission(permission, worldName); + return true; + } + } + @Override public boolean playerRemove(String worldName, String playerName, String permission) { - PermissionUser user = PermissionsEx.getPermissionManager().getUser(playerName); + PermissionUser user = getUser(playerName); if (user == null) { return false; } else { @@ -186,9 +239,36 @@ public class Permission_PermissionsEx extends Permission { } } + private PermissionUser getUser(OfflinePlayer op) { + return PermissionsEx.getPermissionManager().getUser(op.getUniqueId()); + } + + private PermissionUser getUser(String playerName) { + return PermissionsEx.getPermissionManager().getUser(playerName); + } + + @Override + public String[] getPlayerGroups(String world, OfflinePlayer op) { + PermissionUser user = getUser(op); + return user == null ? null : user.getParentIdentifiers(world).toArray(new String[0]); + } + @Override public String[] getPlayerGroups(String world, String playerName) { - return PermissionsEx.getPermissionManager().getUser(playerName).getGroupsNames(); + PermissionUser user = getUser(playerName); + return user == null ? null : user.getParentIdentifiers(world).toArray(new String[0]); + } + + @Override + public String getPrimaryGroup(String world, OfflinePlayer op) { + PermissionUser user = getUser(op); + if (user == null) { + return null; + } else if (user.getParentIdentifiers(world).size() > 0) { + return user.getParentIdentifiers(world).get(0); + } else { + return null; + } } @Override @@ -196,16 +276,26 @@ public class Permission_PermissionsEx extends Permission { PermissionUser user = PermissionsEx.getPermissionManager().getUser(playerName); if (user == null) { return null; - } else if (user.getGroupsNames(world).length > 0) { - return user.getGroupsNames(world)[0]; + } else if (user.getParentIdentifiers(world).size() > 0) { + return user.getParentIdentifiers(world).get(0); } else { return null; } } + @Override + public boolean playerHas(String worldName, OfflinePlayer op, String permission) { + PermissionUser user = getUser(op); + if (user != null) { + return user.has(permission, worldName); + } else { + return false; + } + } + @Override public boolean playerHas(String worldName, String playerName, String permission) { - PermissionUser user = PermissionsEx.getPermissionManager().getUser(playerName); + PermissionUser user = getUser(playerName); if (user != null) { return user.has(permission, worldName); } else { @@ -215,7 +305,7 @@ public class Permission_PermissionsEx extends Permission { @Override public boolean playerAddTransient(String worldName, String player, String permission) { - PermissionUser pPlayer = PermissionsEx.getPermissionManager().getUser(player); + PermissionUser pPlayer = getUser(player); if (pPlayer != null) { pPlayer.addTimedPermission(permission, worldName, 0); return true; @@ -226,7 +316,13 @@ public class Permission_PermissionsEx extends Permission { @Override public boolean playerAddTransient(String worldName, Player player, String permission) { - return playerAddTransient(worldName, player.getName(), permission); + PermissionUser pPlayer = getUser(player); + if (pPlayer != null) { + pPlayer.addTimedPermission(permission, worldName, 0); + return true; + } else { + return false; + } } @Override @@ -236,12 +332,12 @@ public class Permission_PermissionsEx extends Permission { @Override public boolean playerAddTransient(Player player, String permission) { - return playerAddTransient(null, player.getName(), permission); + return playerAddTransient(null, player, permission); } @Override public boolean playerRemoveTransient(String worldName, String player, String permission) { - PermissionUser pPlayer = PermissionsEx.getPermissionManager().getUser(player); + PermissionUser pPlayer = getUser(player); if (pPlayer != null) { pPlayer.removeTimedPermission(permission, worldName); return true; @@ -252,12 +348,18 @@ public class Permission_PermissionsEx extends Permission { @Override public boolean playerRemoveTransient(Player player, String permission) { - return playerRemoveTransient(null, player.getName(), permission); + return playerRemoveTransient(null, player, permission); } @Override public boolean playerRemoveTransient(String worldName, Player player, String permission) { - return playerRemoveTransient(worldName, player.getName(), permission); + PermissionUser pPlayer = getUser(player); + if (pPlayer != null) { + pPlayer.removeTimedPermission(permission, worldName); + return true; + } else { + return false; + } } @Override @@ -267,12 +369,13 @@ public class Permission_PermissionsEx extends Permission { @Override public String[] getGroups() { - PermissionGroup[] groups = PermissionsEx.getPermissionManager().getGroups(); - if (groups == null || groups.length == 0) + List groups = PermissionsEx.getPermissionManager().getGroupList(); + if (groups == null || groups.isEmpty()) { return null; - String[] groupNames = new String[groups.length]; - for (int i = 0; i < groups.length; i++) { - groupNames[i] = groups[i].getName(); + } + String[] groupNames = new String[groups.size()]; + for (int i = 0; i < groups.size(); i++) { + groupNames[i] = groups.get(i).getName(); } return groupNames; }