PocketMine-MP 5.15.1 git-ed158f8a1b0cfe334ac5f45febc0f633602014f2
pocketmine\item\Item Class Reference
+ Inheritance diagram for pocketmine\item\Item:
+ Collaboration diagram for pocketmine\item\Item:

Public Member Functions

 __construct (private ItemIdentifier $identifier, protected string $name="Unknown", private array $enchantmentTags=[])
 
 __clone ()
 
 __toString ()
 
 canBePlaced ()
 
 canStackWith (Item $other)
 
 clearCustomBlockData ()
 
 clearCustomName ()
 
 clearNamedTag ()
 
 equals (Item $item, bool $checkDamage=true, bool $checkCompound=true)
 
 equalsExact (Item $other)
 
 getAttackPoints ()
 
 getBlock (?int $clickedFace=null)
 
 getBlockToolHarvestLevel ()
 
 getBlockToolType ()
 
 getCanDestroy ()
 
 getCanPlaceOn ()
 
 getCooldownTicks ()
 
 getCount ()
 
 getCustomBlockData ()
 
 getCustomName ()
 
 getDefensePoints ()
 
 getEnchantability ()
 
 getEnchantmentTags ()
 
 getFuelResidue ()
 
 getFuelTime ()
 
 getLore ()
 
 getMaxStackSize ()
 
 getMiningEfficiency (bool $isCorrectTool)
 
 getName ()
 
 getNamedTag ()
 
 getStateId ()
 
 getTypeId ()
 
 getVanillaName ()
 
 hasCustomBlockData ()
 
 hasCustomName ()
 
 hasNamedTag ()
 
 isFireProof ()
 
 isNull ()
 
 jsonSerialize ()
 
 keepOnDeath ()
 
 nbtSerialize (int $slot=-1)
 
 onAttackEntity (Entity $victim, array &$returnedItems)
 
 onClickAir (Player $player, Vector3 $directionVector, array &$returnedItems)
 
 onDestroyBlock (Block $block, array &$returnedItems)
 
 onInteractBlock (Player $player, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, array &$returnedItems)
 
 onInteractEntity (Player $player, Entity $entity, Vector3 $clickVector)
 
 onReleaseUsing (Player $player, array &$returnedItems)
 
 onTickWorn (Living $entity)
 
 pop (int $count=1)
 
 setCanDestroy (array $canDestroy)
 
 setCanPlaceOn (array $canPlaceOn)
 
 setCount (int $count)
 
 setCustomBlockData (CompoundTag $compound)
 
 setCustomName (string $name)
 
 setKeepOnDeath (bool $keepOnDeath)
 
 setLore (array $lines)
 
 setNamedTag (CompoundTag $tag)
 

Static Public Member Functions

static legacyJsonDeserialize (array $data)
 
static nbtDeserialize (CompoundTag $tag)
 

Public Attributes

const TAG_BLOCK_ENTITY_TAG = "BlockEntityTag"
 
const TAG_DISPLAY = "display"
 
const TAG_DISPLAY_LORE = "Lore"
 
const TAG_DISPLAY_NAME = "Name"
 
const TAG_ENCH = "ench"
 
const TAG_KEEP_ON_DEATH = "minecraft:keep_on_death"
 

Protected Member Functions

 describeState (RuntimeDataDescriber $w)
 
 deserializeCompoundTag (CompoundTag $tag)
 
 serializeCompoundTag (CompoundTag $tag)
 

Protected Attributes

CompoundTag $blockEntityTag = null
 
array $canDestroy = []
 
array $canPlaceOn = []
 
int $count = 1
 
string $customName = ""
 
bool $keepOnDeath = false
 
array $lore = []
 

Detailed Description

Definition at line 60 of file Item.php.

Constructor & Destructor Documentation

◆ __construct()

pocketmine\item\Item::__construct ( private ItemIdentifier  $identifier,
protected string  $name = "Unknown",
private array  $enchantmentTags = [] 
)

Constructs a new Item type. This constructor should ONLY be used when constructing a new item TYPE to register into the index.

NOTE: This should NOT BE USED for creating items to set into an inventory. Use VanillaItems for that purpose.

See also
VanillaItems
Parameters
string[]$enchantmentTags

