89 lines
1.9 KiB
Java
89 lines
1.9 KiB
Java
package org.bukkit.material;
|
|
|
|
import org.bukkit.inventory.ItemStack;
|
|
import org.bukkit.Material;
|
|
|
|
/**
|
|
* Handles specific metadata for certain items or blocks
|
|
*/
|
|
public class MaterialData {
|
|
private final int type;
|
|
private byte data = 0;
|
|
|
|
public MaterialData(final int type) {
|
|
this(type, (byte) 0);
|
|
}
|
|
|
|
public MaterialData(final Material type) {
|
|
this(type, (byte) 0);
|
|
}
|
|
|
|
public MaterialData(final int type, final byte data) {
|
|
this.type = type;
|
|
this.data = data;
|
|
}
|
|
|
|
public MaterialData(final Material type, final byte data) {
|
|
this(type.getId(), data);
|
|
}
|
|
|
|
/**
|
|
* Gets the raw data in this material
|
|
*
|
|
* @return Raw data
|
|
*/
|
|
public byte getData() {
|
|
return data;
|
|
}
|
|
|
|
/**
|
|
* Sets the raw data of this material
|
|
*
|
|
* @param data New raw data
|
|
*/
|
|
public void setData(byte data) {
|
|
this.data = data;
|
|
}
|
|
|
|
/**
|
|
* Gets the Material that this MaterialData represents
|
|
*
|
|
* @return Material represented by this MaterialData
|
|
*/
|
|
public Material getItemType() {
|
|
return Material.getMaterial(type);
|
|
}
|
|
|
|
/**
|
|
* Gets the Material Id that this MaterialData represents
|
|
*
|
|
* @return Material Id represented by this MaterialData
|
|
*/
|
|
public int getItemTypeId() {
|
|
return type;
|
|
}
|
|
|
|
/**
|
|
* Creates a new ItemStack based on this MaterialData
|
|
*
|
|
* @return New ItemStack containing a copy of this MaterialData
|
|
*/
|
|
public ItemStack toItemStack() {
|
|
return new ItemStack(type, 0, data);
|
|
}
|
|
|
|
/**
|
|
* Creates a new ItemStack based on this MaterialData
|
|
*
|
|
* @return New ItemStack containing a copy of this MaterialData
|
|
*/
|
|
public ItemStack toItemStack(int amount) {
|
|
return new ItemStack(type, amount, data);
|
|
}
|
|
|
|
@Override
|
|
public String toString() {
|
|
return getItemType() + "(" + getData() + ")";
|
|
}
|
|
}
|