pocketmine\command\SimpleCommandMap::dispatchAdvanced PHP Метод

dispatchAdvanced() приватный Метод

private dispatchAdvanced ( pocketmine\command\CommandSender $sender, Command $command, $label, array $args, $offset )
$sender pocketmine\command\CommandSender
$command Command
$args array
    private function dispatchAdvanced(CommandSender $sender, Command $command, $label, array $args, $offset = 0)
    {
        if (isset($args[$offset])) {
            $argsTemp = $args;
            switch ($args[$offset]) {
                case "@a":
                    $p = $this->server->getOnlinePlayers();
                    if (count($p) <= 0) {
                        $sender->sendMessage(TextFormat::RED . "No players online");
                        //TODO: add language
                    } else {
                        foreach ($p as $player) {
                            $argsTemp[$offset] = $player->getName();
                            $this->dispatchAdvanced($sender, $command, $label, $argsTemp, $offset + 1);
                        }
                    }
                    break;
                case "@r":
                    $players = $this->server->getOnlinePlayers();
                    if (count($players) > 0) {
                        $argsTemp[$offset] = $players[array_rand($players)]->getName();
                        $this->dispatchAdvanced($sender, $command, $label, $argsTemp, $offset + 1);
                    }
                    break;
                case "@p":
                    if ($sender instanceof Player) {
                        $argsTemp[$offset] = $sender->getName();
                        $this->dispatchAdvanced($sender, $command, $label, $argsTemp, $offset + 1);
                    } else {
                        $sender->sendMessage(TextFormat::RED . "You must be a player!");
                        //TODO: add language
                    }
                    break;
                default:
                    $this->dispatchAdvanced($sender, $command, $label, $argsTemp, $offset + 1);
            }
        } else {
            $command->execute($sender, $label, $args);
        }
    }