public function onCommand(CommandSender $sender, Command $cmd, $label, array $args) { if (!isset($args[0])) { return false; } if ($cmd->getName() != "get") { return false; } if ($sender->isCreative()) { $sender->sendMessage(mc::_("You are in creative mode")); return true; } $item = Item::fromString($args[0]); if ($item->getId() == 0) { $sender->sendMessage(TextFormat::RED . mc::_("There is no item called %1%", $args[0])); return true; } if (isset($args[1])) { $item->setCount((int) $args[1]); } else { if (isset(self::$stacks[$item->getId()])) { $item->setCount(self::$stacks[$item->getId()]); } else { $item->setCount($item->getMaxStackSize()); } } $sender->getInventory()->addItem(clone $item); $this->owner->getServer()->broadcastMessage(mc::_("%1% got %2% of %3% (%4%:%5%)", $sender->getName(), $item->getCount(), MPMU::itemName($item), $item->getId(), $item->getDamage())); return true; }
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; } $target = $this->owner->getServer()->getPlayer($args[0]); if ($target == null) { $sender->sendMessage(mc::_("%1% can not be found.", $args[0])); 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[] = [MPMU::itemName($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, MPMU::itemName($item) . " (" . $item->getId() . ":" . $item->getDamage() . ")"]; } } return $this->paginateTable($sender, $pageNumber, $tab); }
private function cmdEtList(CommandSender $c, $args) { $pageNumber = $this->getPageNumber($args); if (count($args) > 1) { $c->sendMessage(mc::_("Usage: /et ls [world]")); return false; } if (count($args)) { $level = $this->owner->getServer()->getLevelByName($args[0]); if (!$level) { $c->sendMessage(mc::_("%1%: World not found", $args[0])); return true; } } else { if (MPMU::inGame($c, false)) { $level = $c->getLevel(); } else { $level = $this->owner->getServer()->getDefaultLevel(); } } $cnt = 0; $tab = []; $tab[] = ["-", mc::_("Name"), mc::_("Position"), mc::_("Health")]; foreach ($level->getEntities() as $e) { if ($e instanceof Player) { continue; } $id = $e->getId(); $pos = implode(",", [floor($e->getX()), floor($e->getY()), floor($e->getZ())]); if ($e instanceof Living) { $name = $e->getName(); } elseif ($e instanceof \pocketmine\entity\Item) { $name = mc::_("Item:%1%", MPMU::itemName($e->getItem())); } else { $name = basename(strtr(get_class($e), "\\", "/")); } ++$cnt; $tab[] = [$id, $name, $pos, $e->getHealth()]; } $tab[0][0] = "#:{$cnt}"; if ($cnt) { return $this->paginateTable($c, $pageNumber, $tab); } $c->sendMessage(mc::_("No entities found")); return true; }