mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-06-15 07:55:31 +00:00
Constrain types to PermissibleInternal on internal permission subscription methods
This commit is contained in:
parent
bfcf4a25d4
commit
8e1d27a719
@ -78,7 +78,7 @@ class Permission{
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return Permissible[]
|
* @return PermissibleInternal[]
|
||||||
*/
|
*/
|
||||||
public function getPermissibles() : array{
|
public function getPermissibles() : array{
|
||||||
return PermissionManager::getInstance()->getPermissionSubscriptions($this->name);
|
return PermissionManager::getInstance()->getPermissionSubscriptions($this->name);
|
||||||
|
@ -35,8 +35,8 @@ class PermissionAttachment{
|
|||||||
private $permissions = [];
|
private $permissions = [];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var Permissible[]
|
* @var PermissibleInternal[]
|
||||||
* @phpstan-var array<int, Permissible>
|
* @phpstan-var array<int, PermissibleInternal>
|
||||||
*/
|
*/
|
||||||
private $subscribers = [];
|
private $subscribers = [];
|
||||||
|
|
||||||
@ -67,8 +67,8 @@ class PermissionAttachment{
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return Permissible[]
|
* @return PermissibleInternal[]
|
||||||
* @phpstan-return array<int, Permissible>
|
* @phpstan-return array<int, PermissibleInternal>
|
||||||
*/
|
*/
|
||||||
public function getSubscribers() : array{ return $this->subscribers; }
|
public function getSubscribers() : array{ return $this->subscribers; }
|
||||||
|
|
||||||
@ -148,14 +148,14 @@ class PermissionAttachment{
|
|||||||
/**
|
/**
|
||||||
* @internal
|
* @internal
|
||||||
*/
|
*/
|
||||||
public function subscribePermissible(Permissible $permissible) : void{
|
public function subscribePermissible(PermissibleInternal $permissible) : void{
|
||||||
$this->subscribers[spl_object_id($permissible)] = $permissible;
|
$this->subscribers[spl_object_id($permissible)] = $permissible;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @internal
|
* @internal
|
||||||
*/
|
*/
|
||||||
public function unsubscribePermissible(Permissible $permissible) : void{
|
public function unsubscribePermissible(PermissibleInternal $permissible) : void{
|
||||||
unset($this->subscribers[spl_object_id($permissible)]);
|
unset($this->subscribers[spl_object_id($permissible)]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -40,7 +40,7 @@ class PermissionManager{
|
|||||||
|
|
||||||
/** @var Permission[] */
|
/** @var Permission[] */
|
||||||
protected $permissions = [];
|
protected $permissions = [];
|
||||||
/** @var Permissible[][] */
|
/** @var PermissibleInternal[][] */
|
||||||
protected $permSubs = [];
|
protected $permSubs = [];
|
||||||
|
|
||||||
public function getPermission(string $name) : ?Permission{
|
public function getPermission(string $name) : ?Permission{
|
||||||
@ -68,14 +68,14 @@ class PermissionManager{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function subscribeToPermission(string $permission, Permissible $permissible) : void{
|
public function subscribeToPermission(string $permission, PermissibleInternal $permissible) : void{
|
||||||
if(!isset($this->permSubs[$permission])){
|
if(!isset($this->permSubs[$permission])){
|
||||||
$this->permSubs[$permission] = [];
|
$this->permSubs[$permission] = [];
|
||||||
}
|
}
|
||||||
$this->permSubs[$permission][spl_object_id($permissible)] = $permissible;
|
$this->permSubs[$permission][spl_object_id($permissible)] = $permissible;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function unsubscribeFromPermission(string $permission, Permissible $permissible) : void{
|
public function unsubscribeFromPermission(string $permission, PermissibleInternal $permissible) : void{
|
||||||
if(isset($this->permSubs[$permission])){
|
if(isset($this->permSubs[$permission])){
|
||||||
unset($this->permSubs[$permission][spl_object_id($permissible)]);
|
unset($this->permSubs[$permission][spl_object_id($permissible)]);
|
||||||
if(count($this->permSubs[$permission]) === 0){
|
if(count($this->permSubs[$permission]) === 0){
|
||||||
@ -84,7 +84,7 @@ class PermissionManager{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function unsubscribeFromAllPermissions(Permissible $permissible) : void{
|
public function unsubscribeFromAllPermissions(PermissibleInternal $permissible) : void{
|
||||||
foreach($this->permSubs as $permission => &$subs){
|
foreach($this->permSubs as $permission => &$subs){
|
||||||
unset($subs[spl_object_id($permissible)]);
|
unset($subs[spl_object_id($permissible)]);
|
||||||
if(count($subs) === 0){
|
if(count($subs) === 0){
|
||||||
@ -94,7 +94,7 @@ class PermissionManager{
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return Permissible[]
|
* @return PermissibleInternal[]
|
||||||
*/
|
*/
|
||||||
public function getPermissionSubscriptions(string $permission) : array{
|
public function getPermissionSubscriptions(string $permission) : array{
|
||||||
return $this->permSubs[$permission] ?? [];
|
return $this->permSubs[$permission] ?? [];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user