From 60f9b3e1f1f93d27e7ff461fea34887195a88c22 Mon Sep 17 00:00:00 2001 From: tastybento Date: Thu, 19 Sep 2019 16:21:43 -0700 Subject: [PATCH] Fixes support for double-height plants https://github.com/BentoBoxWorld/Greenhouses/issues/2 --- .../greenhouses/greenhouse/BiomeRecipe.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/main/java/world/bentobox/greenhouses/greenhouse/BiomeRecipe.java b/src/main/java/world/bentobox/greenhouses/greenhouse/BiomeRecipe.java index 381c59c..af22341 100644 --- a/src/main/java/world/bentobox/greenhouses/greenhouse/BiomeRecipe.java +++ b/src/main/java/world/bentobox/greenhouses/greenhouse/BiomeRecipe.java @@ -17,6 +17,8 @@ import org.bukkit.Particle; import org.bukkit.block.Biome; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; +import org.bukkit.block.data.Bisected; +import org.bukkit.block.data.BlockData; import org.bukkit.entity.EntityType; import world.bentobox.bentobox.util.Util; @@ -329,7 +331,18 @@ public class BiomeRecipe implements Comparable { } return getRandomPlant().map(p -> { if (bl.getY() != 0 && p.getPlantGrownOn().map(m -> m.equals(bl.getRelative(BlockFace.DOWN).getType())).orElse(false)) { - bl.setType(p.getPlantMaterial()); + BlockData dataBottom = p.getPlantMaterial().createBlockData(); + if (dataBottom instanceof Bisected) { + ((Bisected) dataBottom).setHalf(Bisected.Half.BOTTOM); + BlockData dataTop = p.getPlantMaterial().createBlockData(); + ((Bisected) dataTop).setHalf(Bisected.Half.TOP); + if (bl.getRelative(BlockFace.UP).getType().equals(Material.AIR)) { + bl.setBlockData(dataBottom, false); + bl.getRelative(BlockFace.UP).setBlockData(dataTop, false); + } + } else { + bl.setBlockData(dataBottom, false); + } bl.getWorld().spawnParticle(Particle.SNOWBALL, bl.getLocation(), 10, 2, 2, 2); return true; }