public function subCmd($c, $args) { if (count($args) == 0) { return false; } $cmd = strtolower(array_shift($args)); switch ($cmd) { case "spawn": if (count($args) > 0) { if (preg_match('/^(\\d+),(\\d+),(\\d+),(\\d+),(\\d+)$/', $args[0], $mv)) { $level = MPMU::inGame($c, false) ? $c->getLevel() : $this->owner->getServer()->getDefaultLevel(); $pos = new Location($mv[1], $mv[2], $mv[3], $mv[4], $mv[5], $level); array_shift($args); } elseif (preg_match('/^(\\d+),(\\d+),(\\d+),(\\d+),(\\d+),(\\S+)$/', $args[0], $mv)) { $level = $this->owner->getServer()->getLevelByName($mv[6]); if ($level === null) { $c->sendMessage(mc::_("World %1% not found", $mv[6])); return true; } $pos = new Location($mv[1], $mv[2], $mv[3], $mv[4], $mv[5], $level); array_shift($args); } elseif (preg_match('/^(\\d+),(\\d+),(\\d+)$/', $args[0], $mv)) { $level = MPMU::inGame($c, false) ? $c->getLevel() : $this->owner->getServer()->getDefaultLevel(); $pos = new Location($mv[1], $mv[2], $mv[3], 0.0, 0.0, $level); array_shift($args); } elseif (($pos = $this->owner->getServer()->getPlayer($args[0])) == null) { if (!MPMU::inGame($c)) { return true; } $pos = $c; } else { array_shift($args); } } if (count($args) == 0) { $args = ["default"]; } $shopkeep = implode(" ", $args); $ms = $this->spawn($pos, $shopkeep); if ($ms != "") { $c->sendMessage($ms); } else { $c->sendMessage(mc::_("Spawned shopkeep: %1%", $shopkeep)); } return true; default: $c->sendMessage(mc::_("%1%: Unknown sub-command", $cmd)); } return false; }
public function onCommand(CommandSender $sender, Command $cmd, $label, array $args) { switch ($cmd->getName()) { case "pay": if (!$this->trading) { $sender->sendMessage(mc::_("PAY command has been disabled")); return true; } if (!MPMU::inGame($sender)) { return false; } if ($sender->isCreative() || $sender->isSpectator()) { $sender->sendMessage(mc::_("You cannot use this in creative or specator mode")); return true; } if (count($args) == 1) { if (is_numeric($args[0])) { $money = intval($args[0]); if ($this->getMoney($sender->getName()) < $money) { $sender->sendMessage(mc::_("You do not have enough money")); return true; } $this->trading->setAttr($sender, "payment", $money); $sender->sendMessage(mc::_("Next payout will be for %1%G", $money)); return true; } return false; } elseif (count($args) == 0) { $sender->sendMessage(mc::_("Next payout will be for %1%G", $this->trading->getAttr($sender, "payment"))); return true; } return false; case "balance": if (!MPMU::inGame($sender)) { return false; } if ($sender->isCreative() || $sender->isSpectator()) { $sender->sendMessage(mc::_("You cannot use this in creative or specator mode")); return true; } $sender->sendMessage(mc::_("You have %1%G", $this->getMoney($sender->getName()))); return true; case "shopkeep": if ($this->keepers) { return $this->keepers->subCmd($sender, $args); } $sender->sendMessage(mc::_("shopkeep command disabled")); return true; } return false; }