There is no
BlockStateContainer#getBlockHardness
method because
BlockStateContainer
doesn't implement
IBlockState
itself, it contains the
Block
's valid
IBlockSate
s (hence the name).
There is a
BlockStateContainer.StateImplementation#getBlockHardness
method that implements
IBlockState#getBlockHardness
. You don't actually need to use the
BlockStateContainer.StateImplementation
class, you only need to use the
IBlockState
interface implemented by it.
My bad, overlooked that it was in a nested class...