@@ -0,0 +1,874 @@
+package tw.davy.minecraft.treelogging.bukkit.listener;%0A%0Aimport org.bukkit.event.EventHandler;%0Aimport org.bukkit.event.Listener;%0Aimport org.bukkit.event.block.BlockPistonExtendEvent;%0Aimport org.bukkit.event.block.BlockPistonRetractEvent;%0A%0Aimport tw.davy.minecraft.treelogging.bukkit.TreeLoggingPlugin;%0A%0A/**%0A * @author Davy%0A */%0Apublic class PistonListener implements Listener %7B%0A    private final TreeLoggingPlugin mPlugin;%0A%0A    public PistonListener(final TreeLoggingPlugin plugin) %7B%0A        mPlugin = plugin;%0A    %7D%0A%0A    @EventHandler(ignoreCancelled = true)%0A    public void onPistonExtend(final BlockPistonExtendEvent event) %7B%0A        // TODO: piston detection%0A    %7D%0A%0A    @EventHandler(ignoreCancelled = true)%0A    public void onPistonRetract(final BlockPistonRetractEvent event) %7B%0A        if (!event.isSticky())%0A            return;%0A%0A        // TODO: piston detection%0A    %7D%0A%7D%0A

Prepare for piston feature