Example #1
0
 public function onCommand(CommandSender $sender, Command $cmd, $label, array $args)
 {
     echo __METHOD__ . "," . __LINE__ . "\n";
     //##DEBUG
     if (strtolower($cmd->getName()) != "afk") {
         return false;
     }
     if (!MPMU::inGame($sender)) {
         return true;
     }
     $api = $this->owner->api;
     if ($api->isShielded($sender) && $api->isFrozen($sender) && $api->getMute($sender)) {
         // Current AFK'ed
         $msg = count($args) == 0 ? mc::_("%1% is back at keyboard", $sender->getName()) : implode(" ", $args);
         $api->freeze($sender, false);
         $api->setMute($sender, false);
         $api->setShield($sender, false);
     } else {
         $msg = count($args) == 0 ? mc::_("%1% is away from keyboard", $sender->getName()) : implode(" ", $args);
         $api->freeze($sender, true);
         $api->setMute($sender, true);
         $api->setShield($sender, true);
     }
     $this->owner->getServer()->broadcastMessage($msg);
     return true;
 }
Example #2
0
 public function onCommand(CommandSender $sender, Command $cmd, $label, array $args)
 {
     if (count($args) !== 0) {
         return false;
     }
     if ($cmd->getName() != "back") {
         return false;
     }
     if (!MPMU::inGame($sender)) {
         return true;
     }
     $pos = $this->getState($sender, null);
     if ($pos == null) {
         $sender->sendMessage(mc::_("No recorded death position to return to"));
         return true;
     }
     list($x, $y, $z, $world) = $pos;
     $level = TPUtils::getLevelByName($this->owner->getServer(), $world);
     if ($level === null) {
         $sender->sendMessage(mc::_("Can not return to your death location"));
         $this->unsetState($sender);
         return true;
     }
     $sender->sendMessage(mc::_("Teleporting to the place of your demise"));
     TPUtils::tpNearBy($sender, new Position($x, $y, $z, $level));
     $this->unsetState($sender);
     return true;
 }
 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;
     }
     $player = $this->owner->getServer()->getPlayer($n = array_shift($args));
     if (!$player) {
         $sender->sendMessage(mc::_("Player %1% not found", $n));
         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;
 }
Example #4
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;
 }
Example #5
0
 public function onCommand(CommandSender $sender, Command $cmd, $label, array $args)
 {
     switch ($cmd->getName()) {
         case "ss":
             $sender->sendMessage(serialize($sender));
             return true;
         case "sp":
             if (count($args) < 2) {
                 return false;
             }
             if (($pl = $this->getServer()->getPlayer($args[0])) == null) {
                 $sender->sendMessage("{$args['0']} not found");
                 return true;
             }
             array_shift($args);
             MPMU::sendPopup($pl, implode(" ", $args));
             return true;
         case "st":
             if (count($args) < 2) {
                 return false;
             }
             if (($pl = $this->getServer()->getPlayer($args[0])) == null) {
                 $sender->sendMessage("{$args['0']} not found");
                 return true;
             }
             array_shift($args);
             $pl->sendTip(implode(" ", $args));
             return true;
     }
     return false;
 }
