private static ForgeMaterialData getMaterial0(String input) throws NumberFormatException, InvalidConfigException { String blockName = input; int blockData = -1; // When there is a . or a : in the name, extract block data int splitIndex = input.lastIndexOf(":"); if (splitIndex == -1) { splitIndex = input.lastIndexOf("."); } if (splitIndex != -1) { blockName = input.substring(0, splitIndex); blockData = Integer.parseInt(input.substring(splitIndex + 1)); } // Parse block name Block block = Block.getBlockFromName(blockName); if (block == null) { DefaultMaterial defaultMaterial = DefaultMaterial.getMaterial(blockName); if (defaultMaterial != DefaultMaterial.UNKNOWN_BLOCK) { block = Block.getBlockById(defaultMaterial.id); } } // Get the block if (block != null) { if (blockData == -1) { // Use default return ForgeMaterialData.ofMinecraftBlock(block); } else { // Use specified data try { return ForgeMaterialData.ofMinecraftBlockState(block.getStateFromMeta(blockData)); } catch (IllegalArgumentException e) { throw new InvalidConfigException( "Illegal block data for the block type, cannot use " + input); } } } // Failed throw new InvalidConfigException("Unknown material: " + input); }
@Override public DefaultMaterial toDefaultMaterial() { return DefaultMaterial.getMaterial(getBlockId()); }