/** * @param Permission $perm * @param Permission $parent * * @return Permission */ public static function registerPermission(Permission $perm, Permission $parent = null) { if ($parent instanceof Permission) { $parent->getChildren()[$perm->getName()] = true; return self::registerPermission($perm); } Server::getInstance()->getPluginManager()->addPermission($perm); return Server::getInstance()->getPluginManager()->getPermission($perm->getName()); }
/** * @param string|Permission $name * @param $value * * @return Permission|void Permission if $name is a string, void if it's a Permission */ public function addParent($name, $value) { if ($name instanceof Permission) { $name->getChildren()[$this->getName()] = $value; $name->recalculatePermissibles(); return; } else { $perm = Server::getInstance()->getPluginManager()->getPermission($name); if ($perm === null) { $perm = new Permission($name); Server::getInstance()->getPluginManager()->addPermission($perm); } $this->addParent($perm, $value); return $perm; } }