|
|
|
@ -106,7 +106,7 @@ class PluginManager{
|
|
|
|
|
*
|
|
|
|
|
* @return null|Plugin
|
|
|
|
|
*/
|
|
|
|
|
public function getPlugin($name){
|
|
|
|
|
public function getPlugin(string $name){
|
|
|
|
|
if(isset($this->plugins[$name])){
|
|
|
|
|
return $this->plugins[$name];
|
|
|
|
|
}
|
|
|
|
@ -144,7 +144,7 @@ class PluginManager{
|
|
|
|
|
*
|
|
|
|
|
* @return Plugin|null
|
|
|
|
|
*/
|
|
|
|
|
public function loadPlugin($path, $loaders = null){
|
|
|
|
|
public function loadPlugin(string $path, array $loaders = null){
|
|
|
|
|
foreach($loaders ?? $this->fileAssociations as $loader){
|
|
|
|
|
if(preg_match($loader->getPluginFilters(), basename($path)) > 0){
|
|
|
|
|
$description = $loader->getPluginDescription($path);
|
|
|
|
@ -185,7 +185,7 @@ class PluginManager{
|
|
|
|
|
*
|
|
|
|
|
* @return Plugin[]
|
|
|
|
|
*/
|
|
|
|
|
public function loadPlugins($directory, $newLoaders = null){
|
|
|
|
|
public function loadPlugins(string $directory, array $newLoaders = null){
|
|
|
|
|
|
|
|
|
|
if(is_dir($directory)){
|
|
|
|
|
$plugins = [];
|
|
|
|
@ -359,7 +359,7 @@ class PluginManager{
|
|
|
|
|
*
|
|
|
|
|
* @return null|Permission
|
|
|
|
|
*/
|
|
|
|
|
public function getPermission($name){
|
|
|
|
|
public function getPermission(string $name){
|
|
|
|
|
if(isset($this->permissions[$name])){
|
|
|
|
|
return $this->permissions[$name];
|
|
|
|
|
}
|
|
|
|
@ -399,7 +399,7 @@ class PluginManager{
|
|
|
|
|
*
|
|
|
|
|
* @return Permission[]
|
|
|
|
|
*/
|
|
|
|
|
public function getDefaultPermissions($op){
|
|
|
|
|
public function getDefaultPermissions(bool $op) : array{
|
|
|
|
|
if($op === true){
|
|
|
|
|
return $this->defaultPermsOp;
|
|
|
|
|
}else{
|
|
|
|
@ -438,7 +438,7 @@ class PluginManager{
|
|
|
|
|
/**
|
|
|
|
|
* @param bool $op
|
|
|
|
|
*/
|
|
|
|
|
private function dirtyPermissibles($op){
|
|
|
|
|
private function dirtyPermissibles(bool $op){
|
|
|
|
|
foreach($this->getDefaultPermSubscriptions($op) as $p){
|
|
|
|
|
$p->recalculatePermissions();
|
|
|
|
|
}
|
|
|
|
@ -448,7 +448,7 @@ class PluginManager{
|
|
|
|
|
* @param string $permission
|
|
|
|
|
* @param Permissible $permissible
|
|
|
|
|
*/
|
|
|
|
|
public function subscribeToPermission($permission, Permissible $permissible){
|
|
|
|
|
public function subscribeToPermission(string $permission, Permissible $permissible){
|
|
|
|
|
if(!isset($this->permSubs[$permission])){
|
|
|
|
|
$this->permSubs[$permission] = [];
|
|
|
|
|
}
|
|
|
|
@ -459,7 +459,7 @@ class PluginManager{
|
|
|
|
|
* @param string $permission
|
|
|
|
|
* @param Permissible $permissible
|
|
|
|
|
*/
|
|
|
|
|
public function unsubscribeFromPermission($permission, Permissible $permissible){
|
|
|
|
|
public function unsubscribeFromPermission(string $permission, Permissible $permissible){
|
|
|
|
|
if(isset($this->permSubs[$permission])){
|
|
|
|
|
unset($this->permSubs[$permission][spl_object_hash($permissible)]);
|
|
|
|
|
if(count($this->permSubs[$permission]) === 0){
|
|
|
|
@ -497,7 +497,7 @@ class PluginManager{
|
|
|
|
|
* @param bool $op
|
|
|
|
|
* @param Permissible $permissible
|
|
|
|
|
*/
|
|
|
|
|
public function subscribeToDefaultPerms($op, Permissible $permissible){
|
|
|
|
|
public function subscribeToDefaultPerms(bool $op, Permissible $permissible){
|
|
|
|
|
if($op === true){
|
|
|
|
|
$this->defSubsOp[spl_object_hash($permissible)] = $permissible;
|
|
|
|
|
}else{
|
|
|
|
@ -509,7 +509,7 @@ class PluginManager{
|
|
|
|
|
* @param bool $op
|
|
|
|
|
* @param Permissible $permissible
|
|
|
|
|
*/
|
|
|
|
|
public function unsubscribeFromDefaultPerms($op, Permissible $permissible){
|
|
|
|
|
public function unsubscribeFromDefaultPerms(bool $op, Permissible $permissible){
|
|
|
|
|
if($op === true){
|
|
|
|
|
unset($this->defSubsOp[spl_object_hash($permissible)]);
|
|
|
|
|
}else{
|
|
|
|
@ -564,7 +564,7 @@ class PluginManager{
|
|
|
|
|
*
|
|
|
|
|
* @return bool
|
|
|
|
|
*/
|
|
|
|
|
public function isPluginEnabled(Plugin $plugin){
|
|
|
|
|
public function isPluginEnabled(Plugin $plugin) : bool{
|
|
|
|
|
if($plugin instanceof Plugin and isset($this->plugins[$plugin->getDescription()->getName()])){
|
|
|
|
|
return $plugin->isEnabled();
|
|
|
|
|
}else{
|
|
|
|
@ -766,7 +766,7 @@ class PluginManager{
|
|
|
|
|
*
|
|
|
|
|
* @throws PluginException
|
|
|
|
|
*/
|
|
|
|
|
public function registerEvent($event, Listener $listener, $priority, EventExecutor $executor, Plugin $plugin, $ignoreCancelled = false){
|
|
|
|
|
public function registerEvent(string $event, Listener $listener, int $priority, EventExecutor $executor, Plugin $plugin, bool $ignoreCancelled = false){
|
|
|
|
|
if(!is_subclass_of($event, Event::class)){
|
|
|
|
|
throw new PluginException($event . " is not an Event");
|
|
|
|
|
}
|
|
|
|
@ -799,7 +799,7 @@ class PluginManager{
|
|
|
|
|
*
|
|
|
|
|
* @return HandlerList
|
|
|
|
|
*/
|
|
|
|
|
private function getEventListeners($event) : HandlerList{
|
|
|
|
|
private function getEventListeners(string $event) : HandlerList{
|
|
|
|
|
if($event::$handlerList === null){
|
|
|
|
|
$event::$handlerList = new HandlerList();
|
|
|
|
|
}
|
|
|
|
|