Bukkit-API  1.7.9-R0.2
The inofficial Bukkit-API
MaterialData.java
1 package org.bukkit.material;
2 
4 import org.bukkit.Material;
5 
6 /**
7  * Handles specific metadata for certain items or blocks
8  */
9 public class MaterialData implements Cloneable {
10  private final int type;
11  private byte data = 0;
12 
13  /**
14  *
15  * @deprecated Magic value
16  */
17  @Deprecated
18  public MaterialData(final int type) {
19  this(type, (byte) 0);
20  }
21 
22  public MaterialData(final Material type) {
23  this(type, (byte) 0);
24  }
25 
26  /**
27  *
28  * @deprecated Magic value
29  */
30  @Deprecated
31  public MaterialData(final int type, final byte data) {
32  this.type = type;
33  this.data = data;
34  }
35 
36  /**
37  *
38  * @deprecated Magic value
39  */
40  @Deprecated
41  public MaterialData(final Material type, final byte data) {
42  this(type.getId(), data);
43  }
44 
45  /**
46  * Gets the raw data in this material
47  *
48  * @return Raw data
49  * @deprecated Magic value
50  */
51  @Deprecated
52  public byte getData() {
53  return data;
54  }
55 
56  /**
57  * Sets the raw data of this material
58  *
59  * @param data New raw data
60  * @deprecated Magic value
61  */
62  @Deprecated
63  public void setData(byte data) {
64  this.data = data;
65  }
66 
67  /**
68  * Gets the Material that this MaterialData represents
69  *
70  * @return Material represented by this MaterialData
71  */
72  public Material getItemType() {
73  return Material.getMaterial(type);
74  }
75 
76  /**
77  * Gets the Material Id that this MaterialData represents
78  *
79  * @return Material Id represented by this MaterialData
80  * @deprecated Magic value
81  */
82  @Deprecated
83  public int getItemTypeId() {
84  return type;
85  }
86 
87  /**
88  * Creates a new ItemStack based on this MaterialData
89  *
90  * @return New ItemStack containing a copy of this MaterialData
91  */
93  return new ItemStack(type, 0, data);
94  }
95 
96  /**
97  * Creates a new ItemStack based on this MaterialData
98  *
99  * @param amount The stack size of the new stack
100  * @return New ItemStack containing a copy of this MaterialData
101  */
102  public ItemStack toItemStack(int amount) {
103  return new ItemStack(type, amount, data);
104  }
105 
106  @Override
107  public String toString() {
108  return getItemType() + "(" + getData() + ")";
109  }
110 
111  @Override
112  public int hashCode() {
113  return ((getItemTypeId() << 8) ^ getData());
114  }
115 
116  @Override
117  public boolean equals(Object obj) {
118  if (obj != null && obj instanceof MaterialData) {
119  MaterialData md = (MaterialData) obj;
120 
121  return (md.getItemTypeId() == getItemTypeId() && md.getData() == getData());
122  } else {
123  return false;
124  }
125  }
126 
127  @Override
128  public MaterialData clone() {
129  try {
130  return (MaterialData) super.clone();
131  } catch (CloneNotSupportedException e) {
132  throw new Error(e);
133  }
134  }
135 }
MaterialData(final int type, final byte data)
static Material getMaterial(final int id)
Definition: Material.java:575
MaterialData(final Material type, final byte data)
ItemStack toItemStack(int amount)