private function calculateChildPermissions(array $children, $invert, $attachment)
{
foreach ($children as $name => $v) {
$perm = Server::getInstance()->getPluginManager()->getPermission($name);
$value = ($v xor $invert);
$this->permissions[$name] = new PermissionAttachmentInfo($this->parent !== null ? $this->parent : $this, $name, $attachment, $value);
Server::getInstance()->getPluginManager()->subscribeToPermission($name, $this->parent !== null ? $this->parent : $this);
if ($perm instanceof Permission) {
$this->calculateChildPermissions($perm->getChildren(), !$value, $attachment);
}
}
}