"Light Blue Wool" now works

Awesome. More performance, better item recognition. Less spaghetti in
the code.
This commit is contained in:
Acrobot 2013-02-08 19:29:13 +01:00
parent 62400ed68e
commit a499ab2cf0

View File

@ -144,54 +144,50 @@ public class MaterialUtil {
String[] split = Iterables.toArray(Splitter.onPattern(":|-|#").trimResults().split(itemName), String.class); String[] split = Iterables.toArray(Splitter.onPattern(":|-|#").trimResults().split(itemName), String.class);
Material material = getMaterial(split[0]); Material material = getMaterial(split[0]);
short durability = getDurability(itemName);
boolean onlyPartiallyChecked = false;
if (material == null) { if (material == null) {
if (!split[0].contains(" ")) { if (!split[0].contains(" ")) {
return null; return null;
} }
int index = split[0].indexOf(' '); for (int index = split[0].indexOf(' '); index >= 0; index = split[0].indexOf(' ', index + 1)) {
material = getMaterial(split[0].substring(index));
material = getMaterial(split[0].substring(index + 1)); if (material != null) {
if (durability == 0) {
durability = DataValue.get(split[0].substring(0, index), material);
}
break;
}
}
if (material == null) { if (material == null) {
return null; return null;
} }
onlyPartiallyChecked = true;
}
itemStack = new ItemStack(material, 1);
short durability = getDurability(itemName);
if (durability == 0 && onlyPartiallyChecked) {
String[] spaces = itemName.split(" ");
if (spaces.length != 0) {
durability = DataValue.get(spaces[0], material);
}
} }
itemStack = new ItemStack(material);
itemStack.setDurability(durability); itemStack.setDurability(durability);
Map<org.bukkit.enchantments.Enchantment, Integer> enchantments = getEnchantments(itemName); //TODO - it's obsolete, left only for backward compatibility
if (!enchantments.isEmpty()) {
try {
itemStack.addEnchantments(enchantments);
} catch (IllegalArgumentException exception) {
//Do nothing, because the enchantment can't be applied
}
}
ItemMeta meta = getMetadata(itemName); ItemMeta meta = getMetadata(itemName);
if (meta != null) { if (meta != null) {
itemStack.setItemMeta(meta); itemStack.setItemMeta(meta);
} else {
Map<org.bukkit.enchantments.Enchantment, Integer> enchantments = getEnchantments(itemName); //TODO - it's obsolete, left only for backward compatibility
if (!enchantments.isEmpty()) {
try {
itemStack.addEnchantments(enchantments);
} catch (IllegalArgumentException exception) {
//Do nothing, because the enchantment can't be applied
}
}
} }
return itemStack; return itemStack;
} }