Beispiel #1
0
 public function onCommand(CommandSender $sender, Command $cmd, $label, array $args)
 {
     if ($cmd->getName() != "blowup") {
         return false;
     }
     if (count($args) == 0) {
         return false;
     }
     if (($pl = MPMU::getPlayer($sender, $args[0])) === null) {
         return true;
     }
     array_shift($args);
     $yield = 5;
     $magic = false;
     foreach ($args as $i) {
         if (is_numeric($i)) {
             $yield = intval($i);
             if ($yield < 1) {
                 $yield = 1;
             }
         } elseif (strtolower($i) == "magic") {
             $magic = true;
         } elseif (strtolower($i) == "normal") {
             $magic = false;
         }
     }
     $this->blowPlayer($pl, $yield, $magic);
     return true;
 }
Beispiel #2
0
 public function onCommand(CommandSender $sender, Command $cmd, $label, array $args)
 {
     if ($cmd->getName() != "heal") {
         return false;
     }
     if (count($args) == 0) {
         if (!MPMU::inGame($sender)) {
             return true;
         }
         $sender->setHealth($sender->getMaxHealth());
         $sender->sendMessage(mc::_("You have been healed"));
         return true;
     }
     if (($patient = MPMU::getPlayer($sender, $args[0])) === null) {
         return true;
     }
     if (isset($args[1]) && is_numeric($args[1])) {
         $health = $patient->getHealth() + intval($args[1]);
         if ($health > $patient->getMaxHealth()) {
             $health = $patient->getMaxHealth();
         }
     } else {
         $health = $patient->getMaxHealth();
     }
     $patient->setHealth($health);
     $sender->sendMessage(mc::_("%1% was healed.", $args[0]));
     return true;
 }
Beispiel #3
0
 public function onCommand(CommandSender $sender, Command $cmd, $label, array $args)
 {
     if ($cmd->getName() != "as") {
         return false;
     }
     if (count($args) < 2) {
         $sender->sendMessage(mc::_("Must specified a player and a command"));
         return false;
     }
     if (($player = MPMU::getPlayer($sender, $n = array_shift($args))) === null) {
         return true;
     }
     if ($args[0] == 'chat' || $args[0] == 'say') {
         array_shift($args);
         $chat = implode(" ", $args);
         $this->owner->getServer()->getPluginManager()->callEvent($ev = new PlayerChatEvent($player, $chat));
         if (!$ev->isCancelled()) {
             if (MPMU::apiVersion("1.12.0")) {
                 $s = $this->owner->getServer();
                 $s->broadcastMessage($s->getLanguage()->translateString($ev->getFormat(), [$ev->getPlayer()->getDisplayName(), $ev->getMessage()]), $ev->getRecipients());
             } else {
                 $this->owner->getServer()->broadcastMessage(sprintf($ev->getFormat(), $ev->getPlayer()->getDisplayName(), $ev->getMessage()), $ev->getRecipients());
             }
         }
     } else {
         $cmdline = implode(' ', $args);
         $sender->sendMessage(mc::_("Running command as %1%", $n));
         $this->owner->getServer()->dispatchCommand($player, $cmdline);
     }
     return true;
 }
Beispiel #4
0
 public function onCommand(CommandSender $sender, Command $cmd, $label, array $args)
 {
     if ($cmd->getName() != "top") {
         return false;
     }
     switch (count($args)) {
         case 0:
             if (!MPMU::inGame($sender)) {
                 return true;
             }
             $pl = $sender;
             break;
         case 1:
             if (!MPMU::access($sender, "gb.cmd.top.others")) {
                 return true;
             }
             if (($pl = MPMU::getPlayer($sender, $args[0])) === null) {
                 return true;
             }
             break;
         default:
             return false;
     }
     $y = $pl->getLevel()->getHighestBlockAt($pl->getX(), $pl->getZ()) + 1;
     $pl->teleport(new Vector3($pl->getX(), $y, $pl->getZ()));
     return true;
 }
