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; }
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; }
/** Inventory related variables * @param Player $player - reference to pocketmine Player * @param array &$vars - receives variable defintions */ public function invPlayerVars(Player $player, array &$vars) { $item = clone $player->getInventory()->getItemInHand(); if ($item->getId() == Item::AIR) { $vars["{item}"] = ""; $vars["{itemid}"] = ""; } else { $vars["{item}"] = ItemName::str($item); $vars["{itemid}"] = $item->getId(); } }
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%", ItemName::str($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; }
private function rmInvItem(CommandSender $sender, array $args) { if (count($args) == 0) { return false; } if (($target = $this->owner->getServer()->getPlayer($args[0])) === null) { if (!MPMU::inGame($sender)) { return true; } $target = $sender; $other = false; } else { if (!MPMU::access($sender, "gb.cmd.rminv.others")) { return true; } array_shift($args); $other = true; } if (count($args) == 0) { return false; } if ($target->isCreative() || $target->isSpectator()) { $sender->sendMessage(mc::_("%1% is in %2% mode", $target->getDisplayName(), MPMU::gamemodeStr($target->getGamemode()))); return true; } $count = null; if (count($args) > 1 && is_numeric($args[count($args) - 1])) { $count = array_pop($args); } $args = strtolower(implode("_", $args)); if ($args == "hand") { $item = clone $target->getInventory()->getItemInHand(); if ($item->getId() == 0) { $sender->sendMessage(mc::_("Must be holding something")); return true; } } else { $item = Item::fromString($args); if ($item->getId() == 0) { $sender->sendMessage(mc::_("There is no item called %1%", $args)); return true; } } $k = InvUtils::rmInvItem($target, $item, $count); if ($k) { $sender->sendMessage(mc::n(mc::_("one item of %1% removed", ItemName::str($item)), mc::_("%2% items of %1% removed", ItemName::str($item), $k), $k)); if ($other) { $target->sendMessage(mc::n(mc::_("%2% took one item of %1% from you", ItemName::str($item), $sender->getName()), mc::_("%3% took %2% items of %1% from you", ItemName::str($item), $k, $sender->getName()), $k)); } } else { $sender->sendMessage(mc::_("No items were removed!")); } return true; }
public function onCommand(CommandSender $sender, Command $cmd, $label, array $args) { if (count($args) == 0) { return false; } $pl = $this->owner->getServer()->getPlayer($args[0]); if ($pl !== null) { array_shift($args); if (count($args) == 0) { return false; } if (!MPMU::access($sender, "gb.cmd.setarmor.others")) { return true; } $others = true; } else { if (!MPMU::inGame($sender)) { return true; } $pl = $sender; $others = false; } $j = implode("_", $args); $item = Item::fromString($j); $slot = ArmorItems::getArmorPart($item->getId()); if ($slot != ArmorItems::ERROR) { $pl->getInventory()->setArmorItem($slot, clone $item); if ($others) { $pl->sendMessage(mc::_("You were equiped an %1% by %2%", ItemName::str($item), $sender->getName())); $sender->sendMessage(mc::_("Equiping %1% with %2%", $pl->getDisplayName(), ItemName::str($item))); } else { $sender->sendMessage(mc::_("Equiping armor %1%", ItemName::str($item))); } $pl->getInventory()->sendArmorContents($pl); return true; } if (($type = ArmorItems::str2quality($j)) == ArmorItems::ERROR) { $sender->sendMessage(mc::_("Unknown armor quality %1%", $j)); return false; } foreach ([0, 1, 2, 3] as $slot) { $pl->getInventory()->setArmorItem($slot, new Item(ArmorItems::getItemId($type, $slot), 0, 1)); } if ($type == ArmorItems::NONE) { if ($others) { $pl->sendMessage(mc::_("You were armoured down by %1%", $sender->getName())); $sender->sendMessage(mc::_("%1% was armoured down", $pl->getDisplayName())); } else { $sender->sendMessage(mc::_("Armoured down")); } } else { if ($others) { $pl->sendMessage(mc::_("You were armoured up by %1%", $sender->getName())); $sender->sendMessage(mc::_("%1% was armoured up", $pl->getDisplayName())); } else { $sender->sendMessage(mc::_("Armoured up")); } } $pl->getInventory()->sendArmorContents($pl); return true; }
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; }