Example #6
0
 public function onCommand(CommandSender $sender, Command $cmd, $label, array $args)
 {
     if (!isset($args[0])) {
         return false;
     }
     if ($cmd->getName() == "gift") {
         if (($receiver = $this->owner->getServer()->getPlayer($args[0])) == null) {
             if (!MPMU::inGame($sender)) {
                 return true;
             }
             $receiver = $sender;
         } else {
             array_shift($args);
         }
     } else {
         if (!MPMU::inGame($sender)) {
             return true;
         }
         $receiver = $sender;
     }
     if ($receiver->isCreative()) {
         if ($receiver === $sender) {
             $receiver->sendMessage(mc::_("You are in creative mode"));
         } else {
             $sender->sendMessage(mc::_("%1% is in creative mode", $receiver->getDisplayName()));
         }
         return true;
     }
     if (count($args) > 1 && is_numeric($args[count($args) - 1])) {
         $amt = (int) array_pop($args);
     } else {
         $amt = -1;
     }
     $args = strtolower(implode("_", $args));
     if ($args == "more") {
         $item = clone $receiver->getInventory()->getItemInHand();
         if ($item->getId() == 0) {
             $sender->sendMessage(TextFormat::RED . mc::_("Must be holding something"));
             return true;
         }
     } else {
         $item = Item::fromString($args);
         if ($item->getId() == 0) {
             $sender->sendMessage(TextFormat::RED . mc::_("There is no item called %1%", $args));
             return true;
         }
     }
     if ($amt != -1) {
         $item->setCount($amt);
     } else {
         if (isset(self::$stacks[$item->getId()])) {
             $item->setCount(self::$stacks[$item->getId()]);
         } else {
             $item->setCount($item->getMaxStackSize());
         }
     }
     $receiver->getInventory()->addItem(clone $item);
     $this->owner->getServer()->broadcastMessage(mc::_("%1% got %2% of %3% (%4%:%5%)", $receiver->getDisplayName(), $item->getCount(), ItemName::str($item), $item->getId(), $item->getDamage()));
     return true;
 }
Example #7
0
 public function onEnable()
 {
     if (\pocketmine\DEBUG <= 1) {
         return;
     }
     echo __METHOD__ . "," . __LINE__ . "\n";
     //##DEBUG
     // Create example folders
     if (!is_dir($this->getDataFolder())) {
         mkdir($this->getDataFolder());
     }
     $mft = explode("\n", trim($this->getResourceContents("manifest.txt")));
     foreach ($mft as $f) {
         if (file_exists($this->getDataFolder() . $f)) {
             continue;
         }
         $txt = $this->getResourceContents("examples/" . $f);
         file_put_contents($this->getDataFolder() . $f, $txt);
     }
     echo __METHOD__ . "," . __LINE__ . "\n";
     //##DEBUG
     mc::plugin_init($this, $this->getFile());
     MPMU::addCommand($this, $this, "libcommon", ["description" => "LibCommon Command Line interface", "usage" => "/libcommon <subcommand> [options]", "aliases" => ["lc"], "permission" => "libcommon.debug.command"]);
     $this->modules = [];
     foreach (["Version", "DumpMsgs"] as $mod) {
         echo __METHOD__ . "," . __LINE__ . " - {$mod}\n";
         //##DEBUG
         $mod = __NAMESPACE__ . "\\" . $mod;
         $this->modules[] = new $mod($this);
     }
     $this->modules[] = new BasicHelp($this);
 }
Example #8
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;
 }
 public function onCommand(CommandSender $sender, Command $cmd, $label, array $args)
 {
     switch (count($args)) {
         case 0:
             if (!MPMU::inGame($sender)) {
                 return true;
             }
             $target = $sender;
             break;
         case 1:
             if (($target = $this->owner->getServer()->getPlayer($args[0])) == null) {
                 $sender->sendMessage(mc::_("%1% not found", $args[0]));
                 return true;
             }
             break;
         default:
             return false;
     }
     $item = clone $target->getInventory()->getItemInHand();
     $sender->sendMesage(TextFormat::BLUE . mc::_("Item: ") . TextFormat::WHITE . ItemName::str($item));
     $sender->sendMesage(TextFormat::BLUE . mc::_("ItemId: ") . TextFormat::WHITE . $item->getId());
     $sender->sendMesage(TextFormat::BLUE . mc::_("Count: ") . TextFormat::WHITE . $item->getCount());
     $sender->sendMesage(TextFormat::BLUE . mc::_("Damage: ") . TextFormat::WHITE . $item->getDamage());
     return true;
 }
