diff --git a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/EventAbstractionListener.java b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/EventAbstractionListener.java index 129e4e6fc..0b274f505 100644 --- a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/EventAbstractionListener.java +++ b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/EventAbstractionListener.java @@ -1274,6 +1274,12 @@ private static void handleBlockRightClick(T even return; } + // Handle created cushions + if (item != null && Materials.isCushion(item.getType())) { + Events.fireToCancel(event, new SpawnEntityEvent(event, cause, placed.getLocation().add(0.5, 0, 0.5), EntityType.CUSHION)); + return; + } + // Handle created armor stands if (item != null && item.getType() == Material.ARMOR_STAND) { Events.fireToCancel(event, new SpawnEntityEvent(event, cause, placed.getLocation().add(0.5, 0, 0.5), EntityType.ARMOR_STAND)); diff --git a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/util/Materials.java b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/util/Materials.java index 73cb73591..db1a3d101 100644 --- a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/util/Materials.java +++ b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/util/Materials.java @@ -1181,6 +1181,16 @@ public static boolean isBoat(Material material) { return Tag.ITEMS_BOATS.isTagged(material); } + /** + * Test whether the given material is a Cushion. + * + * @param material the material + * @return true if a Cushion item + */ + public static boolean isCushion(Material material) { + return Tag.ITEMS_CUSHIONS.isTagged(material); + } + /** * Test whether the given material is a Shulker Box. *