diff --git a/src/net/milkbowl/vault/permission/Permission.java b/src/net/milkbowl/vault/permission/Permission.java index ac7d515..f632d10 100644 --- a/src/net/milkbowl/vault/permission/Permission.java +++ b/src/net/milkbowl/vault/permission/Permission.java @@ -127,6 +127,34 @@ public abstract class Permission { public boolean playerAdd(Player player, String permission) { return playerAdd(player.getWorld().getName(), player.getName(), permission); } + + /** + * Add transient permission to a player. + * @param world World name + * @param player Player name + * @param permission Permission node + * @return Success or Failure + */ + abstract public boolean playerAddTransient(String world, String player, String permission); + /** + * Add transient permission to a player. + * @param world World Object + * @param player Player name + * @param permission Permission node + * @return Success or Failure + */ + public boolean playerAddTransient(World world, String player, String permission) { + return playerAddTransient(world.getName(), player, permission); + } + /** + * Add transient permission to a player. + * @param player Player Object + * @param permission Permission node + * @return Success or Failure + */ + public boolean playerAddTransient(Player player, String permission) { + return playerAddTransient(player.getWorld().getName(), player.getName(), permission); + } /** * Remove permission from a player. diff --git a/src/net/milkbowl/vault/permission/plugins/Permission_GroupManager.java b/src/net/milkbowl/vault/permission/plugins/Permission_GroupManager.java index 0e80268..a064230 100644 --- a/src/net/milkbowl/vault/permission/plugins/Permission_GroupManager.java +++ b/src/net/milkbowl/vault/permission/plugins/Permission_GroupManager.java @@ -272,4 +272,9 @@ public class Permission_GroupManager extends Permission { public void setGroupSuffix(String world, String group, String suffix) { throw new UnsupportedOperationException(getName() + " cannot modify permissions."); } + + @Override + public boolean playerAddTransient(String world, String player, String permission) { + throw new UnsupportedOperationException(getName() + " cannot modify permissions."); + } } diff --git a/src/net/milkbowl/vault/permission/plugins/Permission_Permissions2.java b/src/net/milkbowl/vault/permission/plugins/Permission_Permissions2.java index 7e3375f..0d46b32 100644 --- a/src/net/milkbowl/vault/permission/plugins/Permission_Permissions2.java +++ b/src/net/milkbowl/vault/permission/plugins/Permission_Permissions2.java @@ -281,4 +281,9 @@ public class Permission_Permissions2 extends Permission { throw new UnsupportedOperationException(getName() + " cannot modify permissions."); } + @Override + public boolean playerAddTransient(String world, String player, String permission) { + throw new UnsupportedOperationException(getName() + " cannot modify permissions."); + } + } diff --git a/src/net/milkbowl/vault/permission/plugins/Permission_Permissions3.java b/src/net/milkbowl/vault/permission/plugins/Permission_Permissions3.java index 2b6820c..9f24105 100644 --- a/src/net/milkbowl/vault/permission/plugins/Permission_Permissions3.java +++ b/src/net/milkbowl/vault/permission/plugins/Permission_Permissions3.java @@ -296,7 +296,11 @@ public class Permission_Permissions3 extends Permission { @Override public String getGroupPrefix(String world, String group) { - return perms.getGroupPrefix(world, group); + try { + return perms.safeGetGroup(world, group).getPrefix(); + } catch(Exception e) { + return null; + } } @Override @@ -306,11 +310,25 @@ public class Permission_Permissions3 extends Permission { @Override public String getGroupSuffix(String world, String group) { - return perms.getGroupSuffix(world, group); + try { + return perms.safeGetGroup(world, group).getSuffix(); + } catch(Exception e) { + return null; + } } @Override public void setGroupSuffix(String world, String group, String suffix) { this.perms.addGroupInfo(world, group, "suffix", suffix); } + + @Override + public boolean playerAddTransient(String world, String player, String permission) { + try { + perms.safeGetUser(world, player).addTimedPermission(permission, 0); + return true; + } catch(Exception e) { + return false; + } + } } \ No newline at end of file diff --git a/src/net/milkbowl/vault/permission/plugins/Permission_PermissionsEx.java b/src/net/milkbowl/vault/permission/plugins/Permission_PermissionsEx.java index 6d8b527..8465adc 100644 --- a/src/net/milkbowl/vault/permission/plugins/Permission_PermissionsEx.java +++ b/src/net/milkbowl/vault/permission/plugins/Permission_PermissionsEx.java @@ -444,4 +444,15 @@ public class Permission_PermissionsEx extends Permission { pGroup.setSuffix(suffix); } } + + @Override + public boolean playerAddTransient(String world, String player, String permission) { + PermissionUser pPlayer = PermissionsEx.getPermissionManager().getUser(player); + if (pPlayer != null) { + pPlayer.addTimedPermission(permission, world, 0); + return true; + } else { + return false; + } + } } \ No newline at end of file