@@ -0,0 +1,1086 @@
+package com.elmakers.mine.bukkit.action.builtin;%0A%0Aimport com.elmakers.mine.bukkit.action.BaseSpellAction;%0Aimport com.elmakers.mine.bukkit.api.action.CastContext;%0Aimport com.elmakers.mine.bukkit.api.block.MaterialBrush;%0Aimport com.elmakers.mine.bukkit.api.spell.SpellResult;%0Aimport org.bukkit.block.Block;%0A%0Apublic class CheckBlockAction extends BaseSpellAction %7B%0A    @SuppressWarnings(%22deprecation%22)%0A    @Override%0A    public SpellResult perform(CastContext context) %7B%0A        MaterialBrush brush = context.getBrush();%0A        Block block = context.getTargetBlock();%0A        if (brush != null && brush.isErase()) %7B%0A            if (!context.hasBreakPermission(block)) %7B%0A                return SpellResult.CANCELLED;%0A            %7D%0A        %7D else %7B%0A            if (!context.hasBuildPermission(block)) %7B%0A                return SpellResult.CANCELLED;%0A            %7D%0A        %7D%0A        if (!context.isDestructible(block)) %7B%0A            return SpellResult.CANCELLED;%0A        %7D%0A        return SpellResult.CAST;%0A    %7D%0A%0A    @Override%0A    public boolean requiresTarget() %7B%0A        return true;%0A    %7D%0A%7D

Add CheckBlock action, for conditionally cancelling a spell