event.setCanceled(true); event.setCancellationResult(EnumActionResult.SUCCESS); event.setCanceled(true); event.setCancellationResult(EnumActionResult.SUCCESS);
event.setCanceled(true); event.setCancellationResult(EnumActionResult.SUCCESS); } else {
@SubscribeEvent public void onRightClick(PlayerInteractEvent.RightClickBlock event) { if (!event.getWorld().isRemote) { PhysicsWrapperEntity physObj = ValkyrienWarfareMod.physicsManager.getObjectManagingPos(event.getWorld(), event.getPos()); if (physObj != null) { if (ValkyrienWarfareMod.runAirshipPermissions && !(physObj.wrapping.creator.equals(event.getEntityPlayer().entityUniqueID.toString()) || physObj.wrapping.allowedUsers.contains(event.getEntityPlayer().entityUniqueID.toString()))) { event.getEntityPlayer().sendMessage(new TextComponentString("You need to be added to the airship to do that!" + (physObj.wrapping.creator == null || physObj.wrapping.creator.trim().isEmpty() ? " Try using \"/airshipSettings claim\"!" : ""))); event.setCanceled(true); return; } else { event.setResult(Result.ALLOW); event.setCanceled(false); } } } }
@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 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 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 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 onPoisonRightClick(PlayerInteractEvent.RightClickBlock event) { EnumHand hand = event.getEntityPlayer().getActiveHand(); // Return poison bottle instead of water bottle when right clicking poison fluid source with empty bottle. if(hand != null && !event.getEntityPlayer().getHeldItem(hand).isEmpty() && event.getEntityPlayer().getHeldItem(hand).getItem() == Items.GLASS_BOTTLE && Configs.isEnabled(PoisonConfig.class)) { RayTraceResult pos = this.rayTrace(event.getWorld(), event.getEntityPlayer(), true); if(pos != null && pos.typeOfHit == RayTraceResult.Type.BLOCK) { if(event.getWorld().isBlockModifiable(event.getEntityPlayer(), pos.getBlockPos()) && event.getEntityPlayer().canPlayerEdit(pos.getBlockPos(), pos.sideHit, event.getEntityPlayer().getHeldItem(hand)) && event.getWorld().getBlockState(pos.getBlockPos()).getMaterial() == Material.WATER) { if(event.getWorld().getBlockState(pos.getBlockPos()).getBlock() == FluidBlockPoison.getInstance()) { InventoryHelpers.tryReAddToStack(event.getEntityPlayer(), event.getEntityPlayer().getHeldItem(hand), new ItemStack(this), hand); event.getWorld().setBlockToAir(pos.getBlockPos()); event.setCanceled(true); } } } } }
@SubscribeEvent(priority = EventPriority.HIGH) public static void onRightClickBlock(PlayerInteractEvent.RightClickBlock event) { if (FTBUtilitiesConfig.world.isItemRightClickDisabled(event.getItemStack())) { event.setCanceled(true); if (!event.getWorld().isRemote) { event.getEntityPlayer().sendStatusMessage(new TextComponentString("Item disabled!"), true); } return; } if (ClaimedChunks.blockBlockInteractions(event.getEntityPlayer(), event.getPos(), null)) { InvUtils.forceUpdate(event.getEntityPlayer()); event.setCanceled(true); } }
@SubscribeEvent public void onChestClicked(PlayerInteractEvent.RightClickBlock evt) { World world = evt.getWorld(); BlockPos pos = evt.getPos(); EntityPlayer player = evt.getEntityPlayer(); if (!player.capabilities.isCreativeMode && !player.isSneaking() && isChest(world, pos)) { AWGameData.INSTANCE.getData(world, StructureMap.class).getStructureAt(world, pos).ifPresent(structure -> { for (NpcFaction factionNpc : world.getEntitiesWithinAABB(NpcFaction.class, structure.getBB().getAABB())) { if (!factionNpc.isPassive()) { evt.setCanceled(true); evt.setCancellationResult(EnumActionResult.FAIL); player.sendStatusMessage(new TextComponentTranslation("gui.ancientwarfarenpc.no_chest_access", StringUtils.capitalize(factionNpc.getFaction())), 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); } } }
@SubscribeEvent public static void onPlayerInteraction(PlayerInteractEvent.RightClickBlock event) { ItemStack stack = event.getItemStack(); if (!stack.isEmpty() && stack.getItem() == Items.FLINT_AND_STEEL) { if (!event.getWorld().isRemote && !event.getEntityPlayer().capabilities.isCreativeMode && event.getWorld().rand.nextInt(100) >= ConfigHolder.flintChanceToCreateFire) { stack.damageItem(1, event.getEntityPlayer()); if (stack.getItemDamage() >= stack.getMaxDamage()) { stack.shrink(1); } event.setCanceled(true); } } }
@SubscribeEvent() public void onRightClickBlock(RightClickBlock event) { if (!event.getWorld().isRemote) { ItemStack stack = event.getItemStack(); if (stack != null && stack.getItem() instanceof ItemNameTag) { BlockPos posAt = event.getPos(); EntityPlayer player = event.getEntityPlayer(); World world = event.getWorld(); PhysicsWrapperEntity wrapper = ValkyrienWarfareMod.physicsManager.getObjectManagingPos(world, posAt); if (wrapper != null) { wrapper.setCustomNameTag(stack.getDisplayName()); --stack.stackSize; event.setCanceled(true); } } } }
@SubscribeEvent public void onInteract(PlayerInteractEvent.RightClickBlock event) { if(event.getUseBlock() == Result.DENY) return; TileEntity tile = event.getWorld().getTileEntity(event.getPos()); if(tile instanceof TileEntityNote && (!emptyHand || event.getEntityPlayer().getHeldItemMainhand().isEmpty()) && event.getEntityPlayer().capabilities.allowEdit && !event.getEntity().isSneaking()) { TileEntityNote noteBlock = (TileEntityNote) tile; event.getEntityPlayer().openGui(Quark.instance, LibGuiIDs.NOTE_BLOCK, event.getWorld(), event.getPos().getX(), event.getPos().getY(), event.getPos().getZ()); event.setCanceled(true); } }
@SubscribeEvent public void onPlayerClickBlock(PlayerInteractEvent.RightClickBlock event) { if (!Helpers.isHolding(event.getEntityLiving(), this)) return; // Cancel all right clicks on blocks with this item if (!event.getEntityLiving().isSneaking()) { event.setCanceled(true); } }
@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 onInteract(PlayerInteractEvent.RightClickBlock event) { // does the player clicks on an echanting table with moss with 5 levels? if(ItemStack.areItemsEqual(event.getItemStack(), TinkerCommons.matMoss)) { World world = event.getWorld(); BlockPos pos = event.getPos(); if(world.getBlockState(pos).getBlock().getEnchantPowerBonus(world, pos) >= 1.0f) { EntityPlayer player = event.getEntityPlayer(); if(event.getEntityPlayer().experienceLevel >= ModMendingMoss.MENDING_MOSS_LEVELS) { // convert moss to mending moss player.playSound(SoundEvents.ENTITY_EXPERIENCE_ORB_PICKUP, 1f, 1f); if(!event.getWorld().isRemote) { event.getItemStack().shrink(1); player.onEnchant(null, ModMendingMoss.MENDING_MOSS_LEVELS); ItemHandlerHelper.giveItemToPlayer(player, TinkerCommons.matMendingMoss.copy()); event.setUseBlock(Event.Result.DENY); event.setUseItem(Event.Result.DENY); event.setCanceled(true); } } else { player.sendStatusMessage(new TextComponentTranslation("message.mending_moss.not_enough_levels", ModMendingMoss.MENDING_MOSS_LEVELS), 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 onPlayerInteract(PlayerInteractEvent.RightClickBlock event) { if(currentMultiblock != null && anchor == null && event.getEntityPlayer() == Minecraft.getMinecraft().player) { anchor = event.getPos(); angle = event.getEntityPlayer().getHorizontalFacing(); event.setCanceled(true); event.setCancellationResult(EnumActionResult.SUCCESS); } }