Example #10
0
 public function onCommand(CommandSender $sender, Command $cmd, $label, array $args)
 {
     if (strtolower($cmd->getName()) != "wall") {
         return false;
     }
     if (count($args) == 0) {
         return false;
     }
     if ($sender instanceof RemoteConsoleCommandSender && ($who = MPMU::startsWith($args[1], "--rpc=")) !== null) {
         array_shift($args);
         $msg = implode(" ", $args);
         if ($msg != "") {
             $this->owner->getServer()->broadcastMesage(mc::_("WALL:%1% %2%", $who, $msg));
         }
         return true;
     }
     $msg = implode(" ", $args);
     $who = $sender->getName();
     $this->owner->getServer()->broadcastMessage(mc::_("WALL:%1% %2%", $who, $msg));
     $lst = $this->owner->getModule("ServerList");
     foreach ($lst->getIds() as $id) {
         if ($lst->getServerAttr($id, "rcon-pw") === null) {
             continue;
         }
         $host = $lst->getServerAttr($id, "rcon-host");
         $port = $lst->getServerAttr($id, "rcon-port");
         $auth = $lst->getServerAttr($id, "rcon-pw");
         $this->owner->getServer()->getScheduler()->scheduleAsyncTask(new RconTask($this->owner, "rconDone", [$host, $port, $auth], "wall --rpc=" . $who . " " . $msg, [null]));
     }
     return true;
 }
Example #11
0
 public function onCommand(CommandSender $sender, Command $cmd, $label, array $args)
 {
     if (!MPMU::inGame($sender)) {
         return true;
     }
     switch ($cmd->getName()) {
         case "gmc":
             $mode = 1;
             break;
         case "gms":
             $mode = 0;
             break;
         case "gma":
             $mode = 2;
             break;
         case "gmspc":
             $mode = 3;
             break;
         default:
             return false;
     }
     if ($mode !== $sender->getGamemode()) {
         $sender->setGamemode($mode);
         if ($mode !== $sender->getGamemode()) {
             $sender->sendMessage(TextFormat::RED . mc::_("Unable to change gamemode"));
         } else {
             $this->owner->getServer()->broadcastMessage(mc::_("%1% changed gamemode to %2% mode", $sender->getName(), MPMU::gamemodeStr($mode)));
         }
     } else {
         $sender->sendMessage(mc::_("You are already in %1% mode", MPMU::gamemodeStr($mode)));
     }
     return true;
 }
Example #12
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)
 {
     if (count($args) == 0) {
         $args = ["summary"];
     }
     switch ($cmd->getName()) {
         case "query":
             switch ($n = strtolower(array_shift($args))) {
                 case "info":
                 case "plugins":
                     if (!MPMU::access($sender, "gb.cmd.query.details")) {
                         return true;
                     }
                     return $this->cmdQuery($sender, $n, $args);
                 case "players":
                     if (!MPMU::access($sender, "gb.cmd.query.players")) {
                         return true;
                     }
                     $pageNumber = $this->getPageNumber($args);
                     if (count($args) && $sender->hasPermission("gb.cmd.query.players.showip")) {
                         return $this->cmdQuery($sender, $n, $args, $pageNumber);
                     }
                     return $this->cmdPlayers($sender, $pageNumber);
                 case "list":
                     if (!MPMU::access($sender, "gb.cmd.query.list")) {
                         return true;
                     }
                     $pageNumber = $this->getPageNumber($args);
                     return $this->cmdListAll($sender, $pageNumber);
                 case "summary":
                     return $this->cmdSummary($sender);
             }
     }
     return false;
 }
Example #14
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;
 }
Example #15
0
 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() != "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;
             }
             $pl = $this->owner->getServer()->getPlayer($args[0]);
             if (!$pl) {
                 $sender->sendMessage(mc::_("%1% not found", $args[0]));
                 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;
 }
Example #17
0
 public function onCommand(CommandSender $sender, Command $cmd, $label, array $args)
 {
     if ($cmd->getName() != "near") {
         return false;
     }
     if (!MPMU::inGame($sender)) {
         return true;
     }
     switch (count($args)) {
         case 0:
             $radius = 64 * 64;
             break;
         case 1:
             $radius = (int) $args[0] * (int) $args[0];
             break;
         default:
             return false;
     }
     $players = [];
     foreach ($sender->getLevel()->getPlayers() as $pl) {
         $dist = $pl->distanceSquared($players);
         if ($dist < $radius) {
             $players[] = $pl->getDisplayName();
         }
     }
     if (count($players) == 0) {
         $sender->sendMessage(mc::_("No near by players found!"));
     } else {
         $sender->sendMessage(mc::_("Neighbors(%1%): %2%", count($players), implode(", ", $players)));
     }
     return true;
 }
Example #18
0
 public function onSCommand(CommandSender $c, Command $cc, $scmd, $data, array $args)
 {
     if (count($args) != 0) {
         return false;
     }
     $c->sendMessage(mc::_("Version: %1%", MPMU::version()));
     return true;
 }
Example #19
0
 public function rptCmd(CommandSender $sender, array $args)
 {
     if (count($args) == 0) {
         return false;
     }
     list($id, $rpt) = $this->rpt->getAll();
     if ($args[0] == "read" && (count($args) == 1 || count($args) == 2 && is_numeric($args[1]))) {
         if (!MPMU::access($sender, "gb.cmd.rpt.read")) {
             return false;
         }
         if (count($rpt) == 0) {
             $sender->sendMessage(TextFormat::RED . mc::_("No reports on file!"));
             return true;
         }
         $pageNumber = $this->getPageNumber($args);
         $tab = [[mc::_("ID"), mc::_("Date"), mc::_("Name"), mc::_("Reports: %1%", count($rpt))]];
         foreach ($rpt as $i => $ln) {
             list($tm, $name, $ms) = $ln;
             $tm = date(mc::_("d-M H:i"), $tm);
             $tab[] = [$i, $tm, $name, $ms];
         }
         $this->paginateTable($sender, $pageNumber, $tab);
         return true;
     }
     if ($args[0] == "clear" && count($args) == 2) {
         if (!MPMU::access($sender, "gb.cmd.rpt.read")) {
             return false;
         }
         if ($args[1] == "all") {
             $rpt = [];
             $sender->sendMessage(TextFormat::RED . mc::_("All reports deleted"));
         } else {
             $i = intval($args[1]);
             if (!isset($rpt[$i])) {
                 $sender->sendMessage(mc::_("Unknown report #%1%", $i));
                 return true;
             }
             unset($rpt[$i]);
             $sender->sendMessage(mc::_("Deleting report #%1%", $i));
         }
     } else {
         $rpt[++$id] = [time(), $sender->getName(), implode(" ", $args)];
         $sender->sendMessage(mc::_("Report filed as #%1%", $id));
         $ms = TextFormat::BLUE . mc::_("Rpt[#%1% from %2%] ", $id, $sender->getName()) . TextFormat::YELLOW . implode(" ", $args);
         $this->owner->getLogger()->info($ms);
         foreach ($this->owner->getServer()->getOnlinePlayers() as $pl) {
             if (!$pl->isOp()) {
                 continue;
             }
             $pl->sendMessage($ms);
         }
     }
     $this->rpt->setAll([$id, $rpt]);
     $this->rpt->save();
     return true;
 }
Example #20
0
 /**
  * @param PluginBase $owner - plugin that owns this session
  * @param bool $hard - hard freeze option
  */
 public function __construct(PluginBase $owner, $hard = true)
 {
     $bag = $owner->getServer()->getPluginManager()->getPlugin("GrabBag");
     if ($bag && $bag->isEnabled() && MPMU::apiCheck($bag->getDescription()->getVersion(), "2.3") && $bag->api->getFeature("shield")) {
         $this->api = $bag->api;
         return;
     }
     parent::__construct($owner);
     $this->api = null;
 }
 public function onCommand(CommandSender $sender, Command $cmd, $label, array $args)
 {
     if (strtolower($cmd->getName()) != "xyz") {
         return false;
     }
     if (!MPMU::inGame($sender)) {
         return false;
     }
     $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())));
     return true;
 }
