Merge pull request #1506 from PEMapModder/master

Multiple permissions checked in Server::getInstance()
This commit is contained in:
Shoghi Cervantes 2014-06-17 16:15:39 +02:00
commit 552c934486

View File

@ -1476,21 +1476,24 @@ class Server{
/** /**
* @param string $message * @param string $message
* @param string $permission * @param string $permissions
* *
* @return int * @return int
*/ */
public function broadcast($message, $permission){ public function broadcast($message, $permissions){
$count = 0; $recipients = [];
foreach($this->pluginManager->getPermissionSubscriptions($permission) as $permissible){ foreach(explode(";", $permissions) as $permission){
if($permissible instanceof CommandSender and $permissible->hasPermission($permission)){ foreach($this->pluginManager->getPermissionSubscriptions($permission) as $permissible){
$permissible->sendMessage($message); if($permissible instanceof CommandSender and $permissible->hasPermission($permission)){
++$count; $recipients[spl_object_hash($permissible)] = $permissible; // do not send messages directly, or some might be repeated
}
} }
} }
foreach($recipients as $recipient){
return $count; $recipient->sendMessage($message);
} }
return count($recipients);
}
/** /**
* Broadcasts a Minecraft packet to a list of players * Broadcasts a Minecraft packet to a list of players