pocketmine\item\Item::fromString PHP Method

fromString() public static method

public static fromString ( string $str, boolean $multiple = false ) : Item[] | Item
$str string
$multiple boolean
return Item[] | Item
    public static function fromString(string $str, bool $multiple = false)
    {
        if ($multiple === true) {
            $blocks = [];
            foreach (explode(",", $str) as $b) {
                $blocks[] = self::fromString($b, false);
            }
            return $blocks;
        } else {
            $b = explode(":", str_replace([" ", "minecraft:"], ["_", ""], trim($str)));
            if (!isset($b[1])) {
                $meta = 0;
            } else {
                $meta = $b[1] & 0xffff;
            }
            if (defined(Item::class . "::" . strtoupper($b[0]))) {
                $item = self::get(constant(Item::class . "::" . strtoupper($b[0])), $meta);
                if ($item->getId() === self::AIR and strtoupper($b[0]) !== "AIR") {
                    $item = self::get($b[0] & 0xffff, $meta);
                }
            } else {
                $item = self::get($b[0] & 0xffff, $meta);
            }
            return $item;
        }
    }

Usage Example

Example #1
0
 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;
 }
All Usage Examples Of pocketmine\item\Item::fromString