org.bukkit.inventory
Class ItemStack

java.lang.Object
  extended by org.bukkit.inventory.ItemStack
All Implemented Interfaces:
Cloneable, ConfigurationSerializable

public class ItemStack
extends Object
implements Cloneable, ConfigurationSerializable

Represents a stack of items


Constructor Summary
protected ItemStack()
           
  ItemStack(int type)
          Defaults stack size to 1, with no extra data
  ItemStack(int type, int amount)
          An item stack with no extra data
  ItemStack(int type, int amount, short damage)
          An item stack with the specified damage / durability
  ItemStack(int type, int amount, short damage, Byte data)
          Deprecated. this method uses an ambiguous data byte object
  ItemStack(ItemStack stack)
          Creates a new item stack derived from the specified stack
  ItemStack(Material type)
          Defaults stack size to 1, with no extra data
  ItemStack(Material type, int amount)
          An item stack with no extra data
  ItemStack(Material type, int amount, short damage)
          An item stack with the specified damage / durabiltiy
  ItemStack(Material type, int amount, short damage, Byte data)
          Deprecated. this method uses an ambiguous data byte object
 
Method Summary
 void addEnchantment(Enchantment ench, int level)
          Adds the specified Enchantment to this item stack.
 void addEnchantments(Map<Enchantment,Integer> enchantments)
          Adds the specified enchantments to this item stack.
 void addUnsafeEnchantment(Enchantment ench, int level)
          Adds the specified Enchantment to this item stack.
 void addUnsafeEnchantments(Map<Enchantment,Integer> enchantments)
          Adds the specified enchantments to this item stack in an unsafe manner.
 ItemStack clone()
           
 boolean containsEnchantment(Enchantment ench)
          Checks if this ItemStack contains the given Enchantment
static ItemStack deserialize(Map<String,Object> args)
          Required method for configuration serialization
 boolean equals(Object obj)
           
 int getAmount()
          Gets the amount of items in this stack
 MaterialData getData()
          Gets the MaterialData for this stack of items
 short getDurability()
          Gets the durability of this item
 int getEnchantmentLevel(Enchantment ench)
          Gets the level of the specified enchantment on this item stack
 Map<Enchantment,Integer> getEnchantments()
          Gets a map containing all enchantments and their levels on this item.
 ItemMeta getItemMeta()
          Get a copy of this ItemStack's ItemMeta.
 int getMaxStackSize()
          Get the maximum stacksize for the material hold in this ItemStack Returns -1 if it has no idea.
 Material getType()
          Gets the type of this item
 int getTypeId()
          Gets the type id of this item
 int hashCode()
           
 boolean hasItemMeta()
          Checks to see if any meta data has been defined.
 boolean isSimilar(ItemStack stack)
          This method is the same as equals, but does not consider stack size (amount).
 int removeEnchantment(Enchantment ench)
          Removes the specified Enchantment if it exists on this item stack
 Map<String,Object> serialize()
          Creates a Map representation of this class.
 void setAmount(int amount)
          Sets the amount of items in this stack
 void setData(MaterialData data)
          Sets the MaterialData for this stack of items
 void setDurability(short durability)
          Sets the durability of this item
 boolean setItemMeta(ItemMeta itemMeta)
          Set the ItemMeta of this ItemStack.
 void setType(Material type)
          Sets the type of this item

Note that in doing so you will reset the MaterialData for this stack

 void setTypeId(int type)
          Sets the type id of this item

Note that in doing so you will reset the MaterialData for this stack

 String toString()
           
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ItemStack

protected ItemStack()

ItemStack

public ItemStack(int type)
Defaults stack size to 1, with no extra data

Parameters:
type - item material id

ItemStack

public ItemStack(Material type)
Defaults stack size to 1, with no extra data

Parameters:
type - item material

ItemStack

public ItemStack(int type,
                 int amount)
An item stack with no extra data

Parameters:
type - item material id
amount - stack size

ItemStack

public ItemStack(Material type,
                 int amount)
An item stack with no extra data

Parameters:
type - item material
amount - stack size

ItemStack

public ItemStack(int type,
                 int amount,
                 short damage)
An item stack with the specified damage / durability

Parameters:
type - item material id
amount - stack size
damage - durability / damage

ItemStack

public ItemStack(Material type,
                 int amount,
                 short damage)
An item stack with the specified damage / durabiltiy

Parameters:
type - item material
amount - stack size
damage - durability / damage

ItemStack

@Deprecated
public ItemStack(int type,
                            int amount,
                            short damage,
                            Byte data)
Deprecated. this method uses an ambiguous data byte object


ItemStack

@Deprecated
public ItemStack(Material type,
                            int amount,
                            short damage,
                            Byte data)
Deprecated. this method uses an ambiguous data byte object


ItemStack

public ItemStack(ItemStack stack)
          throws IllegalArgumentException
Creates a new item stack derived from the specified stack

Parameters:
stack - the stack to copy
Throws:
IllegalArgumentException - if the specified stack is null or returns an item meta not created by the item factory
Method Detail

getType

public Material getType()
Gets the type of this item

Returns:
Type of the items in this stack

setType

public void setType(Material type)
Sets the type of this item

Note that in doing so you will reset the MaterialData for this stack