Beispiel #5
0
 public function onCommand(CommandSender $sender, Command $cmd, $label, array $args)
 {
     $pageNumber = $this->getPageNumber($args);
     if (count($args) != 1) {
         $sender->sendMessage(mc::_("You must specify a player's name"));
         return false;
     }
     if (($target = MPMU::getPlayer($sender, $args[0])) === null) {
         return true;
     }
     if ($cmd->getName() == "seeinv") {
         $tab = [[$args[0], mc::_("Count"), mc::_("Damage")]];
         $max = $target->getInventory()->getSize();
         foreach ($target->getInventory()->getContents() as $slot => &$item) {
             if ($slot >= $max) {
                 continue;
             }
             $tab[] = [ItemName::str($item) . " (" . $item->getId() . ")", $item->getCount(), $item->getDamage()];
         }
         if (count($tab) == 1) {
             $sender->sendMessage(mc::_("The inventory for %1% is EMPTY", $args[0]));
             return true;
         }
     } elseif ($cmd->getName() == "seearmor") {
         $tab = [[mc::_("Armor for"), TextFormat::RED . $args[0]]];
         foreach ([0 => "head", 1 => "body", 2 => "legs", 3 => "boots"] as $slot => $attr) {
             $item = $target->getInventory()->getArmorItem($slot);
             if ($item->getID() == 0) {
                 continue;
             }
             $tab[] = [$attr . TextFormat::BLUE, ItemName::str($item) . " (" . $item->getId() . ":" . $item->getDamage() . ")"];
         }
     }
     return $this->paginateTable($sender, $pageNumber, $tab);
 }
 public function onCommand(CommandSender $sender, Command $cmd, $label, array $args)
 {
     switch (count($args)) {
         case 0:
             if (!MPMU::inGame($sender)) {
                 return true;
             }
             $target = $sender;
             $other = false;
             break;
         case 1:
             if (($target = MPMU::getPlayer($sender, $args[0])) === null) {
                 return true;
             }
             $other = true;
             break;
         default:
             return false;
     }
     $item = clone $target->getInventory()->getItemInHand();
     if ($item->getId() == Item::AIR) {
         if ($other) {
             $sender->sendMessage(mc::_("%1% is holding nothing!", $target->getDisplayName()));
         } else {
             $sender->sendMessage(mc::_("You are holding nothing!"));
         }
         return true;
     }
     $sender->sendMessage(TextFormat::BLUE . mc::_("Item: ") . TextFormat::WHITE . ItemName::str($item));
     $sender->sendMessage(TextFormat::BLUE . mc::_("ItemId: ") . TextFormat::WHITE . $item->getId());
     $sender->sendMessage(TextFormat::BLUE . mc::_("Count: ") . TextFormat::WHITE . $item->getCount());
     $sender->sendMessage(TextFormat::BLUE . mc::_("Damage: ") . TextFormat::WHITE . $item->getDamage());
     return true;
 }
 public function onCommand(CommandSender $sender, Command $cmd, $label, array $args)
 {
     if ($cmd->getName() == "rminv") {
         return $this->rmInvItem($sender, $args);
     }
     if (count($args) > 1) {
         return false;
     }
     if (count($args) == 0) {
         if (!MPMU::inGame($sender)) {
             return true;
         }
         $target = $sender;
         $other = false;
     } else {
         if (!MPMU::access($sender, "gb.cmd." . $cmd->getName() . ".others")) {
             return true;
         }
         if (($target = MPMU::getPlayer($sender, $args[0])) === null) {
             return true;
         }
         $other = true;
     }
     switch ($cmd->getName()) {
         case "fixit":
             $item = clone $target->getInventory()->getItemInHand();
             if ($item->getDamage() == 0) {
                 $sender->sendMessage(mc::_("That item is brand NEW!"));
                 return true;
             }
             $item->setDamage(0);
             $target->getInventory()->setItemInHand($item);
             $target->getInventory()->sendContents($target);
             if ($other) {
                 $target->sendMessage(mc::_("Your currently held item has been fixed by %1%", $sender->getName()));
             }
             $sender->sendMessage(mc::_("%1%'s held item has been fixed", $target->getName()));
             return true;
         case "clearinv":
             InvUtils::clearInventory($target);
             if ($other) {
                 $target->sendMessage(mc::_("Your inventory has been cleared by %1%", $sender->getName()));
             }
             $sender->sendMessage(mc::_("%1%'s inventory cleared", $target->getName()));
             return true;
         case "clearhotbar":
             InvUtils::clearHotbar($target);
             if ($other) {
                 $target->sendMessage(mc::_("Your hotbar has been cleared by %1%", $sender->getName()));
             }
             $sender->sendMessage(mc::_("%1%'s hotbar cleared", $target->getName()));
             return true;
     }
     return false;
 }
