diff --git a/src/pocketmine/permission/Permissible.php b/src/pocketmine/permission/Permissible.php index 777337fb8..7b59a2ac0 100644 --- a/src/pocketmine/permission/Permissible.php +++ b/src/pocketmine/permission/Permissible.php @@ -66,7 +66,6 @@ interface Permissible extends ServerOperator{ public function recalculatePermissions(); /** - * TODO: Check this * @return Permission[] */ public function getEffectivePermissions(); diff --git a/src/pocketmine/permission/PermissionAttachment.php b/src/pocketmine/permission/PermissionAttachment.php index be5eb80e4..585afbcda 100644 --- a/src/pocketmine/permission/PermissionAttachment.php +++ b/src/pocketmine/permission/PermissionAttachment.php @@ -88,17 +88,34 @@ class PermissionAttachment{ return $this->permissions; } + /** + * @return bool[] + */ + public function clearPermissions(){ + $this->permissions = []; + $this->permissible->recalculatePermissions(); + } + /** * @param bool[] $permissions */ public function setPermissions(array $permissions){ - $this->permissions = []; foreach($permissions as $key => $value){ $this->permissions[$key] = (bool) $value; } $this->permissible->recalculatePermissions(); } + /** + * @param string[] $permissions + */ + public function unsetPermissions(array $permissions){ + foreach($permissions as $node){ + unset($this->permissions[$node]); + } + $this->permissible->recalculatePermissions(); + } + /** * @param string|Permission $name * @param bool $value