PocketMine-MP 5.28.3 git-d5a1007c80fcee27feb2251cf5dcf1ad5a59a85c
Loading...
Searching...
No Matches
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 ()
 
 getCooldownTag ()
 
 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 770 of file Item.php.

◆ __toString()

pocketmine\item\Item::__toString ( )
final

Definition at line 699 of file Item.php.

◆ canBePlaced()

pocketmine\item\Item::canBePlaced ( )
final

Definition at line 487 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 688 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 282 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\GoatHorn, pocketmine\item\ItemBlock, pocketmine\item\Medicine, pocketmine\item\Potion, pocketmine\item\SplashPotion, and pocketmine\item\SuspiciousStew.

Definition at line 516 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 680 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 695 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 554 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 580 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 569 of file Item.php.

◆ getCanDestroy()

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

Definition at line 217 of file Item.php.

◆ getCanPlaceOn()

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

Definition at line 198 of file Item.php.

◆ getCooldownTag()

pocketmine\item\Item::getCooldownTag ( )

Returns a tag that identifies a group of items that should have cooldown at the same time regardless of their state or type. When cooldown starts, any other items with the same cooldown tag can't be used until the cooldown expires. Such behaviour can be seen in goat horns and shields.

If tag is null, item state id will be used to store cooldown.

See also
ItemCooldownTags

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

Definition at line 670 of file Item.php.

Referenced by pocketmine\player\Player\resetItemCooldown().

+ Here is the caller graph for this function:

◆ getCooldownTicks()

pocketmine\item\Item::getCooldownTicks ( )

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

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

Definition at line 656 of file Item.php.

◆ getCount()

pocketmine\item\Item::getCount ( )

Definition at line 414 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 561 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 483 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 473 of file Item.php.

◆ getFuelResidue()

pocketmine\item\Item::getFuelResidue ( )

Returns an item after burning fuel

Reimplemented in pocketmine\item\LiquidBucket.

Definition at line 537 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 584 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 453 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 255 of file Item.php.

◆ getStateId()

pocketmine\item\Item::getStateId ( )
final

Definition at line 502 of file Item.php.

◆ getTypeId()

pocketmine\item\Item::getTypeId ( )
final

Definition at line 498 of file Item.php.

◆ getVanillaName()

pocketmine\item\Item::getVanillaName ( )

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

Definition at line 460 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 247 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 547 of file Item.php.

◆ isNull()

pocketmine\item\Item::isNull ( )

Definition at line 446 of file Item.php.

◆ jsonSerialize()

pocketmine\item\Item::jsonSerialize ( )

@phpstan-return never

Definition at line 706 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 235 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 718 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 757 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 749 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 631 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, pocketmine\item\GoatHorn, and pocketmine\item\ProjectileItem.

Definition at line 603 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 622 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\EndCrystal, pocketmine\item\FireCharge, pocketmine\item\FlintSteel, pocketmine\item\GlassBottle, pocketmine\item\LiquidBucket, pocketmine\item\PaintingItem, and pocketmine\item\SpawnEgg.

Definition at line 593 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 649 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 613 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 639 of file Item.php.

◆ pop()

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

◆ serializeCompoundTag()

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

Definition at line 346 of file Item.php.

◆ setCanDestroy()

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

Definition at line 224 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 421 of file Item.php.

◆ setCustomBlockData()

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

Definition at line 136 of file Item.php.

◆ 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 239 of file Item.php.

◆ setLore()

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

Definition at line 183 of file Item.php.

◆ setNamedTag()

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

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

Returns
$this
Exceptions
NbtException

Definition at line 266 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: