pocketmine\command\defaults\LvdatCommand::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 false;
        }
        $levname = array_shift($args);
        if ($levname == "") {
            $sender->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage]));
            return false;
        }
        if (!$this->autoLoad($sender, $levname)) {
            $sender->sendMessage(new TranslationContainer("pocketmine.command.lvdat.nofound", [$levname]));
            return false;
        }
        $level = $sender->getServer()->getLevelByName($levname);
        if (!$level) {
            $sender->sendMessage(new TranslationContainer("pocketmine.command.lvdat.nofound", [$levname]));
            return false;
        }
        /** @var BaseLevelProvider $provider */
        $provider = $level->getProvider();
        $o = array_shift($args);
        $p = array_shift($args);
        switch ($o) {
            case "fixname":
                $provider->getLevelData()->LevelName = new StringTag("LevelName", $level->getFolderName());
                $sender->sendMessage(new TranslationContainer("pocketmine.command.lvdat.fixname", [$level->getFolderName()]));
                break;
            case "help":
                $sender->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage]));
                $sender->sendMessage("/lvdat %commands.generic.level fixname");
                $sender->sendMessage("/lvdat %commands.generic.level seed %commands.generic.seed");
                $sender->sendMessage("/lvdat %commands.generic.level name %commands.generic.name");
                $sender->sendMessage("/lvdat %commands.generic.level generator %commands.generic.generator");
                $sender->sendMessage("/lvdat %commands.generic.level preset %pocketmine.command.lvdat.preset");
                break;
            case "seed":
                if ($p == "") {
                    $sender->sendMessage("%commands.generic.opt.missing");
                    return false;
                }
                $provider->setSeed($p);
                $sender->sendMessage(new TranslationContainer("pocketmine.command.lvdat.changed", [$level->getFolderName(), $o]));
                break;
            case "name":
                if ($p == "") {
                    $sender->sendMessage("%commands.generic.opt.missing");
                    return false;
                }
                $provider->getLevelData()->LevelName = new StringTag("LevelName", $p);
                $sender->sendMessage(new TranslationContainer("pocketmine.command.lvdat.changed", [$level->getFolderName(), $o]));
                break;
            case "generator":
                if ($p == "") {
                    $sender->sendMessage("%commands.generic.opt.missing");
                    return false;
                }
                $provider->getLevelData()->generatorName = new StringTag("generatorName", $p);
                $sender->sendMessage(new TranslationContainer("pocketmine.command.lvdat.changed", [$level->getFolderName(), $o]));
                break;
            case "preset":
                if ($p == "") {
                    $sender->sendMessage("%commands.generic.opt.missing");
                    return false;
                }
                $provider->getLevelData()->generatorOptions = new StringTag("generatorOptions", $p);
                $sender->sendMessage(new TranslationContainer("pocketmine.command.lvdat.changed", [$level->getFolderName(), $o]));
                break;
            default:
                $sender->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage]));
                return false;
        }
        $provider->saveLevelData();
        return true;
    }