Uses of Interface

Packages that use BlockData
The root package of the Bukkit API, contains generalized API classes.
Classes used to manipulate the voxels in a world, including special states.
Generalized BlockData classes.
Specific BlockData classes relevant to only a given block or set of blocks.
Interfaces for non-voxel objects that can exist in a world, including all players, monsters, projectiles, etc.
Events relating to when a block is changed or interacts with the world.
Events relating to entities, excluding some directly referencing some more specific entity types.
Classes to facilitate world generation implementation.
The interfaces used when manipulating extra data can can be stored inside item stacks.