return; // We have to be told to catch these events if (event.getWorld().isRemote && event instanceof LeftClickEmpty) { && ((PlayerInteractEvent.RightClickBlock) event) .getUseItem() == Result.DENY; if (isLeftDeny || isRightDeny || event.getEntity().world.isRemote) { return; ForgePlayer player = wrap((EntityPlayerMP) event.getEntityPlayer()); ForgeWorld world = getWorld(event.getEntityPlayer().world); Location pos = new Location(world, event.getPos().getX(), event.getPos().getY(), event.getPos().getZ()); event.setCanceled(true); event.setCanceled(true); Location pos = new Location(world, event.getPos().getX(), event.getPos().getY(), event.getPos().getZ()); event.setCanceled(true); event.setCanceled(true); event.setCanceled(true);
if( event.getHand() != EnumHand.MAIN_HAND ) if( event instanceof PlayerInteractEvent.RightClickEmpty && event.getEntityPlayer().world.isRemote ) final RayTraceResult mop = Platform.rayTrace( event.getEntityPlayer(), true, false ); final Minecraft mc = Minecraft.getMinecraft(); final World w = event.getEntity().world; final TileEntity te = w.getTileEntity( mop.getBlockPos() ); if( te instanceof IPartHost && this.wasCanceled ) event.setCanceled( true ); final ItemStack held = event.getEntityPlayer().getHeldItem( event.getHand() ); final IItems items = AEApi.instance().definitions().items(); if( event.getEntityPlayer().isSneaking() && !held.isEmpty() && supportedItem ) NetworkHandler.instance().sendToServer( new PacketClick( event.getPos(), event.getFace(), 0, 0, 0, event.getHand() ) ); else if( event instanceof PlayerInteractEvent.RightClickBlock && !event.getEntityPlayer().world.isRemote ) final ItemStack held = event.getEntityPlayer().getHeldItem( event.getHand() ); if( place( held, event.getPos(), event.getFace(), event.getEntityPlayer(), event.getHand(), event.getEntityPlayer().world, PlaceType.INTERACT_FIRST_PASS, 0 ) == EnumActionResult.SUCCESS ) event.setCanceled( true ); this.wasCanceled = true;
@SubscribeEvent public static void onPlayerClick(PlayerInteractEvent event) { if (event.isCancelable() && event.getEntityPlayer().isPotionActive(RegistrarBloodMagic.CONSTRICT)) { EntityPlayer player = event.getEntityPlayer(); int level = player.getActivePotionEffect(RegistrarBloodMagic.CONSTRICT).getAmplifier(); if (event.getHand() == EnumHand.OFF_HAND || level > 1) { event.setCanceled(true); } } }
@SubscribeEvent public void playerInteract(PlayerInteractEvent event) { if(event.getEntityPlayer().isSpectator() || !isValid(event.getEntity())) return; if(((IBattlePlayer) event.getEntityPlayer()).getSpecialActionTimer() > 0){ event.setCanceled(true); event.getEntityPlayer().isSwingInProgress = false; }else if(BattlegearUtils.isPlayerInBattlemode(event.getEntityPlayer())) { if(event instanceof PlayerInteractEvent.LeftClickBlock) {//Left click ItemStack mainHandItem = event.getEntityPlayer().getHeldItemMainhand(); 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.getEntityPlayer().isSwingInProgress = false; event.setCanceled(true); }else { ((PlayerInteractEvent.LeftClickBlock) event).setUseBlock(copy.getUseBlock()); }else if(event.getHand() == EnumHand.OFF_HAND) {//Right click ItemStack offhandItem = event.getItemStack(); if(offhandItem.isEmpty()) { sendOffSwingEvent(event); }else if(!(event instanceof PlayerInteractEvent.EntityInteract) && BattlegearUtils.usagePriorAttack(offhandItem, event.getEntityPlayer(), true)) { ItemStack mainHandItem = event.getEntityPlayer().getHeldItemMainhand(); if (mainHandItem.isEmpty() || !BattlegearUtils.usagePriorAttack(mainHandItem, event.getEntityPlayer(), false)) { event.setCanceled(true);
/** * 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; }
if (colony.isCoordInColony(event.getWorld(), event.getPos()) && !(event instanceof PlayerInteractEvent.EntityInteract || event instanceof PlayerInteractEvent.EntityInteractSpecific)) final Block block = event.getWorld().getBlockState(event.getPos()).getBlock(); && !colony.getPermissions().hasPermission(event.getEntityPlayer(), Action.ACCESS_HUTS)) cancelEvent(event, event.getEntityPlayer(), colony, Action.ACCESS_HUTS, event.getPos()); return; if (isFreeToInteractWith(block, event.getPos()) && perms.hasPermission(event.getEntityPlayer(), Action.ACCESS_FREE_BLOCKS)) if (!perms.hasPermission(event.getEntityPlayer(), Action.RIGHTCLICK_BLOCK) && block != Blocks.AIR) checkEventCancelation(Action.RIGHTCLICK_BLOCK, event.getEntityPlayer(), event.getWorld(), event, event.getPos()); return; if (block instanceof BlockContainer && !perms.hasPermission(event.getEntityPlayer(), Action.OPEN_CONTAINER)) cancelEvent(event, event.getEntityPlayer(), colony, Action.OPEN_CONTAINER, event.getPos()); return; if (event.getWorld().getTileEntity(event.getPos()) != null && !perms.hasPermission(event.getEntityPlayer(), Action.RIGHTCLICK_ENTITY)) checkEventCancelation(Action.RIGHTCLICK_ENTITY, event.getEntityPlayer(), event.getWorld(), event, event.getPos()); return;
Object result; if (playerInteracted instanceof PlayerInteractEvent.RightClickItem) { result = AirInteract.invoke(null, playerInteracted.getEntityPlayer(), AIR, stack); if(result != null && ItemUse.invoke(result) == DENY) playerInteracted.setCanceled(true); } else if(playerInteracted instanceof PlayerInteractEvent.RightClickBlock){ result = BlockInteract.invoke(null, playerInteracted.getEntityPlayer(), BLOCK, playerInteracted.getPos().getX(), playerInteracted.getPos().getY(), playerInteracted.getPos().getZ(), playerInteracted.getFace().getIndex(), stack); playerInteracted.setCanceled(true); }else { if(ItemUse.invoke(result) == DENY){
BlockPos pos = evt.getPos(); World world = evt.getWorld(); IBlockState state = world.getBlockState(pos); Block block = world.getBlockState(pos).getBlock(); evt.setResult(Event.Result.DENY); EntityTameableDragon dragon = new EntityTameableDragon(world); dragon.setPosition(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5); dragon.getReproductionHelper().setBreeder(evt.getEntityPlayer()); dragon.getLifeStageHelper().setLifeStage(EnumDragonLifeStage.EGG);
@SubscribeEvent public void onPlayerInteract(PlayerInteractEvent event) { if (signSkullName) { EntityPlayer entityPlayer = event.getEntityPlayer(); BlockPos pos = event.getPos(); World worldObj = event.getWorld(); if (pos == null) { return;
/** * Handles the cancellation of a certain event. * * @param event the event. * @param player the player causing it. */ private static void handleEventCancellation(@NotNull final PlayerInteractEvent event, @NotNull final EntityPlayer player) { final Block heldBlock = Block.getBlockFromItem(player.getHeldItemMainhand().getItem()); if (heldBlock instanceof AbstractBlockHut || heldBlock instanceof BlockHutField) { event.setCanceled(!onBlockHutPlaced(event.getWorld(), player, heldBlock, event.getPos().offset(event.getFace()))); } }
private void testInteractionSupression( final PlayerInteractEvent event, final Result useItem ) { // client is dragging... if ( event.getWorld().isRemote ) { if ( ClientSide.instance.getStartPos() != null ) { event.setCanceled( true ); } } // server is supressed. if ( !event.getWorld().isRemote && event.getEntityPlayer() != null && useItem != Result.DENY ) { if ( serverSuppressEvent.containsKey( event.getEntityPlayer() ) ) { event.setCanceled( true ); } } } }
@SubscribeEvent(priority = EventPriority.HIGHEST) public void onPlayerInteractEvent(PlayerInteractEvent event) { BlockPos pos = event.getPos(); PhysicsWrapperEntity wrapper = ValkyrienWarfareMod.physicsManager.getObjectManagingPos(event.getWorld(), pos); if (wrapper != null) { event.setResult(Result.ALLOW); } }
@SubscribeEvent public void onPlayerBlockInteract(PlayerInteractEvent event) { if (!event.getWorld().isRemote && event.getEntityPlayer() != null) { OverdriveExtendedProperties extendedProperties = MOPlayerCapabilityProvider.GetExtendedCapability(event.getEntityPlayer()); if (extendedProperties != null) { extendedProperties.onEvent(event); } } }
private boolean canWorldDrink(final PlayerInteractEvent event) { return (SyncedConfig.getBooleanValue(GameplayOption.ENABLE_THIRST_WORLD) || SyncedConfig.getBooleanValue(GameplayOption.ENABLE_THIRST_RAIN)) && (EnumHand.MAIN_HAND == event.getHand()) && (event.getEntityPlayer().getHeldItemMainhand().isEmpty()) && (ThirstHelper.getThirstData(event.getEntityPlayer()).getThirst() < 20) && (Side.CLIENT == event.getSide()); }
@Override public QuestLogicState onEvent(QuestStack questStack, Event event, EntityPlayer entityPlayer) { if (event instanceof PlayerInteractEvent.RightClickBlock) { PlayerInteractEvent interactEvent = (PlayerInteractEvent) event; if (!hasInteracted(questStack)) { BlockPos pos = MOQuestHelper.getPosition(questStack); if (pos != null) { if (!pos.equals(((PlayerInteractEvent) event).getPos())) { return null; } } if (mustBeInteractable) { TileEntity tileEntity = interactEvent.getWorld().getTileEntity(interactEvent.getPos()); if (!(tileEntity instanceof IInteractionObject)) { return null; } if (regex != null && ((!((IInteractionObject) tileEntity).hasCustomName()) || !((IInteractionObject) tileEntity).getName().matches(regex))) { return null; } } if (destoryBlock && pos != null) { ((PlayerInteractEvent) event).getWorld().setBlockToAir(pos); } setInteracted(questStack, true); markComplete(questStack, entityPlayer); return new QuestLogicState(QuestState.Type.COMPLETE, true); } } return null; }
public static void sendOffSwingEvent(PlayerInteractEvent player){ if(!player.getEntityPlayer().isSwingInProgress) { PlayerEventChild.OffhandSwingEvent event = new PlayerEventChild.OffhandSwingEvent(copy(player)); if (!event.mainHand.isEmpty() && BattlegearUtils.usagePriorAttack(event.mainHand, event.getPlayer(), false)) { event.setCanceled(true); } if (!MinecraftForge.EVENT_BUS.post(event)) { event.getEntityPlayer().swingArm(EnumHand.OFF_HAND); } } }
ItemStack offhandItem = offhandItemEvent.offhand; if(!BattlegearUtils.usagePriorAttack(offhandItem, offhandItemEvent.getPlayer(), true)){ offhandItemEvent.event.setCanceled(true); if(offhandItemEvent.onBlock()) { offhandItemEvent.setUseBlock(Event.Result.DENY);
public UseOffhandItemEvent(PlayerInteractEvent event){ super(event); this.event = event; this.offhand = event.getItemStack(); this.swingOffhand = onBlock(); }
@SubscribeEvent public static void onPlayerClick(PlayerInteractEvent event) if (event.isCancelable()) EntityPlayer player = event.getEntityPlayer(); if (armour != null) if (event.getHand() == EnumHand.OFF_HAND) event.setCanceled(true); if (event.getItemStack().getItemUseAction() == EnumAction.DRINK) ItemStack drinkStack = event.getItemStack(); if(!(drinkStack.getItem() instanceof ItemSplashPotion)) { LivingArmourUpgrade upgrade = ItemLivingArmour.getUpgrade(BloodMagic.MODID + ".upgrade.quenched", chestStack); event.setCanceled(true);
@Override public QuestLogicState onEvent(QuestStack questStack, Event event, EntityPlayer entityPlayer) { if (event instanceof PlayerInteractEvent.RightClickItem) { PlayerInteractEvent interactEvent = (PlayerInteractEvent) event; if (!interactEvent.getItemStack().isEmpty()) { } { boolean isSameItem = matches(questStack, ((PlayerInteractEvent.RightClickItem) event).getItemStack()); if (isSameItem) { setInteracted(questStack, true); if (consumeItem) { interactEvent.getItemStack().shrink(1); } markComplete(questStack, entityPlayer); return new QuestLogicState(QuestState.Type.COMPLETE, true); } } } return null; }