Beispiel #8
0
 public function onCommand(CommandSender $sender, Command $cmd, $label, array $args)
 {
     if ($cmd->getName() != "throw") {
         return false;
     }
     if (count($args) > 2 || count($args) == 0) {
         return false;
     }
     if (($pl = MPMU::getPlayer($sender, $args[0])) === null) {
         return true;
     }
     $this->throwPlayer($pl);
     return true;
 }
Beispiel #9
0
 public function onCommand(CommandSender $sender, Command $cmd, $label, array $args)
 {
     if (count($args) > 1) {
         return false;
     }
     if (count($args) == 0) {
         if (!MPMU::inGame($sender)) {
             return true;
         }
         $target = $sender;
         $other = false;
     } else {
         if (!MPMU::access($sender, "gb.cmd." . $cmd->getName() . ".others")) {
             return true;
         }
         if (($target = MPMU::getPlayer($sender, $args[0])) == null) {
             return true;
         }
         $other = true;
     }
     $n = strtolower($target->getName());
     if ($target->isOp()) {
         // Player is dropping from op...
         $this->reops[$n] = true;
         $target->setOp(false);
         if ($other) {
             $sender->sendMessage(mc::_("%1% is no longer Op", $target->getDisplayName()));
         }
         $target->sendMessage(mc::_("You are no longer Op"));
         return true;
     }
     // Player wants to resume op
     if (isset($this->reops[$n])) {
         $target->setOp(true);
         unset($this->reops[$n]);
         if ($other) {
             $sender->sendMessage(mc::_("%1% is now Op", $target->getDisplayName()));
         }
         $target->sendMessage(mc::_("You are now Op"));
         return true;
     }
     // This player can not be re-opped
     if ($other) {
         $sender->sendMessage(mc::_("That is not possible"));
         return true;
     }
     $sender->sendMessage(mc::_("You are not allowed to do this"));
     return true;
 }
Beispiel #10
0
 public function onCommand(CommandSender $sender, Command $cmd, $label, array $args)
 {
     if ($cmd->getName() != "slay") {
         return false;
     }
     if (!isset($args[0])) {
         $sender->sendMessage(mc::_("Must specify a player to slay"));
         return false;
     }
     if (($victim = MPMU::getPlayer($sender, array_shift($args))) === null) {
         return true;
     }
     $this->slay($victim, implode(" ", $args));
     $sender->sendMessage(TextFormat::RED . mc::_("%1% has been slain.", $victim->getName()));
     return true;
 }
Beispiel #11
0
 public function onCommand(CommandSender $sender, Command $cmd, $label, array $args)
 {
     if ($cmd->getName() != "burn") {
         return false;
     }
     if (count($args) > 2 || count($args) == 0) {
         return false;
     }
     if (($pl = MPMU::getPlayer($sender, $args[0])) === null) {
         return true;
     }
     $secs = self::DEFAULTSECS;
     if (isset($args[1])) {
         $secs = intval($args[1]);
     }
     if ($secs <= 1) {
         $secs = self::DEFAULTSECS;
     }
     $pl->setOnFire($secs);
     return true;
 }
Beispiel #12
0
 public function onCommand(CommandSender $sender, Command $cmd, $label, array $args)
 {
     if ($cmd->getName() != "perm") {
         return false;
     }
     $pageNumber = $this->getPageNumber($args);
     if (count($args) < 2) {
         return false;
     }
     if (($target = MPMU::getPlayer($sender, $args[0])) === null) {
         return true;
     }
     array_shift($args);
     if (strtolower($args[0]) == "dump") {
         if (count($args) != 1) {
             return false;
         }
         $txt = [TextFormat::YELLOW . mc::_("Permissions for %1%", $target->getName())];
         $target->recalculatePermissions();
         foreach ($target->getEffectivePermissions() as $pp) {
             $txt[] = TextFormat::GREEN . $pp->getPermission() . ": " . TextFormat::WHITE . ($pp->getValue() ? mc::_("YES") : mc::_("NO"));
         }
         return $this->paginateText($sender, $pageNumber, $txt);
     }
     $perm = array_shift($args);
     if (count($args) > 1) {
         return false;
     }
     if (count($args) == 1) {
         $bool = filter_var(array_shift($args), FILTER_VALIDATE_BOOLEAN);
         $n = strtolower($target->getName());
         if (!isset($this->perms[$n])) {
             $this->perms[$n] = $target->addAttachment($this->owner);
         }
         $at = $this->perms[$n];
         $at->setPermission($perm, $bool);
     }
     $sender->sendMessage(TextFormat::YELLOW . $target->getName() . "," . TextFormat::GREEN . $perm . ": " . TextFormat::WHITE . ($target->hasPermission($perm) ? mc::_("YES") : mc::_("NO")));
     return true;
 }