Definition at line 113 of file Item.php.

Member Function Documentation

◆ __clone()

pocketmine\item\Item::__clone ( )

Definition at line 753 of file Item.php.

◆ __toString()

pocketmine\item\Item::__toString ( )
final

Definition at line 682 of file Item.php.

◆ canBePlaced()

pocketmine\item\Item::canBePlaced ( )
final

Definition at line 484 of file Item.php.

◆ canStackWith()

pocketmine\item\Item::canStackWith ( Item  $other)
final

Returns whether this item could stack with the given item (ignoring stack size and count).

Definition at line 671 of file Item.php.

◆ clearCustomBlockData()

pocketmine\item\Item::clearCustomBlockData ( )
Returns
$this

Definition at line 128 of file Item.php.

◆ clearCustomName()

pocketmine\item\Item::clearCustomName ( )
Returns
$this

Definition at line 166 of file Item.php.

◆ clearNamedTag()

pocketmine\item\Item::clearNamedTag ( )

Removes the Item's NBT.

Returns
$this
Exceptions
NbtException

Definition at line 279 of file Item.php.

◆ describeState()

pocketmine\item\Item::describeState ( RuntimeDataDescriber  $w)
protected

Describes state properties of the item, such as colour, skull type, etc. This allows associating basic extra data with the item at runtime in a more efficient format than NBT.

Reimplemented in pocketmine\item\Banner, pocketmine\item\CoralFan, pocketmine\item\Dye, pocketmine\item\ItemBlock, pocketmine\item\Medicine, pocketmine\item\Potion, pocketmine\item\SplashPotion, and pocketmine\item\SuspiciousStew.

Definition at line 513 of file Item.php.

◆ deserializeCompoundTag()

pocketmine\item\Item::deserializeCompoundTag ( CompoundTag  $tag)
protected

◆ equals()

pocketmine\item\Item::equals ( Item  $item,
bool  $checkDamage = true,
bool  $checkCompound = true 
)
final

Compares an Item to this Item and check if they match.

Parameters
bool$checkDamage
Deprecated:
Parameters
bool$checkCompoundWhether to verify that the items' NBT match.

Definition at line 663 of file Item.php.

◆ equalsExact()

pocketmine\item\Item::equalsExact ( Item  $other)
final

Returns whether the specified item stack has the same ID, damage, NBT and count as this item stack.

Definition at line 678 of file Item.php.

◆ getAttackPoints()

pocketmine\item\Item::getAttackPoints ( )

Returns how many points of damage this item will deal to an entity when used as a weapon.

Reimplemented in pocketmine\item\Axe, pocketmine\item\Pickaxe, pocketmine\item\Shovel, and pocketmine\item\Sword.

Definition at line 551 of file Item.php.

◆ getBlock()

pocketmine\item\Item::getBlock ( ?int  $clickedFace = null)

◆ getBlockToolHarvestLevel()

pocketmine\item\Item::getBlockToolHarvestLevel ( )

Returns the harvesting power that this tool has. This affects what blocks it can mine when the tool type matches the mined block. This should return 1 for non-tiered tools, and the tool tier for tiered tools.

See also
BlockBreakInfo::getToolHarvestLevel()

Reimplemented in pocketmine\item\Axe, pocketmine\item\Pickaxe, pocketmine\item\Shears, pocketmine\item\Shovel, and pocketmine\item\Sword.

Definition at line 577 of file Item.php.

◆ getBlockToolType()

pocketmine\item\Item::getBlockToolType ( )

Returns what type of block-breaking tool this is. Blocks requiring the same tool type as the item will break faster (except for blocks requiring no tool, which break at the same speed regardless of the tool used)

Reimplemented in pocketmine\item\Axe, pocketmine\item\Hoe, pocketmine\item\Pickaxe, pocketmine\item\Shears, pocketmine\item\Shovel, and pocketmine\item\Sword.

Definition at line 566 of file Item.php.

◆ getCanDestroy()

pocketmine\item\Item::getCanDestroy ( )
Returns
string[] @phpstan-return array<string, string>

Definition at line 216 of file Item.php.

◆ getCanPlaceOn()

pocketmine\item\Item::getCanPlaceOn ( )
Returns
string[] @phpstan-return array<string, string>

