Fixed the system

This commit is contained in:
Acrobot 2013-02-11 17:09:34 +01:00
parent 50227c5da4
commit c385d116fc

View File

@ -28,8 +28,8 @@ public class MaterialUtil {
public static final boolean LONG_NAME = true; public static final boolean LONG_NAME = true;
public static final boolean SHORT_NAME = false; public static final boolean SHORT_NAME = false;
private static final Map<String, Material> materialCache = new HashMap<String, Material>(); private static final Map<String, Material> MATERIAL_CACHE = new HashMap<String, Material>();
/** /**
* Checks if the itemStack is empty or null * Checks if the itemStack is empty or null
@ -59,31 +59,32 @@ public class MaterialUtil {
* @return Material found * @return Material found
*/ */
public static Material getMaterial(String name) { public static Material getMaterial(String name) {
Material material = materialCache.get(name); String formatted = name.replace(" |_", "").toUpperCase();
if (material != null) { if (MATERIAL_CACHE.containsKey(formatted)) {
return material; return MATERIAL_CACHE.get(formatted);
}
material = Material.matchMaterial(name);
if (material != null) {
return material;
} }
name = name.replaceAll(" |_", "").toUpperCase(); Material material = Material.matchMaterial(name);
if (material != null) {
MATERIAL_CACHE.put(formatted, material);
return material;
}
short length = Short.MAX_VALUE; short length = Short.MAX_VALUE;
for (Material currentMaterial : Material.values()) { for (Material currentMaterial : Material.values()) {
String matName = currentMaterial.name(); String matName = currentMaterial.name();
if (matName.length() < length && matName.replace("_", "").startsWith(name)) { if (matName.length() < length && matName.replace("_", "").startsWith(formatted)) {
length = (short) matName.length(); length = (short) matName.length();
material = currentMaterial; material = currentMaterial;
} }
} }
MATERIAL_CACHE.put(formatted, material);
return material; return material;
} }
@ -194,11 +195,7 @@ public class MaterialUtil {
} }
} }
} }
String signName = getSignName(itemStack);
if (!materialCache.containsKey(signName)) {
materialCache.put(signName, material);
}
return itemStack; return itemStack;
} }