if(player.world.isAirBlock(pos) && ManaItemHandler.requestManaExact(lokiRing, player, cost, true)) { ItemStack saveHeld = heldItemStack.copy(); item.onItemUse(player, player.world, pos, event.getHand(), lookPos.sideHit, (float) lookPos.hitVec.x - pos.getX(), (float) lookPos.hitVec.y - pos.getY(), (float) lookPos.hitVec.z - pos.getZ()); if (player.isCreative()) player.setHeldItem(event.getHand(), saveHeld);
if(ImmutableSet.of(Blocks.GRASS, Blocks.GRASS_PATH, Blocks.FARMLAND, Blocks.DIRT, ModBlocks.altGrass).contains(block)) { if(event.getWorld().isRemote) event.getEntityPlayer().swingArm(event.getHand()); else { event.getWorld().playSound(null, event.getPos(), block.getSoundType().getBreakSound(), SoundCategory.BLOCKS, block.getSoundType().getVolume() * 0.4F, block.getSoundType().getPitch() + (float) (Math.random() * 0.2 - 0.1)); event.getEntityPlayer().setHeldItem(event.getHand(), new ItemStack(ModItems.waterBowl)); else ItemHandlerHelper.giveItemToPlayer(event.getEntityPlayer(), new ItemStack(ModItems.waterBowl));
/** * This method is part of my simple custom advancement triggering tutorial. * See: http://jabelarminecraft.blogspot.com/p/minecraft-modding-custom-triggers-aka.html * * @param event the event */ @SubscribeEvent(priority = EventPriority.HIGHEST, receiveCanceled = true) public static void onEvent(RightClickBlock event) { EntityPlayer thePlayer = event.getEntityPlayer(); if (thePlayer instanceof EntityPlayerMP) { EntityPlayerMP thePlayerMP = (EntityPlayerMP)thePlayer; // DEBUG System.out.println("Right clicking block with "+thePlayer.getHeldItem(event.getHand())); if (thePlayer.getHeldItem(event.getHand()).getItem() == ModBlocks.item_block_cloud_sapling) { ModTriggers.PLACE_CLOUD_SAPLING.trigger(thePlayerMP); } } } }
return; if(event.getHand() != EnumHand.MAIN_HAND) return;
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; player.swingArm(event.getHand()); player.playSound(SoundEvents.BLOCK_WOOD_PLACE, 1f, 1f); event.setCancellationResult(EnumActionResult.SUCCESS);
stuffBehind.getBlock().onBlockActivated(worldObj, posBehind, stuffBehind, entityPlayer, event.getHand(), event.getFace(), 0, 0, 0);
@SubscribeEvent public void onInteract(PlayerInteractEvent.RightClickBlock event) { EntityPlayer player = event.getEntityPlayer(); EnumHand hand = event.getHand(); ItemStack stack = player.getHeldItem(hand);
@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 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()); } }
@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); } } } }
@SubscribeEvent public void drawingInteractionPrevention( final RightClickBlock pie ) { if ( pie.getWorld() != null && pie.getWorld().isRemote ) { final ChiselToolType tool = getHeldToolType( pie.getHand() ); final IToolMode chMode = ChiselModeManager.getChiselMode( getPlayer(), tool, pie.getHand() ); final BitLocation other = getStartPos(); if ( ( chMode == ChiselMode.DRAWN_REGION || tool == ChiselToolType.TAPEMEASURE ) && other != null ) { // this handles the client side, but the server side will fire // separately. pie.setCanceled( true ); } } }
/** * 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); } } }
private static void disableItemBlock(PlayerInteractEvent.RightClickBlock event) { if (event.getEntityPlayer().getHeldItem(event.getHand()).getItem() instanceof ItemBlock) event.setUseItem(Event.Result.DENY); } }
@SubscribeEvent(priority = EventPriority.HIGHEST) public void onOffhandBlock(PlayerInteractEvent.RightClickBlock offhandItemEvent){ if(offhandItemEvent.getHand() == EnumHand.OFF_HAND){ onOffhandUse(new PlayerEventChild.UseOffhandItemEvent(offhandItemEvent)); } }
@SubscribeEvent public static void onRightClickBlock(PlayerInteractEvent.RightClickBlock event) { if (event.getHand() == EnumHand.OFF_HAND) { ItemStack mainhandStack = event.getEntityPlayer().getHeldItemMainhand(); if (mainhandStack.getItem() instanceof IChiselItem) { event.setCanceled(true); } } }
@SubscribeEvent public void onPlayerInteract(PlayerInteractEvent.RightClickBlock event) { ItemStack stack = event.getItemStack(); boolean correctStack = !stack.isEmpty() && stack.getItem() == Items.GLASS_BOTTLE; boolean ender = event.getWorld().provider instanceof WorldProviderEnd; if(correctStack && ender) { if (event.getWorld().isRemote) { event.getEntityPlayer().swingArm(event.getHand()); } else { ItemStack stack1 = new ItemStack(this, 1, 15); ItemHandlerHelper.giveItemToPlayer(event.getEntityPlayer(), stack1); stack.shrink(1); event.getWorld().playSound(null, event.getPos(), SoundEvents.ENTITY_ITEM_PICKUP, SoundCategory.PLAYERS, 0.5F, 1F); } event.setCanceled(true); event.setCancellationResult(EnumActionResult.SUCCESS); } }
@SubscribeEvent public static void onInteract(PlayerInteractEvent.RightClickBlock event) { TileRedStringInterceptor.onInteract(event.getEntityPlayer(), event.getWorld(), event.getPos(), event.getHand()); }