Definition at line 198 of file Item.php.

◆ getCooldownTicks()

pocketmine\item\Item::getCooldownTicks ( )

Returns the number of ticks a player must wait before activating this item again.

Reimplemented in pocketmine\item\ChorusFruit, and pocketmine\item\EnderPearl.

Definition at line 653 of file Item.php.

◆ getCount()

pocketmine\item\Item::getCount ( )

Definition at line 411 of file Item.php.

◆ getCustomBlockData()

pocketmine\item\Item::getCustomBlockData ( )

Definition at line 142 of file Item.php.

◆ getCustomName()

pocketmine\item\Item::getCustomName ( )

Definition at line 150 of file Item.php.

◆ getDefensePoints()

pocketmine\item\Item::getDefensePoints ( )

Returns how many armor points can be gained by wearing this item.

Reimplemented in pocketmine\item\Armor.

Definition at line 558 of file Item.php.

◆ getEnchantability()

pocketmine\item\Item::getEnchantability ( )

Returns the value that defines how enchantable the item is.

The higher an item's enchantability is, the more likely it will be to gain high-level enchantments or multiple enchantments upon being enchanted in an enchanting table.

Reimplemented in pocketmine\item\Armor, and pocketmine\item\TieredTool.

Definition at line 480 of file Item.php.

◆ getEnchantmentTags()

pocketmine\item\Item::getEnchantmentTags ( )

Returns tags that represent the type of item being enchanted and are used to determine what enchantments can be applied to this item during in-game enchanting (enchanting table, anvil, fishing, etc.).

See also
ItemEnchantmentTags
ItemEnchantmentTagRegistry
AvailableEnchantmentRegistry
Returns
string[]

Definition at line 470 of file Item.php.

◆ getFuelResidue()

pocketmine\item\Item::getFuelResidue ( )

Returns an item after burning fuel

Reimplemented in pocketmine\item\LiquidBucket.

Definition at line 534 of file Item.php.

◆ getFuelTime()

◆ getLore()

pocketmine\item\Item::getLore ( )
Returns
string[]

Definition at line 174 of file Item.php.

◆ getMaxStackSize()

◆ getMiningEfficiency()

pocketmine\item\Item::getMiningEfficiency ( bool  $isCorrectTool)

Definition at line 581 of file Item.php.

◆ getName()

pocketmine\item\Item::getName ( )
final

Returns the name of the item, or the custom name if it is set.

Definition at line 450 of file Item.php.

◆ getNamedTag()

pocketmine\item\Item::getNamedTag ( )

Returns a tree of Tag objects representing the Item's NBT. If the item does not have any NBT, an empty CompoundTag object is returned to allow the caller to manipulate and apply back to the item.

Definition at line 252 of file Item.php.

◆ getStateId()

pocketmine\item\Item::getStateId ( )
final

Definition at line 499 of file Item.php.

◆ getTypeId()

pocketmine\item\Item::getTypeId ( )
final

Definition at line 495 of file Item.php.

◆ getVanillaName()

pocketmine\item\Item::getVanillaName ( )

Returns the vanilla name of the item, disregarding custom names.

Definition at line 457 of file Item.php.

◆ hasCustomBlockData()

pocketmine\item\Item::hasCustomBlockData ( )

Definition at line 121 of file Item.php.

◆ hasCustomName()

pocketmine\item\Item::hasCustomName ( )

Definition at line 146 of file Item.php.

◆ hasNamedTag()

pocketmine\item\Item::hasNamedTag ( )

Returns whether this Item has a non-empty NBT.

Definition at line 244 of file Item.php.

◆ isFireProof()

pocketmine\item\Item::isFireProof ( )

Returns whether this item can survive being dropped into lava, or fire.

Reimplemented in pocketmine\item\Armor, pocketmine\item\ItemBlock, and pocketmine\item\TieredTool.

Definition at line 544 of file Item.php.

◆ isNull()

pocketmine\item\Item::isNull ( )

Definition at line 443 of file Item.php.

◆ jsonSerialize()

pocketmine\item\Item::jsonSerialize ( )

@phpstan-return never

Definition at line 689 of file Item.php.

◆ keepOnDeath()

