/** * Safe way of getting the material from an itemstack. */ public static Material getMaterialFromStack(ItemStack stack) { if(!(stack.getItem() instanceof IMaterialItem)) { return Material.UNKNOWN; } return ((IMaterialItem) stack.getItem()).getMaterial(stack); }
protected Material getMaterial(ItemStack... stacks) { for(ItemStack stack : stacks) { if(stack.isEmpty()) { continue; } // material-item? if(stack.getItem() instanceof IMaterialItem) { return ((IMaterialItem) stack.getItem()).getMaterial(stack); } } // regular item, check if it belongs to a material for(Material material : TinkerRegistry.getAllMaterials()) { if(material.matches(stacks).isPresent()) { return material; } } // no material found return null; }
Map<Object, Object> out = Maps.newHashMap(); Material material = materialItem.getMaterial(stack); out.put("id", material.getIdentifier()); out.put("name", material.getLocalizedName());