This is the second version of my grief protection plugin.  The code is cleaner than the first and adheres better to Java coding conventions.  Unlike my first version which was admittedly a sloppy rush job to get minimal grief protection for my server, I feel pretty good about this version.    How it works is that it stores the locations of protected blocks in several arrays (each separate array representing Dimension, X, Y, Z, block ID, and the name of the player) every time someone places a block.  It then checks those arrays every time someone breaks a block.  If a player breaks a block who didn't place it, it reverses the action and restores the block.  It also saves that array to a CSV text file between sessions to make it easy to look at and modify in Excel.  It also allows the OP to designate zones to be protected, such as spawn, generated structures, special rare biomes, and/or things built with MC Edit that can't be protected block-by-block.    Players can issue commands to allow each other to break each others' blocks to work on a build together.    Like the first version, it is transparent to the player; no special shovels or commands are needed to protect anything.  Blocks that are placed are protected immediately without any other action or commands needed.  And players can't easily claim large tracts of land on a whim, either, just by walking around with a shovel.  Nor do you have to play real estate agent and assign land to people.  Note: V2.1 fixes a bug that caused a null pointer exception if you enter /FRED OP without any parameters.