But with the parenthesized code you are actually creating a new cBlockArea object instance just to read its static constant, that's why it's bad.
Two rightclick hooks may be normal for some instances - when rightclicking with something that the client doesn't think should ever be converted to a block (such as with a diamond), the client sends two rclk packets; one with all fields set to -1. At the start of your rclk handler you should check if a_BlockFace == BLOCK_FACE_NONE.
Is your plugin code short enough? Maybe it'd be best if you posted it full, so that we can have a look and try it ourselves.
Two rightclick hooks may be normal for some instances - when rightclicking with something that the client doesn't think should ever be converted to a block (such as with a diamond), the client sends two rclk packets; one with all fields set to -1. At the start of your rclk handler you should check if a_BlockFace == BLOCK_FACE_NONE.
Is your plugin code short enough? Maybe it'd be best if you posted it full, so that we can have a look and try it ourselves.