WorldGuard Piston Fix (WGPFix) attempts to prevent cross-region griefing for WorldGuard concerning pistons, optionally monitoring water and lava and growing trees etc.. With WGPFix cross-region changes are prevented, if the affected blocks belong to regions that have different owners+members. This is quite rigid, but allows pistons to affect different regions with exactly the same owners/members. It is possible to deny pistons affecting certain block types and also to limit the range of pistons (since 1.3.0).
Depends on WorldGuard, currently!
This does not differenciate between owners and members.
A little care is necessary with unowned regions that should override properties of overlapping owned regions - in this rare case you could add a non existing dummy-group as member or owner of the yet unowned region to make sure that there are no piston effects.
The plugin just checks the events concerning pistons retracting and extending, yet it is not exactly lightweight, for it will check the applicable WorldGuard regions for each involved block without using any caching.
The plugin is now configurable, and also allows for denying pistons affecting pre-defined block-ids (1.2.0 and above). Since 1.3.0 commands for blocking pistons and toggling monitoring have been added, as well as limiting the range of pistons. Since 1.4.0 you can also control the growth of structures (huge mushrooms and trees) with the same method as pistons are monitored.
Latest jar: WGPFix 2.0.0 - Configuration (+Commands, Permissions)
The source code for the different versions: Versions