@Override public boolean playerAdd(String world, String player, String permission) { OfflinePlayer op = Bukkit.getOfflinePlayer(player); GroupSet set = perms.getGroupManager().getWorldSet(Bukkit.getWorld(world)); User user = set.getUser(op); boolean value = !permission.startsWith("^"); permission = value ? permission : permission.substring(1); user.addPermission(permission, value, true, true); if (user.isActive()) { user.applyPermissions(perms.getGroupManager().getFactory()); } return true; }
@Override public boolean groupAdd(String world, String group, String permission) { GroupManager gm = perms.getGroupManager(); GroupSet set = gm.getWorldSet(Bukkit.getWorld(world)); if (set.hasGroup(group)) { Group g = set.getGroup(group); boolean value = !permission.startsWith("^"); permission = value ? permission : permission.substring(1); g.addPermission(permission, value, true, true); for (User user : gm.getAffectedUsers(g)) { user.applyPermissions(gm.getFactory()); } return true; } else { return false; } }
@Override public boolean playerRemoveGroup(String world, String player, String group) { OfflinePlayer op = Bukkit.getOfflinePlayer(player); GroupSet set = perms.getGroupManager().getWorldSet(Bukkit.getWorld(world)); User user = set.getUser(op); if (set.hasGroup(group)) { Group g = set.getGroup(group); if (user.hasChild(g, false)) { user.removeChild(g, true); if (user.isActive()) { user.applyPermissions(perms.getGroupManager().getFactory()); } return true; } else { return false; } } else { return false; } }