public void processRightClickBlock(CPacketPlayerTryUseItemOnBlock packetIn) { PacketThreadUtil.checkThreadAndEnqueue(packetIn, this, this.playerEntity.getServerWorld()); WorldServer worldserver = this.serverController.worldServerForDimension(this.playerEntity.dimension); EnumHand enumhand = packetIn.getHand(); ItemStack itemstack = this.playerEntity.getHeldItem(enumhand); BlockPos blockpos = packetIn.getPos(); EnumFacing enumfacing = packetIn.getDirection(); this.playerEntity.markPlayerActive(); if (blockpos.getY() < this.serverController.getBuildLimit() - 1 || enumfacing != EnumFacing.UP && blockpos.getY() < this.serverController.getBuildLimit()) { if (this.targetPos == null && this.playerEntity.getDistanceSq((double)blockpos.getX() + 0.5D, (double)blockpos.getY() + 0.5D, (double)blockpos.getZ() + 0.5D) < 64.0D && !this.serverController.isBlockProtected(worldserver, blockpos, this.playerEntity) && worldserver.getWorldBorder().contains(blockpos)) { this.playerEntity.interactionManager.processRightClickBlock(this.playerEntity, worldserver, itemstack, enumhand, blockpos, enumfacing, packetIn.getFacingX(), packetIn.getFacingY(), packetIn.getFacingZ()); } } else { TextComponentTranslation textcomponenttranslation = new TextComponentTranslation("build.tooHigh", new Object[] {Integer.valueOf(this.serverController.getBuildLimit())}); textcomponenttranslation.getStyle().setColor(TextFormatting.RED); this.playerEntity.connection.sendPacket(new SPacketChat(textcomponenttranslation, (byte)2)); } this.playerEntity.connection.sendPacket(new SPacketBlockChange(worldserver, blockpos)); this.playerEntity.connection.sendPacket(new SPacketBlockChange(worldserver, blockpos.offset(enumfacing))); }
public void processRightClickBlock(CPacketPlayerTryUseItemOnBlock packetIn) { PacketThreadUtil.checkThreadAndEnqueue(packetIn, this, this.playerEntity.getServerWorld()); WorldServer worldserver = this.serverController.worldServerForDimension(this.playerEntity.dimension); EnumHand enumhand = packetIn.getHand(); ItemStack itemstack = this.playerEntity.getHeldItem(enumhand); BlockPos blockpos = packetIn.getPos(); EnumFacing enumfacing = packetIn.getDirection(); this.playerEntity.markPlayerActive(); if (blockpos.getY() < this.serverController.getBuildLimit() - 1 || enumfacing != EnumFacing.UP && blockpos.getY() < this.serverController.getBuildLimit()) { double dist = playerEntity.interactionManager.getBlockReachDistance() + 3; dist *= dist; if (this.targetPos == null && this.playerEntity.getDistanceSq((double)blockpos.getX() + 0.5D, (double)blockpos.getY() + 0.5D, (double)blockpos.getZ() + 0.5D) < dist && !this.serverController.isBlockProtected(worldserver, blockpos, this.playerEntity) && worldserver.getWorldBorder().contains(blockpos)) { this.playerEntity.interactionManager.processRightClickBlock(this.playerEntity, worldserver, itemstack, enumhand, blockpos, enumfacing, packetIn.getFacingX(), packetIn.getFacingY(), packetIn.getFacingZ()); } } else { TextComponentTranslation textcomponenttranslation = new TextComponentTranslation("build.tooHigh", new Object[] {Integer.valueOf(this.serverController.getBuildLimit())}); textcomponenttranslation.getStyle().setColor(TextFormatting.RED); this.playerEntity.connection.sendPacket(new SPacketChat(textcomponenttranslation)); } this.playerEntity.connection.sendPacket(new SPacketBlockChange(worldserver, blockpos)); this.playerEntity.connection.sendPacket(new SPacketBlockChange(worldserver, blockpos.offset(enumfacing))); itemstack = this.playerEntity.getHeldItem(enumhand); if (itemstack != null && itemstack.stackSize == 0) { this.playerEntity.setHeldItem(enumhand, (ItemStack)null); net.minecraftforge.event.ForgeEventFactory.onPlayerDestroyItem(this.playerEntity, itemstack, enumhand); } }
public EnumActionResult processRightClickBlock(EntityPlayerSP player, WorldClient worldIn, BlockPos stack, EnumFacing pos, Vec3d facing, EnumHand vec) { this.syncCurrentPlayItem(); ItemStack itemstack = player.getHeldItem(vec); float f = (float)(facing.xCoord - (double)stack.getX()); float f1 = (float)(facing.yCoord - (double)stack.getY()); float f2 = (float)(facing.zCoord - (double)stack.getZ()); boolean flag = false; if (!this.mc.world.getWorldBorder().contains(stack)) { return EnumActionResult.FAIL; } else { if (this.currentGameType != GameType.SPECTATOR) { IBlockState iblockstate = worldIn.getBlockState(stack); if ((!player.isSneaking() || player.getHeldItemMainhand().func_190926_b() && player.getHeldItemOffhand().func_190926_b()) && iblockstate.getBlock().onBlockActivated(worldIn, stack, iblockstate, player, vec, pos, f, f1, f2)) { flag = true; } if (!flag && itemstack.getItem() instanceof ItemBlock) { ItemBlock itemblock = (ItemBlock)itemstack.getItem(); if (!itemblock.canPlaceBlockOnSide(worldIn, stack, pos, player, itemstack)) { return EnumActionResult.FAIL; } } } this.connection.sendPacket(new CPacketPlayerTryUseItemOnBlock(stack, pos, vec, f, f1, f2)); if (!flag && this.currentGameType != GameType.SPECTATOR) { if (itemstack.func_190926_b()) { return EnumActionResult.PASS; } else if (player.getCooldownTracker().hasCooldown(itemstack.getItem())) { return EnumActionResult.PASS; } else { if (itemstack.getItem() instanceof ItemBlock && !player.canUseCommandBlock()) { Block block = ((ItemBlock)itemstack.getItem()).getBlock(); if (block instanceof BlockCommandBlock || block instanceof BlockStructure) { return EnumActionResult.FAIL; } } if (this.currentGameType.isCreative()) { int i = itemstack.getMetadata(); int j = itemstack.func_190916_E(); EnumActionResult enumactionresult = itemstack.onItemUse(player, worldIn, stack, vec, pos, f, f1, f2); itemstack.setItemDamage(i); itemstack.func_190920_e(j); return enumactionresult; } else { return itemstack.onItemUse(player, worldIn, stack, vec, pos, f, f1, f2); } } } else { return EnumActionResult.SUCCESS; } } }
@Override public void processTryUseItemOnBlock(CPacketPlayerTryUseItemOnBlock packetIn) { }
@Override public void processTryUseItemOnBlock(@Nonnull CPacketPlayerTryUseItemOnBlock packetIn) { }
void processRightClickBlock(CPacketPlayerTryUseItemOnBlock packetIn);