Beispiel #13
0
 public function cmdDismiss(CommandSender $c, $args)
 {
     if (count($args) == 0) {
         return false;
     }
     if (!MPMU::inGame($c)) {
         return true;
     }
     $state = $this->getState($c, []);
     if (count($state) == 0) {
         $c->sendMessage(mc::_("There is nobody to dismiss"));
         $c->sendMessage(mc::_("You need to summon people first"));
         return true;
     }
     if ($args[0] == "--all") {
         $args = array_keys($state);
     }
     foreach ($args as $i) {
         $pl = MPMU::getPlayer($c, $i);
         if (!$pl) {
             $i = strtolower($i);
             if (isset($state[$i])) {
                 unset($state[$i]);
             }
             continue;
         }
         $pn = strtolower($pl->getName());
         if (!isset($state[$pn])) {
             $c->sendMessage(mc::_("%1% was never summoned", $i));
             continue;
         }
         $pl->sendMessage(mc::_("You have been dismissed by %1%", $c->getName()));
         $c->sendMessage(mc::_("Dismissing %1%", $i));
         $pl->teleport($state[$pn]);
         unset($state[$pn]);
     }
     $this->setState($c, $state);
     return true;
 }
 public function onCommand(CommandSender $sender, Command $cmd, $label, array $args)
 {
     if (!MPMU::inGame($sender)) {
         return true;
     }
     if (count($args) != 1) {
         return false;
     }
     if (($b = MPMU::getPlayer($sender, $args[0])) === null) {
         return true;
     }
     switch ($cmd->getName()) {
         case "tpask":
             return $this->cmdTpAsk($sender, $b);
         case "tpahere":
             return $this->cmdTpHere($sender, $b);
         case "tpaccept":
             return $this->cmdAccept($sender, $b);
         case "tpdecline":
             return $this->cmdDecline($sender, $b);
     }
     return false;
 }
Beispiel #15
0
 public function onCommand(CommandSender $sender, Command $cmd, $label, array $args)
 {
     if (count($args) == 0) {
         $sender->sendMessage(mc::_("Mutes: %1%", count($this->mutes)));
         if (count($this->mutes)) {
             $sender->sendMessage(implode(", ", $this->mutes));
         }
         return true;
     }
     switch ($cmd->getName()) {
         case "mute":
             foreach ($args as $n) {
                 if (($player = MPMU::getPlayer($sender, $n)) === null) {
                     continue;
                 }
                 $this->mutes[strtolower($player->getName())] = $player->getName();
                 $player->sendMessage(mc::_("You have been muted by %1%", $sender->getName()));
                 $sender->sendMessage(mc::_("%1% is muted.", $n));
             }
             return true;
         case "unmute":
             foreach ($args as $n) {
                 if (isset($this->mutes[strtolower($n)])) {
                     unset($this->mutes[strtolower($n)]);
                     $player = $this->owner->getServer()->getPlayer($n);
                     if ($player) {
                         $player->sendMessage(mc::_("You have been unmuted by %1%", $sender->getName()));
                     }
                     $sender->sendMessage(mc::_("%1% is un-muted", $n));
                 } else {
                     $sender->sendMessage(mc::_("%1% not found or not muted", $n));
                 }
             }
             return true;
     }
     return false;
 }
