コード例 #1
0
 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;
 }
コード例 #2
0
 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;
 }