@SubscribeEvent public static void onPlayerInteract(PlayerInteractEvent.LeftClickBlock event) { EntityPlayer player = event.getEntityPlayer(); ItemStack held = event.getItemStack(); IBlockState state = event.getWorld().getBlockState(event.getPos()); if (!chisel.canChiselBlock(event.getWorld(), player, event.getHand(), event.getPos(), state)) { return; Iterable<? extends BlockPos> candidates = mode.getCandidates(player, event.getPos(), event.getFace());
@SubscribeEvent public void onPlayerLeftClickBlock(final PlayerInteractEvent.LeftClickBlock event) { if (MainProxy.isServer(event.getEntityPlayer().world)) { final TileEntity tile = event.getEntityPlayer().world.getTileEntity(event.getPos()); if (tile instanceof LogisticsTileGenericPipe) { if (((LogisticsTileGenericPipe) tile).pipe instanceof CoreRoutedPipe) { if (!((CoreRoutedPipe) ((LogisticsTileGenericPipe) tile).pipe).canBeDestroyedByPlayer(event.getEntityPlayer())) { event.setCanceled(true); event.getEntityPlayer().sendMessage(new TextComponentTranslation("lp.chat.permissiondenied")); ((LogisticsTileGenericPipe) tile).scheduleNeighborChange(); World world = event.getEntityPlayer().world; BlockPos pos = tile.getPos(); IBlockState state = world.getBlockState(pos); world.markAndNotifyBlock(tile.getPos(), world.getChunkFromBlockCoords(pos), state, state, 2); ((CoreRoutedPipe) ((LogisticsTileGenericPipe) tile).pipe).delayTo = System.currentTimeMillis() + 200; ((CoreRoutedPipe) ((LogisticsTileGenericPipe) tile).pipe).repeatFor = 10; } else { ((CoreRoutedPipe) ((LogisticsTileGenericPipe) tile).pipe).setDestroyByPlayer(); } } } } }
if(mainHandItem.getItem() instanceof IHandListener){ PlayerInteractEvent.LeftClickBlock copy = (PlayerInteractEvent.LeftClickBlock)copy(event); copy.setUseItem(Event.Result.DENY); Event.Result swing = ((IHandListener) mainHandItem.getItem()).onClickBlock(copy, mainHandItem, ((InventoryPlayerBattle) event.getEntityPlayer().inventory).getCurrentOffhandWeapon(), false); if(swing != Event.Result.DEFAULT){ event.setCanceled(true); }else { ((PlayerInteractEvent.LeftClickBlock) event).setUseBlock(copy.getUseBlock()); ((PlayerInteractEvent.LeftClickBlock) event).setUseItem(copy.getUseItem());
@SubscribeEvent public void onHit(PlayerInteractEvent.LeftClickBlock event) { EntityPlayer player = event.getEntityPlayer(); ItemStack held = player.getHeldItem(event.getHand()); if (held != null && held.getItem() == this) { World world = event.getWorld(); TileEntity tile = world.getTileEntity(event.getPos()); if (tile != null && tile instanceof IInventory) { int depositType = StorageActionType.get(held);
@SubscribeEvent public void onLeftClickBlock(PlayerInteractEvent.LeftClickBlock event) { EntityPlayer entityPlayer = event.getEntityPlayer(); BlockPos pos = event.getPos(); World worldObj = event.getWorld(); ItemStack held = event.getItemStack(); if (stardewFurnace) { boolean wasMain = event.getHand() == EnumHand.MAIN_HAND; if (wasMain) { playerSlot = entityPlayer.inventory.currentItem;
/** * Make a complete copy of the argument. * @param event to copy over * @return the copy */ private static PlayerInteractEvent copy(PlayerInteractEvent event){ PlayerInteractEvent copy = null; if(event instanceof PlayerInteractEvent.RightClickEmpty) copy = new PlayerInteractEvent.RightClickEmpty(event.getEntityPlayer(), event.getHand()); else if(event instanceof PlayerInteractEvent.LeftClickBlock) { copy = new PlayerInteractEvent.LeftClickBlock(event.getEntityPlayer(), event.getPos(), event.getFace(), ((PlayerInteractEvent.LeftClickBlock) event).getHitVec()); ((PlayerInteractEvent.LeftClickBlock)copy).setUseItem(((PlayerInteractEvent.LeftClickBlock) event).getUseItem()); ((PlayerInteractEvent.LeftClickBlock)copy).setUseBlock(((PlayerInteractEvent.LeftClickBlock) event).getUseBlock()); } else if(event instanceof PlayerInteractEvent.EntityInteractSpecific) copy = new PlayerInteractEvent.EntityInteractSpecific(event.getEntityPlayer(), event.getHand(), ((PlayerInteractEvent.EntityInteractSpecific) event).getTarget(), ((PlayerInteractEvent.EntityInteractSpecific) event).getLocalPos()); else if(event instanceof PlayerInteractEvent.EntityInteract) copy = new PlayerInteractEvent.EntityInteract(event.getEntityPlayer(), event.getHand(), ((PlayerInteractEvent.EntityInteract) event).getTarget()); else if(event instanceof PlayerInteractEvent.RightClickBlock) { copy = new PlayerInteractEvent.RightClickBlock(event.getEntityPlayer(), event.getHand(), event.getPos(), event.getFace(), ((PlayerInteractEvent.RightClickBlock) event).getHitVec()); ((PlayerInteractEvent.RightClickBlock)copy).setUseItem(((PlayerInteractEvent.RightClickBlock) event).getUseItem()); ((PlayerInteractEvent.RightClickBlock)copy).setUseBlock(((PlayerInteractEvent.RightClickBlock) event).getUseBlock()); } else if(event instanceof PlayerInteractEvent.RightClickItem) copy = new PlayerInteractEvent.RightClickItem(event.getEntityPlayer(),event.getHand()); if(event.isCanceled()){ copy.setCanceled(true); } return copy; }
@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 interaction( final LeftClickBlock event ) { if ( event.getEntityPlayer() != null && event.getUseItem() != Result.DENY ) { final ItemStack is = event.getItemStack(); final boolean validEvent = event.getPos() != null && event.getWorld() != null; if ( is != null && ( is.getItem() instanceof ItemChisel || is.getItem() instanceof ItemChiseledBit ) && validEvent ) { final IBlockState state = event.getWorld().getBlockState( event.getPos() ); if ( BlockBitInfo.canChisel( state ) || MCMultipartProxy.proxyMCMultiPart.isMultiPartTileEntity( event.getWorld(), event.getPos() ) || LittleTiles.isLittleTilesBlock( event.getWorld().getTileEntity( event.getPos() ) ) ) { if ( event.getWorld().isRemote ) { // this is called when the player is survival - // client side. is.getItem().onBlockStartBreak( is, event.getPos(), event.getEntityPlayer() ); } // cancel interactions vs chiseable blocks, creative is // magic. event.setCanceled( true ); } } } testInteractionSupression( event, event.getUseItem() ); }
@Override public boolean onLeftClickBlockWithTool(PlayerInteractEvent.LeftClickBlock event, @Nonnull ItemStack toolStack, @Nonnull ItemStack thisUpgradeStack) { BlockPos startPos = event.getPos(); BlockPos.MutableBlockPos pos = new BlockPos.MutableBlockPos(startPos); World world = event.getWorld(); // TODO: See ItemLeafBlowerUpgrade#blowLeaves. for (int[] aCoordinateArray : WorldHelper.EXTRA_BLOCKS_VERTICAL) { int thisX = startPos.getX() + aCoordinateArray[0]; int thisY = startPos.getY() + aCoordinateArray[1]; int thisZ = startPos.getZ() + aCoordinateArray[2]; pos.setPos(thisX, thisY, thisZ); Block block1 = world.getBlockState(pos).getBlock(); if (WorldHelper.isFarmable(block1)) { world.setBlockToAir(pos); world.setBlockState(pos, Blocks.FARMLAND.getDefaultState()); } } return true; } }
@SubscribeEvent public void onHit(PlayerInteractEvent.LeftClickBlock event) { EntityPlayer player = event.getEntityPlayer(); ItemStack held = player.getHeldItem(event.getHand()); if (held != null && held.getItem() == this) { if (ActionType.getTimeout(held) > 0) { //without a timeout, this fires every tick. so you 'hit once' and get this happening 6 times return; } ActionType.setTimeout(held); event.setCanceled(true); UtilSound.playSound(player, player.getPosition(), SoundRegistry.tool_mode, SoundCategory.PLAYERS); if (!player.getEntityWorld().isRemote) { // server side ActionType.toggle(held); UtilChat.sendStatusMessage(player, UtilChat.lang(ActionType.getName(held))); } } }
@SubscribeEvent public void onHit(PlayerInteractEvent.LeftClickBlock event) { EntityPlayer player = event.getEntityPlayer(); ItemStack held = player.getHeldItem(event.getHand()); if (!held.isEmpty() && held.getItem() == this) { if (ActionType.getTimeout(held) > 0) { //without a timeout, this fires every tick. so you 'hit once' and get this happening 6 times return; } ActionType.setTimeout(held); event.setCanceled(true); UtilSound.playSound(player, player.getPosition(), SoundRegistry.tool_mode, SoundCategory.PLAYERS); if (!player.getEntityWorld().isRemote) { // server side ActionType.toggle(held); UtilChat.sendStatusMessage(player, UtilChat.lang(ActionType.getName(held))); } } }
@SubscribeEvent public void onHit(PlayerInteractEvent.LeftClickBlock event) { EntityPlayer player = event.getEntityPlayer(); ItemStack held = player.getHeldItem(event.getHand()); if (held != null && held.getItem() == this) { if (ActionType.getTimeout(held) > 0) { //without a timeout, this fires every tick. so you 'hit once' and get this happening 6 times return; } ActionType.setTimeout(held); event.setCanceled(true); UtilSound.playSound(player, player.getPosition(), SoundRegistry.tool_mode, SoundCategory.PLAYERS); if (!player.getEntityWorld().isRemote) { // server side ActionType.toggle(held); UtilChat.sendStatusMessage(player, UtilChat.lang(ActionType.getName(held))); } } }
@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 onHit(PlayerInteractEvent.LeftClickBlock event) { EntityPlayer player = event.getEntityPlayer(); ItemStack held = player.getHeldItem(event.getHand()); if (held.getItem() == this) { //did we turn it off? is the visible timer still going? if (ActionType.getTimeout(held) > 0) { return; } ActionType.setTimeout(held); event.setCanceled(true); UtilSound.playSound(player, player.getPosition(), SoundRegistry.tool_mode, SoundCategory.PLAYERS, 0.1F); if (!player.getEntityWorld().isRemote) { // server side ActionType.toggle(held); UtilChat.sendStatusMessage(player, UtilChat.lang(ActionType.getName(held))); } } }
@SubscribeEvent public void onHit(PlayerInteractEvent.LeftClickBlock event) { EntityPlayer player = event.getEntityPlayer(); ItemStack held = player.getHeldItem(event.getHand()); if (held != null && held.getItem() == this) { //did we turn it off? is the visible timer still going? if (ActionType.getTimeout(held) > 0) { return; } ActionType.setTimeout(held); event.setCanceled(true); UtilSound.playSound(player, player.getPosition(), SoundRegistry.tool_mode, SoundCategory.PLAYERS, 0.3F); if (!player.getEntityWorld().isRemote) { // server side ActionType.toggle(held); UtilChat.sendStatusMessage(player, UtilChat.lang(ActionType.getName(held))); } } }
@SubscribeEvent public void onHit(PlayerInteractEvent.LeftClickBlock event) { EntityPlayer player = event.getEntityPlayer(); ItemStack held = player.getHeldItem(event.getHand()); if (held.getItem() == this) { //did we turn it off? is the visible timer still going? if (ActionType.getTimeout(held) > 0) { return; } ActionType.setTimeout(held); event.setCanceled(true); UtilSound.playSound(player, player.getPosition(), SoundRegistry.tool_mode, SoundCategory.PLAYERS, 0.1F); if (!player.getEntityWorld().isRemote) { // server side ActionType.toggle(held); UtilChat.sendStatusMessage(player, UtilChat.lang(ActionType.getName(held))); } } }
@SubscribeEvent public void onLeftClickBlock(PlayerInteractEvent.LeftClickBlock event) { BlockPos pos = event.getPos(); World world = event.getWorld(); EntityPlayer player = event.getEntityPlayer(); ItemStack stack = event.getItemStack();// ItemStack stack = player.getHeldItem(event.getHand()); if (player.isSneaking() == false && world.getTileEntity(pos) instanceof TileEntityVector && stack != null && Block.getBlockFromItem(stack.getItem()) instanceof BlockVectorPlate) { IBlockState iblockstate = world.getBlockState(pos); Block block = iblockstate.getBlock(); TileEntityVector tile = (TileEntityVector) world.getTileEntity(pos); if (stack.hasTagCompound()) { ((BlockVectorPlate) block).saveStackDataTotile(stack, tile); if (world.isRemote) UtilChat.addChatMessage(player, "tile.plate_vector.copied"); } } }
@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)); } }
private void breakingEvent(PlayerInteractEvent.LeftClickBlock event) { if(Configs.isEnabled(EnchantmentBreakingConfig.class)) { int i = doesEnchantApply(event, EnchantmentBreakingConfig._instance.getEnchantment()); ItemStack itemStack = event.getEntityPlayer().getHeldItem(event.getHand()); EnchantmentBreaking.amplifyDamage(itemStack, i, new Random()); } }
private void unusingEvent(PlayerInteractEvent.LeftClickBlock event) { if(Configs.isEnabled(EnchantmentUnusingConfig.class) && doesEnchantApply(event, EnchantmentUnusingConfig._instance.getEnchantment()) > -1) { if(event.getEntityPlayer() != null && EnchantmentUnusing.unuseTool(event.getEntityPlayer().getHeldItem(event.getHand()))) { event.setCanceled(true); event.getEntityPlayer().stopActiveHand(); } } }