Варианты блока в виде предмета отличаются по дамагу ItemStack#getDamage.
Есть метод ItemBlock#getMetadata, который принимает дамаг предмета и возвращает метадату блока, который получится после установки итем-блока в мир.
Есть метод Block#getStateFromMeta, который принимает метадату и возвращает стейт блока.
Таким образом, чтобы получить стейт блока из предмета
Optional<IBlockState> blockStateByStack(ItemStack stack){
Item item = stack.getItem();
if(item instanceof ItemBlock){
return Item.getBlockFromItem(item).getStateFromMeta(
((ItemBlock)item).getMetadata(
stack.getDamage()
)
);
}else
return Optional.empty();
}
После из стейта можно получить значение...