Parameters:
type - New type to set the items in this stack to

getTypeId

public int getTypeId()
Gets the type id of this item

Returns:
Type Id of the items in this stack

setTypeId

public void setTypeId(int type)
Sets the type id of this item

Note that in doing so you will reset the MaterialData for this stack

Parameters:
type - New type id to set the items in this stack to

getAmount

public int getAmount()
Gets the amount of items in this stack

Returns:
Amount of items in this stick

setAmount

public void setAmount(int amount)
Sets the amount of items in this stack

Parameters:
amount - New amount of items in this stack

getData

public MaterialData getData()
Gets the MaterialData for this stack of items

Returns:
MaterialData for this item

setData

public void setData(MaterialData data)
Sets the MaterialData for this stack of items

Parameters:
data - New MaterialData for this item

setDurability

public void setDurability(short durability)
Sets the durability of this item

Parameters:
durability - Durability of this item

getDurability

public short getDurability()
Gets the durability of this item

Returns:
Durability of this item

getMaxStackSize

public int getMaxStackSize()
Get the maximum stacksize for the material hold in this ItemStack Returns -1 if it has no idea.

Returns:
The maximum you can stack this material to.

toString

public String toString()
Overrides:
toString in class Object

equals

public boolean equals(Object obj)
Overrides:
equals in class Object

isSimilar

public boolean isSimilar(ItemStack stack)
This method is the same as equals, but does not consider stack size (amount).

Parameters:
stack - the item stack to compare to
Returns:
true if the two stacks are equal, ignoring the amount

clone

public ItemStack clone()
Overrides:
clone in class Object

hashCode

public final int hashCode()
Overrides:
hashCode in class Object

containsEnchantment

public boolean containsEnchantment(Enchantment ench)
Checks if this ItemStack contains the given Enchantment

Parameters:
ench - Enchantment to test
Returns:
True if this has the given enchantment

getEnchantmentLevel

public int getEnchantmentLevel(Enchantment ench)
Gets the level of the specified enchantment on this item stack

Parameters:
ench - Enchantment to check
Returns:
Level of the enchantment, or 0

getEnchantments

public Map<Enchantment,Integer> getEnchantments()
Gets a map containing all enchantments and their levels on this item.

Returns:
Map of enchantments.

addEnchantments

public void addEnchantments(Map<Enchantment,Integer> enchantments)
Adds the specified enchantments to this item stack.

This method is the same as calling addEnchantment(org.bukkit.enchantments.Enchantment, int) for each element of the map.

Parameters:
enchantments - Enchantments to add
Throws:
IllegalArgumentException - if the specified enchantments is null
IllegalArgumentException - if any specific enchantment or level is null. Warning: Some enchantments may be added before this exception is thrown.

addEnchantment

public void addEnchantment(Enchantment ench,
                           int level)
Adds the specified Enchantment to this item stack.

If this item stack already contained the given enchantment (at any level), it will be replaced.

Parameters:
ench - Enchantment to add
level - Level of the enchantment
Throws:
IllegalArgumentException - if enchantment null, or enchantment is not applicable

addUnsafeEnchantments

public void addUnsafeEnchantments(Map<Enchantment,Integer> enchantments)
Adds the specified enchantments to this item stack in an unsafe manner.

This method is the same as calling addUnsafeEnchantment(org.bukkit.enchantments.Enchantment, int) for each element of the map.

Parameters:
enchantments - Enchantments to add

addUnsafeEnchantment

public void addUnsafeEnchantment(Enchantment ench,
                                 int level)
Adds the specified Enchantment to this item stack.

If this item stack already contained the given enchantment (at any level), it will be replaced.

This method is unsafe and will ignore level restrictions or item type. Use at your own discretion.

Parameters:
ench - Enchantment to add
level - Level of the enchantment

removeEnchantment

public int removeEnchantment(Enchantment ench)
Removes the specified Enchantment if it exists on this item stack

Parameters:
ench - Enchantment to remove
Returns:
Previous level, or 0

serialize

public Map<String,Object> serialize()
Description copied from interface: ConfigurationSerializable
Creates a Map representation of this class.

This class must provide a method to restore this class, as defined in the ConfigurationSerializable interface javadocs.

Specified by:
serialize in interface ConfigurationSerializable
Returns:
Map containing the current state of this class

deserialize

public static ItemStack deserialize(Map<String,Object> args)
Required method for configuration serialization

Parameters:
args - map to deserialize
Returns:
deserialized item stack
See Also:
ConfigurationSerializable

getItemMeta

public ItemMeta getItemMeta()
Get a copy of this ItemStack's ItemMeta.

Returns:
a copy of the current ItemStack's ItemData

hasItemMeta

public boolean hasItemMeta()
Checks to see if any meta data has been defined.

Returns:
Returns true if some meta data has been set for this item

setItemMeta

public boolean setItemMeta(ItemMeta itemMeta)
Set the ItemMeta of this ItemStack.

Parameters:
itemMeta - new ItemMeta, or null to indicate meta data be cleared.
Returns:
True if successfully applied ItemMeta, see ItemFactory.isApplicable(ItemMeta, ItemStack)
Throws:
IllegalArgumentException - if the item meta was not created by the ItemFactory


Copyright © 2013. All Rights Reserved.