@Override
public EnumActionResult onItemUseFirst(EntityPlayer player, World world, BlockPos pos, EnumFacing side, float hitX, float hitY, float hitZ, EnumHand hand) {
IBlockState state = world.getBlockState(pos);
Block block = state.getBlock();
if (world.isAirBlock(pos)) {
return EnumActionResult.PASS;
}
PlayerInteractEvent.RightClickBlock event = new PlayerInteractEvent.RightClickBlock(player, hand, pos, side, new Vec3d(hitX, hitY, hitZ));
if (MinecraftForge.EVENT_BUS.post(event) || event.getResult() == Result.DENY || event.getUseBlock() == Result.DENY || event.getUseItem() == Result.DENY) {
return EnumActionResult.PASS;
}
if (ServerHelper.isServerWorld(world) && player.isSneaking() && block instanceof IDismantleable && ((IDismantleable) block).canDismantle(world, pos, state, player)) {
((IDismantleable) block).dismantleBlock(world, pos, state, player, false);
return EnumActionResult.SUCCESS;
}
if (BlockHelper.canRotate(block)) {
world.setBlockState(pos, BlockHelper.rotateVanillaBlock(world, state, pos), 3);
player.swingArm(hand);
return ServerHelper.isServerWorld(world) ? EnumActionResult.SUCCESS : EnumActionResult.PASS;
} else if (!player.isSneaking() && block.rotateBlock(world, pos, side)) {
player.swingArm(hand);
return ServerHelper.isServerWorld(world) ? EnumActionResult.SUCCESS : EnumActionResult.PASS;
}
return EnumActionResult.PASS;
}