private boolean onPlayerPlaceBlock( PlayerControllerMP controller, EntityPlayer player, ItemStack offhand, BlockPos pos, EnumFacing l, Vec3 hitVec) { final World worldObj = player.worldObj; if (!worldObj.getWorldBorder().contains(pos)) { return false; } float f = (float) hitVec.xCoord - (float) pos.getX(); float f1 = (float) hitVec.yCoord - (float) pos.getY(); float f2 = (float) hitVec.zCoord - (float) pos.getZ(); boolean flag = false; if (!controller.isSpectatorMode()) { if (offhand.getItem().onItemUseFirst(offhand, player, worldObj, pos, l, f, f1, f2)) { return true; } if (!player.isSneaking() || player.getCurrentEquippedItem() == null || player.getCurrentEquippedItem().getItem().doesSneakBypassUse(worldObj, pos, player)) { IBlockState b = worldObj.getBlockState(pos); if (!b.getBlock().isAir(worldObj, pos) && b.getBlock().onBlockActivated(worldObj, pos, b, player, l, f, f1, f2)) { flag = true; } } if (!flag && offhand.getItem() instanceof ItemBlock) { ItemBlock itemblock = (ItemBlock) offhand.getItem(); if (!itemblock.canPlaceBlockOnSide(worldObj, pos, l, player, offhand)) { return false; } } } Battlegear.packetHandler.sendPacketToServer( new OffhandPlaceBlockPacket(pos, l, offhand, f, f1, f2).generatePacket()); if (flag || controller.isSpectatorMode()) { return true; } else if (offhand == null) { return false; } else { if (controller.isInCreativeMode()) { int i1 = offhand.getMetadata(); int j1 = offhand.stackSize; boolean flag1 = offhand.onItemUse(player, worldObj, pos, l, f, f1, f2); offhand.setItemDamage(i1); offhand.stackSize = j1; return flag1; } else { if (!offhand.onItemUse(player, worldObj, pos, l, f, f1, f2)) { return false; } if (offhand.stackSize <= 0) { ForgeEventFactory.onPlayerDestroyItem(player, offhand); } return true; } } }