@SubscribeEvent public void onRightClickGround(PlayerInteractEvent.RightClickBlock event) { EntityPlayer player = event.getEntityPlayer(); if (!player.isSneaking() && player.getHeldItemMainhand() == null && player.getHeldItemOffhand() == null && !forbidsDrop(event.getWorld().getBlockState(event.getPos()).getBlock())) { Set<Entity> set = getSetFromPlayer(player); player.getPassengers().stream().filter(entity -> entity instanceof EntityBasket && !set.contains(entity)).forEach(entity -> { ItemStack basket = HFCore.STORAGE.getStackFromEnum(Storage.BASKET); TileEntity tile = (((ItemBlockStorage)basket.getItem()).onBasketUsed(basket, player, player.world, event.getPos(), EnumHand.MAIN_HAND, event.getFace(), 0F, 0F, 0F)); if (tile instanceof TileBasket) { ((TileBasket)tile).setAppearanceAndContents(((EntityBasket)entity).getEntityItem(), ((EntityBasket)entity).handler); set.add(entity); entity.setDead(); } }); } else if (player.isSneaking() && player.world.isRemote) { EntityBasket basket = getWearingBasket(player); if (basket != null) { PacketHandler.sendToServer(new PacketOpenBasket()); } } } }
if (glasBottle && block instanceof ITileEntityProvider) { TileEntity entity = event.getWorld().getTileEntity(event.getPos()); if (entity != null && entity.hasCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, event.getFace())) { net.minecraftforge.fluids.capability.IFluidHandler fluidHandler = entity.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, event.getFace()); FluidStack drain = fluidHandler.drain(new FluidStack(ModFluids.blood, 1000), false); if (drain != null && drain.amount >= BloodBottleFluidHandler.MULTIPLIER) {
@SubscribeEvent public void onPlayerRightClickBlock(PlayerInteractEvent.RightClickBlock event) { EntityPlayer player = event.getEntityPlayer(); if (event.getHitVec() == null || event.getWorld() == null || event.getPos() == null || event.getHand() == null || event.getFace() == null || player == null) { return; } ItemStack stack = player.getHeldItem(event.getHand()); if (!stack.isEmpty()) { Pair<WrappedBlock, IMultipart> info = MultipartRegistry.INSTANCE.wrapPlacement(stack); if (info != null && info.getKey().getBlockPlacementLogic() != null) { EnumActionResult result = placePart(stack, player, event.getWorld(), event.getPos(), event.getFace(), (float) event.getHitVec().x, (float) event.getHitVec().y, (float) event.getHitVec().z, event.getHand(), info); if (result != EnumActionResult.PASS) { event.setCancellationResult(result); event.setCanceled(true); } } } }
EnumFacing face = event.getFace(); EntityPlayer player = event.getEntityPlayer(); IBlockState state = world.getBlockState(pos);
if (event.getFace() != EnumFacing.UP) { return; BlockPos pos = event.getPos().offset(event.getFace()); if (world.mayPlace(ModBlocks.cuttingBoard, pos, false, event.getFace(), player)) { IBlockState placedState = ModBlocks.cuttingBoard.getStateForPlacement(world, pos, event.getFace(), 0.5f, 1f, 0.5f, 0, player, event.getHand()); BlockEvent.PlaceEvent placeEvent = ForgeEventFactory.onPlayerBlockPlace(player, new BlockSnapshot(world, pos, placedState), event.getFace(), event.getHand()); if (placeEvent.isCanceled()) { return;
stuffBehind.getBlock().onBlockActivated(worldObj, posBehind, stuffBehind, entityPlayer, event.getHand(), event.getFace(), 0, 0, 0);
if (placeable.placeItemInWorld(world, pos, stack, player, event.getFace(), event.getHitVec()))
@SubscribeEvent public void onClick(final PlayerInteractEvent.RightClickBlock event) { if (event.getHand() != EnumHand.MAIN_HAND) { return; } final World world = event.getWorld(); final EntityPlayer player = event.getEntityPlayer(); final BlockPos pos = event.getPos(); if (!(world.getBlockState(pos).getBlock() instanceof BlockDesign)) { return; } final BlockDesign blockC = (BlockDesign) world.getBlockState(pos).getBlock(); final ItemStack item = player.getHeldItemMainhand(); if (item.isEmpty()) { return; } if (!(item.getItem() instanceof IToolHammer)) { return; } if (!((IToolHammer) item.getItem()).isActive(item)) { return; } final DesignBlock block = blockC.getCarpentryBlock(world, pos); final TileEntityMetadata tile = TileUtil.getTile(world, pos, TileEntityMetadata.class); if (tile != null && event.getFace() != null) { block.rotate(event.getFace(), item, player, world, pos); final int meta = block.getBlockMetadata(blockC.getDesignSystem()); tile.setTileMetadata(meta, true); } }
@SubscribeEvent public void onPlayerRightClick(PlayerInteractEvent.RightClickBlock event) { if(event.getFace() != EnumFacing.UP) return; World world = event.getWorld(); BlockPos pos = event.getPos(); EntityPlayer player = event.getEntityPlayer(); IBlockState state = world.getBlockState(pos); if(state.getBlock() != Blocks.SNOW_LAYER && state.getBlock() != Blocks.SNOW) return; ItemStack stack = event.getEntityPlayer().getHeldItem(event.getHand()); if(!stack.isEmpty() && stack.getItem() instanceof ItemSpade) { if(state.getBlock() == Blocks.SNOW) world.setBlockState(pos, Blocks.SNOW_LAYER.getDefaultState().withProperty(BlockSnow.LAYERS, 7)); else { int layers = state.getValue(BlockSnow.LAYERS); if(layers == 1) world.setBlockToAir(pos); else world.setBlockState(pos, state.withProperty(BlockSnow.LAYERS, layers - 1)); } world.playSound(event.getEntityPlayer(), pos, SoundEvents.ITEM_SHOVEL_FLATTEN, SoundCategory.BLOCKS, 1.0F, 1.0F); stack.damageItem(1, event.getEntityPlayer()); player.swingArm(event.getHand()); event.setCanceled(true); } }
@SubscribeEvent public void onInteract(PlayerInteractEvent.RightClickBlock event) { EntityPlayer player = event.getEntityPlayer(); if(player.getRidingEntity() != null) return; World world = event.getWorld(); BlockPos pos = event.getPos(); Vec3d vec = new Vec3d(pos.getX() + 0.5, pos.getY(), pos.getZ() + 0.5); double maxDist = 2; if((vec.x - player.posX) * (vec.x - player.posX) + (vec.y - player.posY) * (vec.y - player.posY) + (vec.z - player.posZ) * (vec.z - player.posZ) > maxDist * maxDist) return; IBlockState state = world.getBlockState(pos); ItemStack stack1 = player.getHeldItemMainhand(); ItemStack stack2 = player.getHeldItemOffhand(); if(!stack1.isEmpty() || !stack2.isEmpty()) return; if(state.getBlock() instanceof BlockStairs && state.getValue(BlockStairs.HALF) == EnumHalf.BOTTOM && !state.getBlock().isSideSolid(state, world, pos, event.getFace()) && canBeAbove(world, pos)) { List<Seat> seats = world.getEntitiesWithinAABB(Seat.class, new AxisAlignedBB(pos, pos.add(1, 1, 1))); if(seats.isEmpty()) { Seat seat = new Seat(world, pos); world.spawnEntity(seat); event.getEntityPlayer().startRiding(seat); } } }
@SubscribeEvent public void onPlayerInteract(PlayerInteractEvent.RightClickBlock event) { if(event.getFace() == null) return; ItemStack itemstack = event.getItemStack(); EnumFacing facing = event.getFace(); BlockPos blockpos = event.getPos().offset(facing); World world = event.getWorld(); EntityPlayer player = event.getEntityPlayer(); if(!player.canPlayerEdit(blockpos, facing, itemstack) || facing.getAxis() != EnumFacing.Axis.Y || itemstack.getItem() != Items.ITEM_FRAME) return; EntityHanging entityhanging = new EntityFlatItemFrame(world, blockpos, facing); if(entityhanging != null && entityhanging.onValidSurface()) { if(!event.getWorld().isRemote) { entityhanging.playPlaceSound(); world.spawnEntity(entityhanging); event.setCanceled(true); if(!player.capabilities.isCreativeMode) itemstack.shrink(1); } else player.swingArm(event.getHand()); } }
/** * This event is fired on both sides whenever the player right clicks while targeting a block. This event controls which of {@link net.minecraft.block.Block#onBlockActivated} and/or * {@link net.minecraft.item.Item#onItemUse} will be called after {@link net.minecraft.item.Item#onItemUseFirst} is called. Canceling the event will cause none of the above three to be called. There * are various results to this event, see the getters below. Note that handling things differently on the client vs server may cause desynchronizations! */ @SubscribeEvent public void onRightClickBlock(RightClickBlock event) { //instanceof ItemBlockScaffolding if (event.getItemStack() != null && event.getItemStack().getItem() == this && event.getEntityPlayer().isSneaking()) { EnumFacing opp = event.getFace().getOpposite(); BlockPos dest = UtilWorld.nextReplaceableInDirection(event.getWorld(), event.getPos(), opp, 16, this.getBlock()); this.onItemUse(event.getEntityPlayer(), event.getWorld(), dest, event.getHand(), opp, 0, 0, 0); event.setCanceled(true); } } }
@SubscribeEvent(priority = EventPriority.HIGH) public void onRightClickGround(PlayerInteractEvent.RightClickBlock event) { List<Quest> quests = HFApi.quests.getCurrentQuests(event.getEntityPlayer()); for (Quest quest : quests) { quest.onRightClickBlock(event.getEntityPlayer(), event.getPos(), event.getFace()); } } }