pocketmine\permission\PermissibleBase::recalculatePermissions PHP Метод

recalculatePermissions() публичный Метод

    public function recalculatePermissions()
    {
        Timings::$permissibleCalculationTimer->startTiming();
        $this->clearPermissions();
        $defaults = Server::getInstance()->getPluginManager()->getDefaultPermissions($this->isOp());
        Server::getInstance()->getPluginManager()->subscribeToDefaultPerms($this->isOp(), $this->parent !== null ? $this->parent : $this);
        foreach ($defaults as $perm) {
            $name = $perm->getName();
            $this->permissions[$name] = new PermissionAttachmentInfo($this->parent !== null ? $this->parent : $this, $name, null, true);
            Server::getInstance()->getPluginManager()->subscribeToPermission($name, $this->parent !== null ? $this->parent : $this);
            $this->calculateChildPermissions($perm->getChildren(), false, null);
        }
        foreach ($this->attachments as $attachment) {
            $this->calculateChildPermissions($attachment->getPermissions(), false, $attachment);
        }
        Timings::$permissibleCalculationTimer->stopTiming();
    }

Usage Example

Пример #1
0
 public function recalculatePermissions()
 {
     $this->server->getPluginManager()->unsubscribeFromPermission(Server::BROADCAST_CHANNEL_USERS, $this);
     $this->server->getPluginManager()->unsubscribeFromPermission(Server::BROADCAST_CHANNEL_ADMINISTRATIVE, $this);
     if ($this->perm === null) {
         return;
     }
     $this->perm->recalculatePermissions();
     if ($this->hasPermission(Server::BROADCAST_CHANNEL_USERS)) {
         $this->server->getPluginManager()->subscribeToPermission(Server::BROADCAST_CHANNEL_USERS, $this);
     }
     if ($this->hasPermission(Server::BROADCAST_CHANNEL_ADMINISTRATIVE)) {
         $this->server->getPluginManager()->subscribeToPermission(Server::BROADCAST_CHANNEL_ADMINISTRATIVE, $this);
     }
 }