@Override public boolean onLeftClickBlockWithTool(PlayerInteractEvent.LeftClickBlock event, @Nonnull ItemStack toolStack, @Nonnull ItemStack thisUpgradeStack) { blowLeaves(WorldHelper.getExtraBlock9Coordinates(event.getFace()), event.getPos(), event.getWorld(), event.getEntityPlayer(), toolStack); return true; }
Iterable<? extends BlockPos> candidates = mode.getCandidates(player, event.getPos(), event.getFace());
@Override public void onPlayerLeftClickBlock(PlayerInteractEvent.LeftClickBlock event, @Nonnull ItemStack armorStack, EntityEquipmentSlot slot) { EnumFacing face = event.getFace(); if (face == null) { return; } EntityPlayer player = event.getEntityPlayer(); if (player.getHeldItemMainhand().isEmpty() && ChargableUtility.hasPower(player, ArmorModule.pistonPushConsumption)) { World world = event.getWorld(); BlockPos curPos = event.getPos(); BlockPos newPos = curPos.offset(face.getOpposite()); IBlockState clickedState = world.getBlockState(curPos); IBlockState stateInPlace = world.getBlockState(newPos); Block clickedBlock = clickedState.getBlock(); Block blockInPlace = stateInPlace.getBlock(); EnumPushReaction reaction = clickedState.getPushReaction(); if ((blockInPlace == Blocks.AIR || blockInPlace instanceof BlockFluidBase) && clickedState.getBlockHardness(world, curPos) >= 0F && reaction != EnumPushReaction.IGNORE && reaction != EnumPushReaction.DESTROY && clickedBlock != Blocks.OBSIDIAN && !clickedBlock.hasTileEntity(clickedState)) { world.setBlockToAir(curPos); world.setBlockState(newPos, clickedState, 3); world.playSound(newPos.getX() + 0.5D, newPos.getY() + 0.5D, newPos.getZ() + 0.5D, SoundEvents.BLOCK_PISTON_EXTEND, SoundCategory.PLAYERS, 0.5F, world.rand.nextFloat() * 0.25F + 0.6F, false); } } } }
@SubscribeEvent public void playerInteractEvent(PlayerInteractEvent.LeftClickBlock event) { // only show event if either the test block or the test item is involved if (event.getPos() != null && event.getWorld().getBlockState(event.getPos()) == StartupCommon.blockToolTest) { } else { ItemStack heldItemStack = (event.getEntityPlayer() == null) ? ItemStack.EMPTY : //EMPTY_ITEM event.getEntityPlayer().getItemStackFromSlot(EntityEquipmentSlot.MAINHAND); Item heldItem = heldItemStack.getItem(); if (heldItem != StartupCommon.itemToolsTest) { return; } } StartupCommon.methodCallLogger.enterMethod("Event.PlayerInteractEvent.LeftClickBlock", "pos=" + event.getPos() + ", hitVec=" + event.getHitVec() +", face=" + event.getFace() ); // your code here StartupCommon.methodCallLogger.exitMethod("Event.PlayerInteractEvent.LeftClickBlock", "cancelled=" + event.isCanceled() + "; useItem=" + event.getUseItem() + "; useBlock=" + event.getUseBlock()); }
@SubscribeEvent public void onPlayerLeftLickedBlock(PlayerInteractEvent.LeftClickBlock event) { assert event.getFace() != null; BlockPos pos = event.getPos().offset(event.getFace()); World world = event.getWorld(); IBlockState state = world.getBlockState(pos); if (state.getBlock() == ModBlocks.alchemical_fire) { world.playEvent(null, 1009, pos, 0); world.setBlockToAir(pos); event.setCanceled(true); } else if (ModBlocks.garlic_beacon.equals(state.getBlock()) && Helper.isVampire(event.getEntityPlayer())) { event.getEntityPlayer().addPotionEffect(new PotionEffect(ModPotions.garlic)); } }
@SubscribeEvent(priority = EventPriority.LOWEST) // allow others to cancel this public static void onClick(@Nonnull PlayerInteractEvent.LeftClickBlock event) { final World world = event.getWorld(); if (world != null && !world.isRemote && event.getUseBlock() != Result.DENY) { final EntityPlayer player = event.getEntityPlayer(); if (player != null && !player.isSpectator() && !world.isAirBlock(event.getPos())) { final EnumFacing face = NullHelper.first(event.getFace(), EnumFacing.DOWN); final BlockPos pos = event.getPos().offset(face); if (world.getBlockState(pos).getBlock() instanceof BlockColdFire && player.canPlayerEdit(pos, face, Prep.getEmpty())) { world.playEvent(null, 1009, pos, 0); world.setBlockToAir(pos); } } } }