Beispiel #16
0
 public function onCommand(CommandSender $sender, Command $cmd, $label, array $args)
 {
     if (strtolower($cmd->getName()) != "xyz") {
         return false;
     }
     if (count($args) == 0) {
         if (!MPMU::inGame($sender)) {
             return true;
         }
         $sender->sendMessage(mc::_("You are at %1%,%2%,%3% in world %4%, heading %5%", (int) $sender->getX(), (int) $sender->getY(), (int) $sender->getZ(), $sender->getLevel()->getName(), ExpandVars::bearing($sender->getYaw())));
     } else {
         if (count($args) != 1) {
             return false;
         }
         if (!MPMU::access($sender, "gb.cmd.xyz.others")) {
             return true;
         }
         if (($player = MPMU::getPlayer($sender, $args[0])) === null) {
             return true;
         }
         $sender->sendMessage(mc::_("%6% is at %1%,%2%,%3% in world %4%, heading %5%", (int) $player->getX(), (int) $player->getY(), (int) $player->getZ(), $player->getLevel()->getName(), ExpandVars::bearing($player->getYaw()), $player->getDisplayName()));
     }
     return true;
 }
 public function onCommand(CommandSender $sender, Command $cmd, $label, array $args)
 {
     $s = MPMU::iName($sender);
     switch ($cmd->getName()) {
         case "followers":
             $pageNumber = $this->getPageNumber($args);
             $txt = [mc::_("Leads: %1%", count($this->leaders))];
             foreach ($this->leaders as $lead => $followers) {
                 $txt[] = $lead . "(" . count($followers) . "):" . implode(", ", $followers);
             }
             return $this->paginateText($sender, $pageNumber, $txt);
         case "follow":
             if (!MPMU::inGame($sender)) {
                 return true;
             }
             if (count($args) != 1) {
                 return false;
             }
             $n = array_shift($args);
             if (($player = MPMU::getPlayer($sender, $n)) === null) {
                 return true;
             }
             if (isset($this->followers[$s])) {
                 $sender->sendMessage(mc::_("You are no longer following %1%", $this->followers[$s]));
                 $this->stopFollowing($s);
             }
             $sender->sendMessage(mc::_("You are now following %1%", $n));
             $this->follow($s, $player);
             return true;
         case "follow-off":
             if (!MPMU::inGame($sender)) {
                 return true;
             }
             if (count($args) != 0) {
                 return false;
             }
             if (isset($this->followers[$s])) {
                 $sender->sendMessage(mc::_("You are no longer following %1%", $this->followers[$s]));
                 $this->stopFollowing($s);
             } else {
                 $sender->sendMessage(mc::_("You are not following anybody"));
             }
             return true;
         case "followme":
             if (!MPMU::inGame($sender)) {
                 return true;
             }
             if (count($args) == 0) {
                 return false;
             }
             foreach ($args as $n) {
                 if (($player = MPMU::getPlayer($sender, $n)) === null) {
                     return true;
                 }
                 $this->stopFollowing($player);
                 $this->follow($player, $s);
                 $sender->sendMessage(mc::_("%1% is now following you", $n));
                 $player->sendMessage(mc::_("You are now following %1%", $s));
             }
             return true;
         case "followme-off":
             if (!MPMU::inGame($sender)) {
                 return true;
             }
             if (count($args) != 0) {
                 return false;
             }
             $this->stopLeading($s);
             $sender->sendMessage(mc::_("Nobody is following you"));
             return true;
     }
     return false;
 }
