diff --git a/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/world/blocks/CombineHarvester.java b/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/world/blocks/CombineHarvester.java index 90fa846ef..b58e4993b 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/world/blocks/CombineHarvester.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/world/blocks/CombineHarvester.java @@ -95,6 +95,8 @@ public boolean harvestable(Block block) { case MELON: case PUMPKIN: return true; + case BAMBOO: + return below == Material.BAMBOO; default: return Tag.LOGS.isTagged(block.getType()); } diff --git a/src/main/java/com/sk89q/craftbook/util/BlockSyntax.java b/src/main/java/com/sk89q/craftbook/util/BlockSyntax.java index f9c73d733..a4f795ae5 100644 --- a/src/main/java/com/sk89q/craftbook/util/BlockSyntax.java +++ b/src/main/java/com/sk89q/craftbook/util/BlockSyntax.java @@ -39,6 +39,8 @@ public class BlockSyntax { private static Set knownBadLines = new HashSet<>(); + private static boolean matchLegacyMaterials = false; + static { BLOCK_CONTEXT.setPreferringWildcard(true); BLOCK_CONTEXT.setRestricted(false); @@ -63,7 +65,10 @@ public static BaseBlock getBlock(String line, boolean wild) { if (blockState == null) { String[] dataSplit = RegexUtil.COLON_PATTERN.split(line.replace("\\:", ":"), 2); - Material material = Material.getMaterial(dataSplit[0], true); + Material material = Material.getMaterial(dataSplit[0], matchLegacyMaterials); + if (material == null && !matchLegacyMaterials) { + material = Material.getMaterial(dataSplit[0], matchLegacyMaterials = true); + } if (material != null) { int data = 0; if (dataSplit.length > 1) {