pocketmine\command\defaults\HelpCommand::execute PHP Метод

execute() публичный Метод

public execute ( pocketmine\command\CommandSender $sender, $currentAlias, array $args )
$sender pocketmine\command\CommandSender
$args array
    public function execute(CommandSender $sender, $currentAlias, array $args)
    {
        if (!$this->testPermission($sender)) {
            return true;
        }
        if (count($args) === 0) {
            $command = "";
            $pageNumber = 1;
        } elseif (is_numeric($args[count($args) - 1])) {
            $pageNumber = (int) array_pop($args);
            if ($pageNumber <= 0) {
                $pageNumber = 1;
            }
            $command = implode(" ", $args);
        } else {
            $command = implode(" ", $args);
            $pageNumber = 1;
        }
        if ($sender instanceof ConsoleCommandSender) {
            $pageHeight = PHP_INT_MAX;
        } else {
            $pageHeight = 7;
        }
        if ($command === "") {
            /** @var Command[][] $commands */
            $commands = [];
            foreach ($sender->getServer()->getCommandMap()->getCommands() as $command) {
                if ($command->testPermissionSilent($sender)) {
                    $commands[$command->getName()] = $command;
                }
            }
            ksort($commands, SORT_NATURAL | SORT_FLAG_CASE);
            $commands = array_chunk($commands, $pageHeight);
            $pageNumber = (int) min(count($commands), $pageNumber);
            if ($pageNumber < 1) {
                $pageNumber = 1;
            }
            $sender->sendMessage(new TranslationContainer("commands.help.header", [$pageNumber, count($commands)]));
            if (isset($commands[$pageNumber - 1])) {
                foreach ($commands[$pageNumber - 1] as $command) {
                    $sender->sendMessage(TextFormat::DARK_GREEN . "/" . $command->getName() . ": " . TextFormat::WHITE . $command->getDescription());
                }
            }
            return true;
        } else {
            if (($cmd = $sender->getServer()->getCommandMap()->getCommand(strtolower($command))) instanceof Command) {
                if ($cmd->testPermissionSilent($sender)) {
                    $message = TextFormat::YELLOW . "--------- " . TextFormat::WHITE . " Help: /" . $cmd->getName() . TextFormat::YELLOW . " ---------\n";
                    $message .= TextFormat::GOLD . "Description: " . TextFormat::WHITE . $cmd->getDescription() . "\n";
                    $message .= TextFormat::GOLD . "Usage: " . TextFormat::WHITE . implode("\n" . TextFormat::WHITE, explode("\n", $cmd->getUsage())) . "\n";
                    $sender->sendMessage($message);
                    return true;
                }
            }
            $sender->sendMessage(TextFormat::RED . "No help for " . strtolower($command));
            return true;
        }
    }