Beispiel #18
0
 public function onCommand(CommandSender $sender, Command $cmd, $label, array $args)
 {
     switch ($cmd->getName()) {
         case "nick":
             if (!MPMU::inGame($sender)) {
                 return true;
             }
             if (count($args) == 0) {
                 $sender->sendMessage(mc::_("Current nick is: %1%", $sender->getDisplayName()));
                 return true;
             }
             if (count($args) !== 1) {
                 return false;
             }
             $this->owner->getServer(mc::_("%1% is now known as %2%", $sender->getDisplayName(), $args[0]));
             $sender->setDisplayName($args[0]);
             return true;
         case "clearchat":
             if (!MPMU::inGame($sender)) {
                 return true;
             }
             if (count($args) != 0) {
                 return false;
             }
             for ($i = 0; $i < 32; ++$i) {
                 $sender->sendMessage(" ");
             }
             return true;
         case "chat-on":
         case "chat-off":
             if (count($args) > 0) {
                 switch ($n = strtolower(array_shift($args))) {
                     case "--list":
                     case "--ls":
                     case "-l":
                         if (!MPMU::access($sender, "gb.cmd.togglechat.others")) {
                             return true;
                         }
                         $pageNumber = $this->getPageNumber($args);
                         $txt = [""];
                         $cols = 8;
                         $i = 0;
                         foreach ($this->owner->getServer()->getOnlinePlayers() as $p) {
                             if (!$this->getState($p, false)) {
                                 continue;
                             }
                             $n = $p->getDisplayName();
                             if ($i++ % $cols == 0) {
                                 $txt[] = $n;
                             } else {
                                 $txt[count($txt) - 1] .= ", " . $n;
                             }
                         }
                         if ($i == 0) {
                             $sender->sendMessage(mc::_("No players with chat off"));
                             if (!$this->chat) {
                                 $sender->sendMessage(mc::_("Chat is GLOBALLY off"));
                             }
                             return true;
                         }
                         if ($this->chat) {
                             $txt[0] = mc::n(mc::_("One player with chat off"), mc::_("%1% players with chat off", $i), $i);
                         } else {
                             $txt[0] = mc::_("Chat is GLOBALLY off");
                         }
                         return $this->paginateText($sender, $pageNumber, $txt);
                     case "--server":
                     case "--global":
                     case "-g":
                         if (count($args)) {
                             return false;
                         }
                         if (!MPMU::access($sender, "gb.cmd.togglechat.global")) {
                             return true;
                         }
                         if ($cmd->getName() == "chat-off") {
                             $this->setGlobalChat(false);
                             $this->owner->getServer()->broadcastMessage(mc::_("Chat disabled globally from %1%", $sender->getName()));
                         } else {
                             $this->setGlobalChat(true);
                             $this->owner->getServer()->broadcastMessage(mc::_("Chat enabled globally from %1%", $sender->getName()));
                         }
                         return true;
                     default:
                         if (count($args)) {
                             return false;
                         }
                         if (!MPMU::access($sender, "gb.cmd.togglechat.others")) {
                             return true;
                         }
                         if (($player = MPMU::getPlayer($sender, $n)) === null) {
                             return true;
                         }
                         if ($cmd->getName() == "chat-off") {
                             $this->setState($player, true);
                             $player->sendMessage(mc::_("Chat disabled from %1%", $sender->getName()));
                             $sender->sendMessage(mc::_("Chat disabled for %1%", $player->getDisplayName()));
                         } else {
                             $this->unsetState($player);
                             $player->sendMessage(mc::_("Chat enabled from %1%", $sender->getName()));
                             $sender->sendMessage(mc::_("Chat enabled for %1%", $player->getDisplayName()));
                         }
                         return true;
                 }
                 return false;
             }
             if (!MPMU::inGame($sender)) {
                 return true;
             }
             if ($cmd->getName() == "chat-off") {
                 $this->setState($sender, true);
                 $sender->sendMessage(mc::_("Chat disabled"));
             } else {
                 $this->unsetState($sender);
                 $sender->sendMessage(mc::_("Chat enabled"));
             }
             return true;
     }
     return false;
 }
Beispiel #19
0
 private function spyCmd(CommandSender $sender, $args)
 {
     if (count($args) == 0) {
         return false;
     }
     switch (strtolower($args[0])) {
         case "status":
             if (count($args) > 2) {
                 return false;
             }
             if (count($args) == 1) {
                 if (!MPMU::inGame($sender)) {
                     return true;
                 }
                 $pl = $sender;
             } else {
                 if (($pl = MPMU::getPlayer($sender, $args[0])) == null) {
                     return true;
                 }
             }
             if (!$this->spy->isTapping($pl)) {
                 $sender->sendMessage(mc::_("%1% is not spying", $pl->getName()));
                 return true;
             }
             $taps = $this->spy->getTaps($pl);
             if ($taps == null) {
                 $sender->sendMessage(mc::_("%1% has a global tap", $pl->getName()));
                 return true;
             }
             $sender->sendMessage(mc::_("%1% spying on: %2%", $pl->getName(), implode(", ", $taps)));
             return true;
         case "start":
         case "stop":
             if (count($args) != 2) {
                 return false;
             }
             if (!MPMU::inGame($sender)) {
                 return true;
             }
             $ena = strtolower($args[0]) == "start";
             if ($ena) {
                 if (!$this->spy->isTapping($sender)) {
                     $this->spy->configTap($sender, [$this, "spyCb"]);
                 }
             }
             switch (strtolower($args[1])) {
                 case "--all":
                     $this->spy->setTap($sender, null, $ena);
                     if ($ena) {
                         $this->owner->getServer()->broadcastMessage(mc::_("%1% activated a global tap", $sender->getName()));
                     } else {
                         $this->spy->configTap($sender, null);
                         $this->owner->getServer()->broadcastMessage(mc::_("%1% stopped tapping", $sender->getName()));
                     }
                     return true;
                 case "--console":
                     $this->spy->setTap($sender, SpySession::CONSOLE, $ena);
                     $this->spy->setTap($sender, SpySession::RCON, $ena);
                     $this->owner->getServer()->broadcastMessage($ena ? mc::_("%1% activated a console tap", $sender->getName()) : mc::_("%1% stopped a console tap"));
                     break;
                 default:
                     if (($pl = MPMU::getPlayer($sender, $args[1])) == null) {
                         return true;
                     }
                     $this->spy->setTap($sender, $pl, $ena);
                     $this->owner->getServer()->broadcastMessage($ena ? mc::_("%1% is spying on %2%", $sender->getName(), $pl->getName()) : mc::_("%1% stopped spying on %2%", $sender->getName(), $pl->getName()));
                     break;
             }
             if (!$ena) {
                 if (count($this->spy->getTaps($sender)) == 0) {
                     $this->spy->configTap($sender, null);
                 }
             }
             return true;
     }
     return false;
 }