pocketmine\item\Item::keepOnDeath ( )

Returns whether players will retain this item on death. If a non-player dies it will be excluded from the drops.

Definition at line 233 of file Item.php.

◆ legacyJsonDeserialize()

static pocketmine\item\Item::legacyJsonDeserialize ( array  $data)
staticfinal

Deserializes item JSON data produced by json_encode()ing Item instances in older versions of PocketMine-MP. This method exists solely to allow upgrading old JSON data stored by plugins.

Parameters
mixed[]$data
Exceptions
SavedDataLoadingException

Definition at line 701 of file Item.php.

◆ nbtDeserialize()

static pocketmine\item\Item::nbtDeserialize ( CompoundTag  $tag)
static

Deserializes an Item from an NBT CompoundTag

Exceptions
SavedDataLoadingException

Definition at line 740 of file Item.php.

◆ nbtSerialize()

pocketmine\item\Item::nbtSerialize ( int  $slot = -1)

Serializes the item to an NBT CompoundTag

Parameters
int$slotoptional, the inventory slot of the item

Definition at line 732 of file Item.php.

◆ onAttackEntity()

pocketmine\item\Item::onAttackEntity ( Entity  $victim,
array &  $returnedItems 
)

Called when this item is used to attack an entity. Usually used to update durability.

Parameters
Item[]&$returnedItemsItems to be added to the target's inventory (or dropped, if the inventory is full)

Reimplemented in pocketmine\item\Axe, pocketmine\item\Hoe, pocketmine\item\Pickaxe, pocketmine\item\Shovel, and pocketmine\item\Sword.

Definition at line 628 of file Item.php.

◆ onClickAir()

pocketmine\item\Item::onClickAir ( Player  $player,
Vector3  $directionVector,
array &  $returnedItems 
)

Called when a player uses the item on air, for example throwing a projectile. Returns whether the item was changed, for example count decrease or durability change.

Parameters
Item[]&$returnedItemsItems to be added to the target's inventory (or dropped, if the inventory is full)

Reimplemented in pocketmine\item\Armor, and pocketmine\item\ProjectileItem.

Definition at line 600 of file Item.php.

◆ onDestroyBlock()

pocketmine\item\Item::onDestroyBlock ( Block  $block,
array &  $returnedItems 
)

Called when this item is used to destroy a block. Usually used to update durability.

Parameters
Item[]&$returnedItemsItems to be added to the target's inventory (or dropped, if the inventory is full)

Reimplemented in pocketmine\item\Axe, pocketmine\item\Hoe, pocketmine\item\Pickaxe, pocketmine\item\Shears, pocketmine\item\Shovel, and pocketmine\item\Sword.

Definition at line 619 of file Item.php.

◆ onInteractBlock()

pocketmine\item\Item::onInteractBlock ( Player  $player,
Block  $blockReplace,
Block  $blockClicked,
int  $face,
Vector3  $clickVector,
array &  $returnedItems 
)

Called when a player uses this item on a block.

Parameters
Item[]&$returnedItemsItems to be added to the target's inventory (or dropped, if the inventory is full)

Reimplemented in pocketmine\item\Bucket, pocketmine\item\FireCharge, pocketmine\item\FlintSteel, pocketmine\item\GlassBottle, pocketmine\item\LiquidBucket, pocketmine\item\PaintingItem, and pocketmine\item\SpawnEgg.

Definition at line 590 of file Item.php.

◆ onInteractEntity()

pocketmine\item\Item::onInteractEntity ( Player  $player,
Entity  $entity,
Vector3  $clickVector 
)

Called when a player uses the item to interact with entity, for example by using a name tag.

Parameters
Vector3$clickVectorThe exact position of the click (absolute coordinates)
Returns
bool whether some action took place

Reimplemented in pocketmine\item\NameTag.

Definition at line 646 of file Item.php.

◆ onReleaseUsing()

pocketmine\item\Item::onReleaseUsing ( Player  $player,
array &  $returnedItems 
)

Called when a player is using this item and releases it. Used to handle bow shoot actions. Returns whether the item was changed, for example count decrease or durability change.

Parameters
Item[]&$returnedItemsItems to be added to the target's inventory (or dropped, if the inventory is full)

