Yeah, we need to sort all this out at some point. Like what properties do "solid" items have, exactly?

It's probably best to just remove this function altogether, actually, now that you point it out. It doesn't add any additional information over isSolid(), and is confusingly named (how is an air block "empty", exactly?).

While I'm here, I might as well note that we should add another property, "isSuffocating" or something, which indicates that a person should move to the top of a block when trapped inside of it. This would not be set for BLOCK_NIL, so if you were stuck in BLOCK_NIL, you would not continually teleport upwards. This is essential for chunk loading to work properly on slow connections or overloaded servers. Currently, it is possible to spawn in a server, continually fall downwards before your spawn chunks can be generated, and then trigger new chunks to be generated, further aggravating the problem (unlikely on reasonable hardware, but possible).