Beispiel #20
0
 private function cmdWarp(CommandSender $sender, $args)
 {
     switch (count($args)) {
         case 0:
             $warps = $this->getWarps();
             if (count($warps)) {
                 $sender->sendMessage(mc::_("Warps(%1%): %2%", count($warps), implode(", ", $warps)));
             } else {
                 $sender->sendMessage(mc::_("No warps defined"));
             }
             return true;
         case 1:
             if (!MPMU::inGame($sender)) {
                 return true;
             }
             $n = strtolower($args[0]);
             $pos = $this->getWarp($n);
             if ($pos === null) {
                 $sender->sendMessage(mc::_("Warp %1% does not exist", $args[0]));
                 return true;
             }
             if (!MPMU::access($sender, "gb.warp." . $n)) {
                 return true;
             }
             $sender->sendMessage(mc::_("Warping to %1%", $args[0]));
             $sender->teleport($pos);
             return true;
         case 2:
             if (!MPMU::access($sender, "gb.cmd.warp.other")) {
                 return true;
             }
             if (($player = MPMU::getPlayer($sender, $args[0])) === null) {
                 return true;
             }
             $n = strtolower($args[1]);
             $pos = $this->getWarp($n);
             if ($pos === null) {
                 $player->sendMessage(mc::_("Warp %1% does not exist", $args[1]));
                 return true;
             }
             if (!MPMU::access($sender, "gb.warp." . $n)) {
                 return true;
             }
             $player->sendMessage(mc::_("You are being warped to %1% by %2%", $args[1], $sender->getName()));
             $player->teleport($pos);
             $sender->sendMessage(mc::_("%1% was warped to %2%", $player->getDisplayName(), $args[1]));
             return true;
     }
     return false;
 }
 public function onCommand(CommandSender $sender, Command $cmd, $label, array $args)
 {
     if (count($args) == 0) {
         $sender->sendMessage(mc::_("Frozen: %1%", count($this->frosties)));
         if (count($this->frosties)) {
             $sender->sendMessage(implode(", ", $this->frosties));
         }
         return true;
     }
     switch ($cmd->getName()) {
         case "freeze":
             if ($args[0] == "--hard") {
                 $sender->sendMessage(mc::_("Now doing hard freeze"));
                 $this->setHardFreeze(true);
                 return true;
             } elseif ($args[0] == "--soft") {
                 $sender->sendMessage(mc::_("Now doing soft freeze"));
                 $this->setHardFreeze(false);
                 return true;
             }
             foreach ($args as $n) {
                 if (($player = MPMU::getPlayer($sender, $n)) === null) {
                     continue;
                 }
                 $this->frosties[strtolower($player->getName())] = $player->getName();
                 $player->sendMessage(mc::_("You have been frozen by %1%", $sender->getName()));
                 $sender->sendMessage(mc::_("%1% is frozen.", $n));
             }
             return true;
         case "thaw":
             foreach ($args as $n) {
                 if (isset($this->frosties[strtolower($n)])) {
                     unset($this->frosties[strtolower($n)]);
                     $player = $this->owner->getServer()->getPlayer($n);
                     if ($player) {
                         $player->sendMessage(mc::_("You have been thawed by %1%", $sender->getName()));
                     }
                     $sender->sendMessage(mc::_("%1% is thawed", $n));
                 } else {
                     $sender->sendMessage(mc::_("%1% not found or not thawed", $n));
                 }
             }
             return true;
     }
     return false;
 }