Reimplemented in pocketmine\item\Bow.

Definition at line 610 of file Item.php.

◆ onTickWorn()

pocketmine\item\Item::onTickWorn ( Living  $entity)

Called when this item is being worn by an entity. Returns whether it did something.

Reimplemented in pocketmine\item\TurtleHelmet.

Definition at line 636 of file Item.php.

◆ pop()

pocketmine\item\Item::pop ( int  $count = 1)

◆ serializeCompoundTag()

pocketmine\item\Item::serializeCompoundTag ( CompoundTag  $tag)
protected

Definition at line 343 of file Item.php.

◆ setCanDestroy()

pocketmine\item\Item::setCanDestroy ( array  $canDestroy)
Parameters
string[]$canDestroy

Definition at line 223 of file Item.php.

◆ setCanPlaceOn()

pocketmine\item\Item::setCanPlaceOn ( array  $canPlaceOn)
Parameters
string[]$canPlaceOn

Definition at line 205 of file Item.php.

◆ setCount()

pocketmine\item\Item::setCount ( int  $count)
Returns
$this

Definition at line 418 of file Item.php.

◆ setCustomBlockData()

pocketmine\item\Item::setCustomBlockData ( CompoundTag  $compound)
Returns
$this

Definition at line 136 of file Item.php.

Referenced by pocketmine\block\Block\getPickedItem().

+ Here is the caller graph for this function:

◆ setCustomName()

pocketmine\item\Item::setCustomName ( string  $name)
Returns
$this

Definition at line 157 of file Item.php.

◆ setKeepOnDeath()

pocketmine\item\Item::setKeepOnDeath ( bool  $keepOnDeath)

Definition at line 237 of file Item.php.

◆ setLore()

pocketmine\item\Item::setLore ( array  $lines)
Parameters
string[]$lines
Returns
$this

Definition at line 183 of file Item.php.

Referenced by pocketmine\block\Block\getPickedItem().

+ Here is the caller graph for this function:

◆ setNamedTag()

pocketmine\item\Item::setNamedTag ( CompoundTag  $tag)

Sets the Item's NBT from the supplied CompoundTag object.

Returns
$this
Exceptions
NbtException

Definition at line 263 of file Item.php.

Member Data Documentation

◆ $blockEntityTag

CompoundTag pocketmine\item\Item::$blockEntityTag = null
protected

TODO: this needs to die in a fire

Definition at line 88 of file Item.php.

◆ $canDestroy

array pocketmine\item\Item::$canDestroy = []
protected

Definition at line 99 of file Item.php.

◆ $canPlaceOn

array pocketmine\item\Item::$canPlaceOn = []
protected

Definition at line 94 of file Item.php.

◆ $count

int pocketmine\item\Item::$count = 1
protected

Definition at line 80 of file Item.php.

◆ $customName

string pocketmine\item\Item::$customName = ""
protected

Definition at line 84 of file Item.php.

◆ $keepOnDeath

bool pocketmine\item\Item::$keepOnDeath = false
protected

Definition at line 101 of file Item.php.

◆ $lore

array pocketmine\item\Item::$lore = []
protected

Definition at line 86 of file Item.php.

◆ TAG_BLOCK_ENTITY_TAG

const pocketmine\item\Item::TAG_BLOCK_ENTITY_TAG = "BlockEntityTag"

Definition at line 68 of file Item.php.

◆ TAG_DISPLAY

const pocketmine\item\Item::TAG_DISPLAY = "display"

Definition at line 67 of file Item.php.

◆ TAG_DISPLAY_LORE

const pocketmine\item\Item::TAG_DISPLAY_LORE = "Lore"

Definition at line 71 of file Item.php.

◆ TAG_DISPLAY_NAME

const pocketmine\item\Item::TAG_DISPLAY_NAME = "Name"

Definition at line 70 of file Item.php.

◆ TAG_ENCH

const pocketmine\item\Item::TAG_ENCH = "ench"

Definition at line 63 of file Item.php.

◆ TAG_KEEP_ON_DEATH

const pocketmine\item\Item::TAG_KEEP_ON_DEATH = "minecraft:keep_on_death"

Definition at line 73 of file Item.php.


The documentation for this class was generated from the following file: