public function name(WorldEditSession $session) { if (!$this->isValid()) { return null; } return $session->translate(Lang::SPACE_CUBOID_TO_STRING, ["LENGTH_X" => round($this->getLengthX(), 1), "LENGTH_Y" => round($this->getLengthY(), 1), "LENGTH_Z" => round($this->getLengthZ(), 1), "TOTAL_SIZE" => ceil($this->getLengthX() * $this->getLengthY() * $this->getLengthZ()), "X_1" => round($this->x1, 1), "Y_1" => round($this->y1, 1), "Z_1" => round($this->z1, 1), "X_2" => round($this->x2, 1), "Y_2" => round($this->y2, 1), "Z_2" => round($this->z2, 1)]); }
public function loadSession(WorldEditSession $session) { if (isset($this->userConfigs[$session->getUniqueName()])) { $session->init($this->userConfigs[$session->getUniqueName()]); } $id = $this->main->getObjectPool()->store($session); $this->loadSessionImpl($id); }
public function tip() { $tip = $this->owner->translate(Lang::QUEUE_TIP_TITLE) . "\n"; foreach ($this->rheostats as $rheostat) { $tip .= $this->owner->translate(Lang::QUEUE_TIP_ENTRY, ["TASK_NAME" => $rheostat->name(), "PROGRESS_PERC" => round($rheostat->done() / $rheostat->total() * 100, 1)]); } return trim($tip); }
public function run(WorldEditSession $session, array $args) { $params = new FormattedArguments($args); $sel = $session->getSelection($params->opt("n", "default")); if ($sel === null) { return Lang::ERR_NO_SEL; } $coll = new BlockCollection(); while (($string = $params->nextPlain()) !== null) { $entry = BlockEntry::fromString($string); // TODO handle exception $coll->addBlock($entry); } $bb = $sel->iteratorAllBlocks($coll); $rheostat = new Rheostat($session->getQueue(), $bb, $session->translate(Lang::SPACE_SET_BLOCKS, ["SPACE" => $sel->name($session)])); $session->getQueue()->addTask($rheostat); return Lang::EDIT_SET_IN_PROGRESS; }
public function tip() { $tip = $this->owner->translate(Lang::QUEUE_TIP_TITLE) . "\n"; if ($this->current->getBlocksOutOfBounds() > 0) { $tip .= $this->owner->translate(Lang::QUEUE_TIP_WARNED_ENTRY, ["TASK_NAME" => $this->current->name(), "PROGRESS_PERC" => round($this->current->done() / $this->current->total() * 100, 1), "WARNINGS_CNT" => $this->current->getBlocksOutOfBounds()]); } else { $tip .= $this->owner->translate(Lang::QUEUE_TIP_ENTRY, ["TASK_NAME" => $this->current->name(), "PROGRESS_PERC" => round($this->current->done() / $this->current->total() * 100, 1)]); } return trim($tip); }
public function run(WorldEditSession $session, array $args) { $params = new FormattedArguments($args); $sel = $session->getSelection($params->opt("n", "default")); if ($sel === null) { return Lang::ERR_NO_SEL; } $blocks = $params->nextPlain(); $sources = []; foreach (explode(",", $blocks) as $block) { $sources[] = BlockEntry::fromString($block, false); } $targets = new BlockCollection(); while (($string = $params->nextPlain()) !== null) { $entry = BlockEntry::fromString($string); // TODO handle exception $targets->addBlock($entry); } $bb = $sel->iteratorAllBlocks($targets); $rheostat = new Rheostat($session->getQueue(), new ArrayBackedBlockFilter($sources), $bb, $session->translate(Lang::SPACE_SET_BLOCKS, ["SPACE" => $sel->name($session)])); $session->getQueue()->addTask($rheostat); return Lang::EDIT_REPLACE_IN_PROGRESS; }
public function run(WorldEditSession $session, array $args) { $params = new FormattedArguments($args); if ($params->enabled("b")) { $pos = $session->getBookmark(); $level = $pos->getLevel($session->getMain()->getServer()); } elseif (($name = $params->opt("b")) !== null) { $pos = $session->getBookmark($name); $level = $pos->getLevel($session->getMain()->getServer()); } elseif (($name = $params->opt("p")) !== null) { $pos = $session->getMain()->getServer()->getPlayer($name); $level = $pos->getLevel(); if (!$pos instanceof Player) { return Lang::ERR_OFFLINE; } } else { $pos = $session->getLocation(); $level = $pos->getLevel(); } $name = $params->opt("n", "default"); $sel = $session->getSelection($name); $X = "x"; $Y = "y"; $Z = "z"; if ($this->isTwo) { $X .= "2"; $Y .= "2"; $Z .= "2"; } else { $X .= "1"; $Y .= "1"; $Z .= "1"; } if (!$sel instanceof CuboidSpace) { $sel = new CuboidSpace(); $sel->setLevelName($level->getName()); $session->setSelection($sel, $name); } $sel->{$X} = $pos->x; $sel->{$Y} = $pos->y; $sel->{$Z} = $pos->z; $session->sendMessage(Lang::SELECTION_POS_SUCCESS, ["COORD_X" => $pos->x, "COORD_Y" => $pos->y, "COORD_Z" => $pos->z, "POINT_ID" => $this->isTwo ? "2" : "1"]); $session->sendMessage(Lang::SELECTION_POS_INFO); $session->sendMessageDirect($sel->name($session)); return null; }
public function name(WorldEditSession $session) { return $session->translate(Lang::SPACE_SPHERE_TO_STRING, ["RADIUS" => round($this->radius, 1), "X" => round($this->center->x, 1), "Y" => round($this->center->y, 1), "Z" => round($this->center->z, 1)]); }
public function name(WorldEditSession $session) { if (!$this->isValid()) { return null; } return $session->translate(Lang::SPACE_CYLINDER_TO_STRING, ["X_BASE" => round($this->baseCenter->x, 1), "Y_BASE" => round($this->baseCenter->y, 1), "Z_BASE" => round($this->baseCenter->z, 1), "X_TOP" => round($this->topCenter->x, 1), "Y_TOP" => round($this->topCenter->y, 1), "Z_TOP" => round($this->topCenter->z, 1), "RADIUS" => round($this->radius, 2)]); }
/** * {@inheritdoc} * This method also checks whether the player is online. */ public function isValid() { return parent::isValid() and $this->player instanceof Player and $this->player->isOnline(); }
public function run(WorldEditSession $session, array $args) { $phrase = $session->getMain()->getTranslationManager()->get(Lang::META_LANGUAGE, $session->getConfig()->lang); $session->sendMessage(Lang::VERSION_RESPONSE, ["PLUGIN_VERSION" => $session->getMain()->getDescription()->getVersion(), "PLUGIN_AUTHORS" => implode(", ", $session->getMain()->getDescription()->getAuthors()), "LANG_NAME" => $session->translate(Lang::META_NATIVE), "LANG_VERSION" => $phrase->getUpdated(), "LANG_AUTHORS" => implode(", ", $session->translate(Lang::META_AUTHORS))]); }
public function __construct(WorldEditArt $main, CommandSender $owner) { $this->main = $main; $this->owner = $owner; parent::__construct(); }
public function run(WorldEditSession $session, array $args) { $params = new FormattedArguments($args); if ($params->enabled("b")) { $pos = $session->getBookmark(); $level = $pos->getLevel($session->getMain()->getServer()); } elseif (($name = $params->opt("b")) !== null) { $pos = $session->getBookmark($name); $level = $pos->getLevel($session->getMain()->getServer()); } elseif (($name = $params->opt("p")) !== null) { $pos = $session->getMain()->getServer()->getPlayer($name); $level = $pos->getLevel(); if (!$pos instanceof Player) { return Lang::ERR_OFFLINE; } } else { $pos = $session->getLocation(); $level = $pos->getLevel(); } $name = $params->opt("n", "default"); $sel = $session->getSelection($name); if (!$sel instanceof CylinderSpace) { $sel = new CylinderSpace(); $sel->setLevelName($level->getName()); $session->setSelection($sel, $name); } if ($this->isTop) { $sel->setTopCenter($pos); } else { $sel->setBaseCenter($pos); } $session->sendMessage(Lang::SELECTION_POS_SUCCESS, ["COORD_X" => $pos->x, "COORD_Y" => $pos->y, "COORD_Z" => $pos->z, "TOP_OR_BASE" => $session->translate($this->isTop ? Lang::PHRASE_TOP_CENTER : Lang::PHRASE_BASE_CENTER)]); $session->sendMessage(Lang::SELECTION_POS_INFO); $session->sendMessageDirect($sel->name($session)); return null; }