diff --git a/core/src/main/java/com/sk89q/worldedit/EditSession.java b/core/src/main/java/com/sk89q/worldedit/EditSession.java index 9079fb43..d66da3d8 100644 --- a/core/src/main/java/com/sk89q/worldedit/EditSession.java +++ b/core/src/main/java/com/sk89q/worldedit/EditSession.java @@ -804,7 +804,10 @@ public class EditSession extends AbstractWorld implements HasFaweQueue, Lighting if (survivalExtent != null) { return survivalExtent.get(); } else { - return (SurvivalModeExtent) (this.extent = new SurvivalModeExtent(this.extent, getWorld())); + AbstractDelegateExtent bypass = this.bypassAll; + SurvivalModeExtent survival = new SurvivalModeExtent(bypass.getExtent(), getWorld()); + new ExtentTraverser(bypass).setNext(survival); + return survival; } } diff --git a/core/src/main/java/com/sk89q/worldedit/command/tool/SinglePickaxe.java b/core/src/main/java/com/sk89q/worldedit/command/tool/SinglePickaxe.java index ceb81324..78dc681b 100644 --- a/core/src/main/java/com/sk89q/worldedit/command/tool/SinglePickaxe.java +++ b/core/src/main/java/com/sk89q/worldedit/command/tool/SinglePickaxe.java @@ -51,14 +51,14 @@ public class SinglePickaxe implements BlockTool { editSession.getSurvivalExtent().setToolUse(config.superPickaxeDrop); try { - editSession.setBlock(clicked.getBlockX(), clicked.getBlockY(), clicked.getBlockZ(), EditSession.nullBlock); + if (editSession.setBlock(clicked.getBlockX(), clicked.getBlockY(), clicked.getBlockZ(), EditSession.nullBlock)) { + world.playEffect(clicked.toVector(), 2001, blockType); + } } finally { editSession.flushQueue(); session.remember(editSession); } - world.playEffect(clicked.toVector(), 2001, blockType); - return true; }