下面列出了org.bukkit.Material#getData ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
static MaterialData decodeMaterial(int encoded) {
if (encoded == ENCODED_NULL_MATERIAL) return null;
Material material = decodeType(encoded);
if (material.getData() == MaterialData.class) {
return new MaterialData(material, decodeMetadata(encoded));
} else {
return material.getNewData(decodeMetadata(encoded));
}
}
/**
* Gets the MaterialData for this stack of items
*
* @return MaterialData for this item
*/
public MaterialData getData() {
Material mat = getType();
if (data == null && mat != null && mat.getData() != null) {
data = mat.getNewData((byte) this.getDurability());
}
return data;
}
/**
* Sets the MaterialData for this stack of items
*
* @param data New MaterialData for this item
*/
public void setData(MaterialData data) {
Material mat = getType();
if (data == null || mat == null || mat.getData() == null) {
this.data = data;
} else {
if ((data.getClass() == mat.getData()) || (data.getClass() == MaterialData.class)) {
this.data = data;
} else {
throw new IllegalArgumentException("Provided data is not of type " + mat.getData().getName() + ", found " + data.getClass().getName());
}
}
}
public void setData(final MaterialData data) {
Material mat = getType();
if ((mat == null) || (mat.getData() == null)) {
this.data = data;
} else {
if ((data.getClass() == mat.getData()) || (data.getClass() == MaterialData.class)) {
this.data = data;
} else {
throw new IllegalArgumentException("Provided data is not of type "
+ mat.getData().getName() + ", found " + data.getClass().getName());
}
}
}
private void createData(final byte data) {
Material mat = getType();
if (mat == null || mat.getData() == null) {
this.data = new MaterialData(type, data);
} else {
this.data = mat.getNewData(data);
}
}
public static MaterialData decodeMaterial(int encoded) {
if(encoded == ENCODED_NULL_MATERIAL) return null;
Material material = decodeType(encoded);
if(material.getData() == MaterialData.class) {
return new MaterialData(material, decodeMetadata(encoded));
} else {
return material.getNewData(decodeMetadata(encoded));
}
}
public MaterialData getData() {
Material mat = Bukkit.getUnsafe().toLegacy(this.getType());
if (this.data == null && mat != null && mat.getData() != null) {
this.data = mat.getNewData((byte)this.getDurability());
}
return this.data;
}
public void setData(MaterialData data) {
Material mat = Bukkit.getUnsafe().toLegacy(this.getType());
if (data != null && mat != null && mat.getData() != null) {
if (data.getClass() != mat.getData() && data.getClass() != MaterialData.class) {
throw new IllegalArgumentException("Provided data is not of type " + mat.getData().getName() + ", found " + data.getClass().getName());
}
this.data = data;
} else {
this.data = data;
}
}
public void setData(final MaterialData data) {
Material mat = getType();
if ((mat == null) || (mat.getData() == null)) {
this.data = data;
} else {
if ((data.getClass() == mat.getData()) || (data.getClass() == MaterialData.class)) {
this.data = data;
} else {
throw new IllegalArgumentException("Provided data is not of type "
+ mat.getData().getName() + ", found " + data.getClass().getName());
}
}
}
private void createData(final byte data) {
Material mat = getType();
if (mat == null || mat.getData() == null) {
this.data = new MaterialData(type, data);
} else {
this.data = mat.getNewData(data);
}
}