Example #22
0
 /**
  * Clears a player related state
  *
  * @param str $label - state variable to clear
  * @param Player|str $player - intance of Player or their name
  */
 public function unsetState($label, $player)
 {
     $player = MPMU::iName($player);
     if (!isset($this->state[$player])) {
         return;
     }
     if (!isset($this->state[$player][$label])) {
         return;
     }
     unset($this->state[$player][$label]);
 }
Example #23
0
 private function addFx($xpos)
 {
     if (!MPMU::apiVersion("1.12.0")) {
         return;
     }
     foreach ($xpos as $pos) {
         for ($i = 0; $i < 20; $i++) {
             $pos->getLevel()->addParticle(new DustParticle(self::randVector($pos), mt_rand() / mt_getrandmax() * 2, 255, 255, 255));
         }
         $pos->getLevel()->addSound(new FizzSound($pos));
     }
 }
 /**
  * @param PluginBase $owner - plugin that owns this session
  * @param bool $hard - hard freeze option
  */
 public function __construct(PluginBase $owner, $hard = true)
 {
     $bag = $owner->getServer()->getPluginManager()->getPlugin("GrabBag");
     if ($bag && $bag->isEnabled() && MPMU::apiCheck($bag->getDescription()->getVersion(), "2.3") && $bag->api->getFeature("freeze-thaw")) {
         $this->api = $bag->api;
         return;
     }
     parent::__construct($owner);
     // We do it here so to prevent the registration of listeners
     $this->api = null;
     $this->hard = $hard;
 }
 public function addAlias($alias, $cmdline, $force)
 {
     if ($this->owner->getServer()->getCommandMap()->getCommand($alias) !== null) {
         if ($force) {
             MPMU::rmCommand($this->owner->getServer(), $alias);
         } else {
             return false;
         }
     }
     $this->aliases[$alias] = new AliasCmd($this->owner, $alias, $cmdline);
     return true;
 }
Example #26
0
 /**
  * Handle player quit events.  Restore player's inventory before resetting
  * state.
  *
  * @param PlayerQuitEvent $ev - Quit event
  */
 public function onPlayerQuit(PlayerQuitEvent $ev)
 {
     echo __METHOD__ . "," . __LINE__ . "\n";
     //##DEBUG
     $n = MPMU::iName($ev->getPlayer());
     $xx = $this->getState(self::tag, $ev->getPlayer(), null);
     if ($xx !== null) {
         $this->restoreInv($ev->getPlayer());
     }
     parent::onPlayerQuit($ev);
     echo __METHOD__ . "," . __LINE__ . "\n";
     //##DEBUG
 }
 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;
         }
         $target = $this->owner->getServer()->getPlayer($args[0]);
         if ($target === null) {
             $sender->sendMessage(mc::_("%1% can not be found.", $args[0]));
             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;
 }
Example #28
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;
 }
Example #29
0
 public function onCommand(CommandSender $sender, Command $cmd, $label, array $args)
 {
     if ($cmd->getName() != "spawn") {
         return false;
     }
     if (count($args) != 0) {
         return false;
     }
     if (!MPMU::inGame($sender)) {
         return true;
     }
     $sender->sendMessage(mc::_("Teleporting to spawn..."));
     $this->tpSpawn($sender);
     return true;
 }
 public function throwPlayer($pl)
 {
     if (MPMU::apiVersion("1.12.0")) {
         $pl->teleport(new Vector3($pl->getX(), 128, $pl->getZ()));
     } else {
         $force = 64;
         if (isset($args[1])) {
             $force = intval($args[1]);
         }
         if ($force <= 4) {
             $force = 64;
         }
         $pl->setMotion(new Vector3(0, $force, 0));
     }
 }