Exemple #1
0
 public function onSCommand(CommandSender $c, Command $cc, $scmd, $data, array $args)
 {
     if (count($args) == 0) {
         return false;
     }
     $player = $c;
     if (count($args) > 1) {
         $player = $this->owner->getServer()->getPlayer($args[0]);
         if ($player !== null) {
             if (!MPMU::access($c, "mw.cmd.tp.others")) {
                 return true;
             }
             array_shift($args);
         } else {
             // Compatibility with old versions...
             $player = $this->owner->getServer()->getPlayer($args[count($args) - 1]);
             if ($player !== null) {
                 if (!MPMU::access($c, "mw.cmd.tp.others")) {
                     return true;
                 }
                 array_pop($args);
             } else {
                 $player = $c;
             }
         }
     }
     if (!MPMU::inGame($player)) {
         return true;
     }
     $wname = implode(" ", $args);
     if ($player->getLevel() == $this->owner->getServer()->getLevelByName($wname)) {
         $c->sendMessage($c == $player ? mc::_("You are already in %1%", $wname) : mc::_("%1% is already in %2%", $player->getName(), $wname));
         return true;
     }
     if (!$this->owner->autoLoad($c, $wname)) {
         $c->sendMessage(TextFormat::RED . mc::_("Teleport failed"));
         return true;
     }
     $level = $this->owner->getServer()->getLevelByName($wname);
     if ($level === null) {
         $c->sendMessage(TextFormat::RED . mc::_("Error GetLevelByName %1%"));
         return true;
     }
     if ($c != $player) {
         $player->sendMessage(TextFormat::YELLOW . mc::_("Teleporting you to %1% by %2%", $wname, $c->getName()));
     } else {
         $c->sendMessage(TextFormat::GREEN . mc::_("Teleporting to %1%", $wname));
     }
     $player->teleport($level->getSafeSpawn());
     return true;
 }
Exemple #2
0
 public function autoLoad(CommandSender $c, $world)
 {
     if ($this->getServer()->isLevelLoaded($world)) {
         return true;
     }
     if ($c !== null && !MPMU::access($c, "mw.cmd.world.load")) {
         return false;
     }
     if (!$this->getServer()->isLevelGenerated($world)) {
         if ($c !== null) {
             $c->sendMessage(mc::_("[MW] No world with the name %1% exists!", $world));
         }
         return false;
     }
     $this->getServer()->loadLevel($world);
     return $this->getServer()->isLevelLoaded($world);
 }