diff --git a/CHANGELOG.md b/CHANGELOG.md index 1820d6132..6322122d5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,6 +34,7 @@ #### Fixes * Fixed #2794 * Fixed #2793 +* Fixed #2809 * Fixed a small exception which gets thrown when Slimefun is disabled due to an invalid environment ## Release Candidate 20 (30 Jan 2021) diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/MultiBlockListener.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/MultiBlockListener.java index d684a274b..0d40e4e3e 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/MultiBlockListener.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/MultiBlockListener.java @@ -62,8 +62,13 @@ public class MultiBlockListener implements Listener { e.setCancelled(true); MultiBlock mb = multiblocks.getLast(); - mb.getSlimefunItem().callItemHandler(MultiBlockInteractionHandler.class, handler -> handler.onInteract(p, mb, b)); - Bukkit.getPluginManager().callEvent(new MultiBlockInteractEvent(p, mb, b, e.getBlockFace())); + MultiBlockInteractEvent event = new MultiBlockInteractEvent(p, mb, b, e.getBlockFace()); + Bukkit.getPluginManager().callEvent(event); + + // Fixes #2809 + if (!event.isCancelled()) { + mb.getSlimefunItem().callItemHandler(MultiBlockInteractionHandler.class, handler -> handler.onInteract(p, mb, b)); + } } }