if (event.getWorld().getWorldBorder().contains(event.getPos())) { ItemStack heldStack = event.getItemStack(); if (!heldStack.isEmpty() && heldStack.getCount() == 1) { boolean glasBottle = Items.GLASS_BOTTLE.equals(heldStack.getItem()); boolean bloodBottle = ModItems.blood_bottle.equals(heldStack.getItem()); if (bloodBottle || (glasBottle && Configs.autoConvertGlasBottles)) { Block block = event.getWorld().getBlockState(event.getPos()).getBlock(); 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) { convert = event.getEntityPlayer().isSneaking(); event.setUseBlock(Event.Result.ALLOW); EnumHand hand = heldStack.equals(event.getEntityPlayer().getHeldItemMainhand()) ? EnumHand.MAIN_HAND : (heldStack.equals(event.getEntityPlayer().getHeldItemOffhand()) ? EnumHand.OFF_HAND : EnumHand.MAIN_HAND); heldStack = new ItemStack(ModItems.blood_bottle); event.getEntityPlayer().setHeldItem(hand, heldStack);
@SubscribeEvent public void onInteract(PlayerInteractEvent.RightClickBlock event) { EntityPlayer player = event.getEntityPlayer(); EnumHand hand = event.getHand(); ItemStack stack = player.getHeldItem(hand); World world = event.getWorld(); BlockPos pos = event.getPos(); while(world.getBlockState(pos).getBlock() == block) { BlockPos posDown = pos.down(); world.playSound(null, posDown.getX(), posDown.getY(), posDown.getZ(), Blocks.LADDER.getSoundType().getPlaceSound(), SoundCategory.BLOCKS, 1F, 1F); event.setCanceled(true);
final EntityPlayer player = event.getEntityPlayer(); final World world = event.getWorld(); BlockPos bedBlockPos = event.getPos(); if (event.getHand() == EnumHand.MAIN_HAND && !(event.getWorld().isRemote)) if (playerRightClickInteract(player, world, event.getPos()) && world.getBlockState(event.getPos()).getBlock() instanceof AbstractBlockHut) final IColony colony = ColonyManager.getIColony(world, event.getPos()); if (colony != null && !colony.getPermissions().hasPermission(player, Action.ACCESS_HUTS)) event.setCanceled(true); else if ("pmardle".equalsIgnoreCase(event.getEntityPlayer().getName()) && Block.getBlockFromItem(event.getItemStack().getItem()) instanceof BlockSilverfish) LanguageHandler.sendPlayerMessage(event.getEntityPlayer(), "Stop that you twat!!!"); event.setCanceled(true); if (world.getBlockState(event.getPos()).getBlock().isBed(world.getBlockState(event.getPos()), world, event.getPos(), player)) if (world.getBlockState(event.getPos()).getBlock().isBedFoot(world, event.getPos())) bedBlockPos = bedBlockPos.offset(world.getBlockState(event.getPos()).getValue(BlockBed.FACING)); event.setCanceled(true); LanguageHandler.sendPlayerMessage(player, "tile.bed.occupied");
@SubscribeEvent public void onPlayerInteract(PlayerInteractEvent.RightClickBlock event) if (event.isCanceled() || event.getResult() != Event.Result.DEFAULT) return; EntityPlayer player = event.getEntityPlayer(); ItemStack heldItem = event.getItemStack(); if (heldItem == null || heldItem.getItem() != Items.GLASS_BOTTLE) return; World world = event.getWorld(); event.setCanceled(true); event.setResult(Event.Result.DENY); return; return; if (!world.canMineBlockBody(event.getEntityPlayer(), pos)) return; if (!event.getEntityPlayer().canPlayerEdit(pos, rayTraceResult.sideHit, heldItem)) return; event.setCanceled(true); event.setResult(Event.Result.DENY);
@Override public void onPlayerRightClickBlock(PlayerInteractEvent.RightClickBlock event, @Nonnull ItemStack armorStack, EntityEquipmentSlot slot) { BlockPos pos = event.getPos(); int x = pos.getX(); int y = pos.getY(); int z = pos.getZ(); World world = event.getWorld(); EnumFacing face = event.getFace(); EntityPlayer player = event.getEntityPlayer(); IBlockState state = world.getBlockState(pos); Block block = state.getBlock();
return; if(event.getEntityPlayer() == null) return; final IBlockState blockState = event.getWorld().getBlockState(event.getPos()); (event.getEntityPlayer().getHeldItemMainhand().canHarvestBlock(blockState) || event.getEntityPlayer().getHeldItemOffhand().canHarvestBlock(blockState))) return; if(event.getHand() != EnumHand.MAIN_HAND) return; if(canHarvestCrops(blockState, event.getWorld(), event.getPos())) { if(!event.getWorld().isRemote) harvestCrops(blockState, event.getEntityPlayer(), event.getWorld(), event.getPos()); event.getEntityPlayer().swingArm(EnumHand.MAIN_HAND); if(!event.getWorld().isRemote) harvestNetherWart(blockState, event.getEntityPlayer(), event.getWorld(), event.getPos()); event.getEntityPlayer().swingArm(EnumHand.MAIN_HAND); if(!event.getWorld().isRemote) harvestFruit(blockState, event.getEntityPlayer(), event.getWorld(), event.getPos()); event.getEntityPlayer().swingArm(EnumHand.MAIN_HAND);
@SubscribeEvent public void onFertiliseSoil(PlayerInteractEvent.RightClickBlock event) { World world = event.getWorld(); if (world == null) { return; BlockPos pos = event.getPos(); EntityPlayer player = event.getEntityPlayer(); if (player == null) { return; Block block = world.getBlockState(event.getPos()).getBlock(); if (!gardening.isSoil(block)) { pos = pos.down();
@Override public boolean onRightClickBlockWithTool(PlayerInteractEvent.RightClickBlock event, @Nonnull ItemStack toolStack, @Nonnull ItemStack thisUpgradeStack) { EntityPlayer player = event.getEntityPlayer(); if (!player.isSneaking()) { return true; World world = event.getWorld(); BlockPos pos = event.getPos(); TileEntity tile = world.getTileEntity(pos); if (!(tile instanceof IInventory) || ((IInventory) tile).getSizeInventory() < 1) {
@SubscribeEvent public void rightClickBlock(PlayerInteractEvent.RightClickBlock event) { EntityPlayer player = (EntityPlayer) event.getEntity(); World world = event.getWorld(); IBlockState blockState = world.getBlockState(event.getPos()); int cakeBites = blockState.getValue(BlockCake.BITES); if (cakeBites < 6) world.setBlockState(event.getPos(), blockState.withProperty(BlockCake.BITES, cakeBites + 1), 3); else world.setBlockToAir(event.getPos());
@SubscribeEvent public void onInteract(PlayerInteractEvent.RightClickBlock event) { if (passThroughClick) { EntityPlayer entityPlayer = event.getEntityPlayer(); BlockPos pos = event.getPos(); World worldObj = event.getWorld(); if (pos == null) { return; IBlockState state = event.getWorld().getBlockState(pos); stuffBehind.getBlock().onBlockActivated(worldObj, posBehind, stuffBehind, entityPlayer, event.getHand(), event.getFace(), 0, 0, 0); event.setUseItem(net.minecraftforge.fml.common.eventhandler.Event.Result.DENY);
if (event.getItemStack().getItem() != Compat.cuttingBoardItem) { return; if (event.getFace() != EnumFacing.UP) { return; World world = event.getWorld(); EntityPlayer player = event.getEntityPlayer(); IBlockState clickedBlock = world.getBlockState(event.getPos()); if (clickedBlock.getBlock() == Blocks.CHEST || clickedBlock.getBlock() == Blocks.CRAFTING_TABLE || clickedBlock.getBlock() == ModBlocks.cuttingBoard) { 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; event.getItemStack().shrink(1); player.swingArm(event.getHand()); player.playSound(SoundEvents.BLOCK_WOOD_PLACE, 1f, 1f); event.setCancellationResult(EnumActionResult.SUCCESS); event.setCanceled(true);
public void onRightClickBlock(PlayerInteractEvent.RightClickBlock event) final World world = event.getWorld(); final BlockPos pos = event.getPos(); final ItemStack stack = event.getItemStack(); final EntityPlayer player = event.getEntityPlayer(); if (event.getHand() == EnumHand.OFF_HAND) event.setCanceled(true); return; if (placeable.placeItemInWorld(world, pos, stack, player, event.getFace(), event.getHitVec())) player.setHeldItem(event.getHand(), Helpers.consumeItem(stack, player, 1)); event.setCancellationResult(EnumActionResult.SUCCESS); event.setCanceled(true);
@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 onShearFlower(PlayerInteractEvent.RightClickBlock event) { EntityPlayer player = event.getEntityPlayer(); if (player == null) { return; } ItemStack heldItem = player.getHeldItemMainhand(); if (heldItem.isEmpty()) { return; } TileEntity tile = event.getWorld().getTileEntity(event.getPos()); if (!(tile instanceof TileEntityFlower)) { return; } TileEntityFlower flower = (TileEntityFlower) tile; if (heldItem.getItem() == Items.SHEARS) { flower.onShear(); heldItem.damageItem(1, player); } else if (heldItem.getItem() == pollen) { IFlower pollen = BotanyCore.getFlowerRoot().getMember(heldItem); if (pollen != null && flower.canMateWith(pollen)) { flower.mateWith(pollen); if (!player.capabilities.isCreativeMode) { heldItem.shrink(1); } } } }
@SubscribeEvent public static void onRightClick(RightClickBlock event) { EntityPlayer player = event.getEntityPlayer(); ItemStack bookStack = player.getHeldItemMainhand(); if(event.getWorld().isRemote && player.isSneaking()) { Book book = getBookFromStack(bookStack); if(book != null) { Pair<BookEntry, Integer> hover = getHoveredEntry(book); if(hover != null) { BookEntry entry = hover.getLeft(); if(!entry.isLocked()) { int page = hover.getRight(); GuiBook curr = book.contents.getCurrentGui(); book.contents.currentGui = new GuiBookEntry(book, entry, page); player.swingArm(EnumHand.MAIN_HAND); if(curr instanceof GuiBookEntry) { GuiBookEntry currEntry = (GuiBookEntry) curr; if(currEntry.getEntry() == entry && currEntry.getPage() == page) return; } book.contents.guiStack.push(curr); } } } } }
@Deprecated public void onPlantVanilla(PlayerInteractEvent.RightClickBlock event) { BlockPos pos = event.getPos(); World world = event.getWorld(); EntityPlayer player = event.getEntityPlayer(); ItemStack heldItem = player.getHeldItemMainhand(); if (event.getWorld().isRemote) { return; } if (heldItem.isEmpty()) { return; } Block block = world.getBlockState(pos).getBlock(); int py = -1; if (block instanceof IBlockSoil && (world.isAirBlock(pos.up()) || block.isReplaceable(world, pos))) { py = 1; } if (py < 0) { return; } IFlowerRoot flowerRoot = BotanyCore.getFlowerRoot(); IFlower flower = flowerRoot.getConversion(heldItem); if (flower != null && flowerRoot.plant(world, pos.add(0, py, 0), flower, player.getGameProfile()) && !player.capabilities.isCreativeMode) { heldItem.shrink(1); } }
@SubscribeEvent public void handleCropRightClick(RightClickBlock event) { if (!ConfigHandler.allowCropRC) { return; } if (event.getEntityPlayer().getHeldItemMainhand().isEmpty() || !event.getEntityPlayer().isSneaking()) { BlockPos pos = event.getPos(); IBlockState blockState = event.getWorld().getBlockState(pos); for (IPlantInfo info : plants) { if (info.getGrownState() == blockState) { if (event.getWorld().isRemote) { event.getEntityPlayer().swingArm(EnumHand.MAIN_HAND); } else { currentPlant = info; blockState.getBlock().dropBlockAsItem(NullHelper.notnullF(event.getWorld(), "RightClickBlock.getWorld()"), pos, blockState, 0); currentPlant = null; IBlockState newBS = info.getResetState(); event.getWorld().setBlockState(pos, newBS, 3); event.setCanceled(true); } break; } } } }
@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 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); } }
public void onPlayerLeftClickBlock(final PlayerInteractEvent.RightClickBlock event) { if (MainProxy.isServer(event.getEntityPlayer().world)) { WorldCoordinatesWrapper worldCoordinates = new WorldCoordinatesWrapper(event.getEntityPlayer().world, event.getPos()); TileEntity tileEntity = worldCoordinates.getTileEntity(); if (tileEntity instanceof TileEntityChest || SimpleServiceLocator.ironChestProxy.isIronChest(tileEntity)) { //@formatter:off List<WeakReference<ModuleQuickSort>> list = worldCoordinates.getAdjacentTileEntities() .filter(adjacent -> adjacent.tileEntity instanceof LogisticsTileGenericPipe) .filter(adjacent -> ((LogisticsTileGenericPipe) adjacent.tileEntity).pipe instanceof PipeLogisticsChassi) .filter(adjacent -> ((PipeLogisticsChassi) ((LogisticsTileGenericPipe) adjacent.tileEntity).pipe).getPointedOrientation() == adjacent.direction.getOpposite()) .map(adjacent -> (PipeLogisticsChassi) ((LogisticsTileGenericPipe) adjacent.tileEntity).pipe) .flatMap(pipeLogisticsChassi -> Arrays.stream(pipeLogisticsChassi.getModules().getModules())) .filter(logisticsModule -> logisticsModule instanceof ModuleQuickSort) .map(logisticsModule -> new WeakReference<>((ModuleQuickSort) logisticsModule)) .collect(Collectors.toList()); //@formatter:on if (!list.isEmpty()) { LogisticsEventListener.chestQuickSortConnection.put(event.getEntityPlayer(), list); } } } }