From 5451f43219eaa45c19269abb284c6507c6dd761a Mon Sep 17 00:00:00 2001 From: Jeremy Schroeder Date: Sat, 6 Jul 2013 12:09:50 -0400 Subject: [PATCH] dMaterial has no explicit data unless specified. Add 'matchesMaterialData' method. --- .../aufdemrand/denizen/objects/dMaterial.java | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/src/main/java/net/aufdemrand/denizen/objects/dMaterial.java b/src/main/java/net/aufdemrand/denizen/objects/dMaterial.java index 6a42fdcd35..01ed6aabaa 100644 --- a/src/main/java/net/aufdemrand/denizen/objects/dMaterial.java +++ b/src/main/java/net/aufdemrand/denizen/objects/dMaterial.java @@ -36,7 +36,7 @@ public static dMaterial valueOf(String string) { if (m.matches()) { - int data = 0; + int data = -1; if (m.group(2) != null) { @@ -95,7 +95,9 @@ public dMaterial(Material material) { public dMaterial(Material material, int data) { this.material = material; - this.data = (byte) data; + if (data < 0) + this.data = null; + else this.data = (byte) data; } public dMaterial(int id) { @@ -104,7 +106,9 @@ public dMaterial(int id) { public dMaterial(int id, int data) { this.material = Material.getMaterial(id); - this.data = (byte) data; + if (data < 0) + this.data = null; + else this.data = (byte) data; } ///////////////////// @@ -114,14 +118,24 @@ public dMaterial(int id, int data) { // Associated with Bukkit Material private Material material; - private byte data = 0; + private Byte data = 0; public Material getMaterial() { return material; } + + public boolean specifiedData() { + return data != null; + } + + public boolean matchesMaterialData(MaterialData data) { + if (specifiedData()) + return (material == data.getItemType() && data.equals(data.getData())); + else return material == data.getItemType(); + } public MaterialData getMaterialData() { - return new MaterialData(material, data); + return new MaterialData(material, data != null ? data : 0); } String prefix = "material";