@SubscribeEvent public void onEntityInteract(EntityInteract event) { Entity target = event.getTarget(); EntityPlayer player = event.getEntityPlayer(); target.getEntityData().setTag(TAG_BANNER, cmp); if(!event.getWorld().isRemote) { event.setCanceled(true); if(!player.capabilities.isCreativeMode) { stack.shrink(1);
@SubscribeEvent public void entityInteract(PlayerInteractEvent.EntityInteract event) { if(event.getTarget() != null) { Entity e = event.getTarget(); if(e instanceof EntityParrot && e.getEntityData().getInteger(TAG_EGG_TIMER) == 0) { EntityParrot parrot = (EntityParrot) e; return; EntityPlayer player = event.getEntityPlayer(); EnumHand hand = EnumHand.MAIN_HAND; ItemStack stack = player.getHeldItemMainhand(); event.setCanceled(true); if(e.world.isRemote || event.getHand() == EnumHand.OFF_HAND) return;
@SubscribeEvent public void onEntityInteractEvent(EntityInteract event) { if (event.getEntity() instanceof EntityPlayer == false) { return; } EntityPlayer player = (EntityPlayer) event.getEntity(); // ItemStack held = player.getHeldItemMainhand(); ItemStack itemstack = event.getItemStack(); if (itemstack != null && itemstack.getItem() instanceof ItemVillagerMagic && itemstack.getCount() > 0) { if (event.getTarget() instanceof EntityVillager) { EntityVillager villager = ((EntityVillager) event.getTarget()); int count = 0; for (MerchantRecipe merchantrecipe : villager.getRecipes(player)) { if (merchantrecipe.isRecipeDisabled()) { //vanilla code as of 1.9.4 odes this (2d6+2) merchantrecipe.increaseMaxTradeUses(villager.getEntityWorld().rand.nextInt(6) + villager.getEntityWorld().rand.nextInt(6) + 2); count++; } } if (count > 0) { UtilChat.addChatMessage(player, UtilChat.lang("item.apple_emerald.merchant") + count); consumeSelf(itemstack); } event.setCanceled(true);// stop the GUI inventory opening && horse mounting } } }
/** * 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; }
@SubscribeEvent public void onEntityInteract(PlayerInteractEvent.EntityInteract event) { EntityPlayer player = event.getEntityPlayer(); ItemStack spawnerPlacer = EntityTools.getItemFromEitherHand(player, ItemSpawnerPlacer.class); if (!spawnerPlacer.isEmpty()) { event.setCanceled(true); event.setCancellationResult(EnumActionResult.SUCCESS); Entity entity = event.getTarget(); entity.setDead(); event.getEntityPlayer().sendMessage(new TextComponentTranslation("guistrings.spawner.entity_set", entity.getName()));
@SubscribeEvent public void onEntityInteractEvent(EntityInteract event) { if (nameVillagerTag) { EntityPlayer entityPlayer = event.getEntityPlayer(); ItemStack held = entityPlayer.getHeldItem(event.getHand()); Entity target = event.getTarget(); if (held != null && held.getItem() == Items.NAME_TAG && held.hasDisplayName() && target instanceof EntityVillager) { EntityVillager v = (EntityVillager) target; entityPlayer.inventory.decrStackSize(entityPlayer.inventory.currentItem, 1); event.setCanceled(true);// stop the GUI inventory opening EntityPlayer entityPlayer = event.getEntityPlayer(); Entity target = event.getTarget(); World worldObj = event.getWorld(); IBlockState stuffBehind = worldObj.getBlockState(posBehind); if (stuffBehind != null && stuffBehind.getBlock() != null && worldObj.getTileEntity(posBehind) != null) { stuffBehind.getBlock().onBlockActivated(worldObj, posBehind, stuffBehind, entityPlayer, event.getHand(), face, 0, 0, 0); event.setCanceled(true);
@SubscribeEvent(priority = EventPriority.LOWEST) public void openMerchant(PlayerInteractEvent.EntityInteract event) { EntityPlayer player = event.getEntityPlayer(); Entity target = event.getTarget(); ItemStack held = player.getHeldItemMainhand(); if (held.getItem() instanceof ItemNameTag) {
@SubscribeEvent public void entityInteract(PlayerInteractEvent.EntityInteract event) { if(event.getTarget() != null && !event.getWorld().isRemote) { String name = EntityList.getEntityString(event.getTarget()); if(name != null && name.equals("Slime") && ((EntitySlime) event.getTarget()).getSlimeSize() == 1 && ((EntityLiving) event.getTarget()).getHealth() > 0) { EntityPlayer player = event.getEntityPlayer(); EnumHand hand = EnumHand.MAIN_HAND; ItemStack stack = player.getHeldItemMainhand(); ItemStack outStack = ProxyRegistry.newStack(slime_bucket); NBTTagCompound cmp = new NBTTagCompound(); event.getTarget().writeToNBT(cmp); ItemNBTHelper.setCompound(outStack, ItemSlimeBucket.TAG_ENTITY_DATA, cmp); event.getTarget().setDead();
@SubscribeEvent public void onEntityInteractEvent(EntityInteract event) { if (event.getEntity() instanceof EntityPlayer == false) { return; } EntityPlayer entityPlayer = (EntityPlayer) event.getEntity(); if (event.getTarget() instanceof EntityRobot) { EntityRobot bot = ((EntityRobot) event.getTarget()); ItemStack held = event.getItemStack().copy(); if (held.getItem() == this) { bot.setDead(); } else { for (EntityEquipmentSlot slot : EntityEquipmentSlot.values()) { if (slot.getSlotType() == EntityEquipmentSlot.Type.ARMOR && held.getItem().isValidArmor(held, slot, bot)) { UtilItemStack.dropItemStackInWorld(entityPlayer.world, bot.getPosition(), bot.getItemStackFromSlot(slot).copy()); bot.setItemStackToSlot(slot, held); entityPlayer.setHeldItem(event.getHand(), ItemStack.EMPTY); bot.setDropChance(slot, 100); break; } } } } } }
@SubscribeEvent public void onEntityInteraction(PlayerInteractEvent.EntityInteract event) { EntityPlayer player = event.getEntityPlayer(); ItemStack stack = event.getItemStack(); if (stack.isEmpty()) return; Item item = stack.getItem(); if (item != Item.getItemFromBlock(ComputerCraft.Blocks.commandComputer) && item != Item.getItemFromBlock(ComputerCraft.Blocks.computer)) { return; } Entity target = event.getTarget(); if (!(target instanceof EntityMinecartEmpty)) return; EntityMinecartEmpty minecart = (EntityMinecartEmpty) target; if (minecart.hasDisplayTile()) return; IComputerItem computerItem = (IComputerItem) item; int id = computerItem.getComputerID(stack); String label = computerItem.getLabel(stack); ComputerFamily family = computerItem.getFamily(stack); player.swingArm(event.getHand()); if (minecart.getEntityWorld().isRemote) return; event.setCanceled(true); minecart.setDead(); minecart.getEntityWorld().spawnEntity(new EntityMinecartComputer(minecart, id, label, family, player.getGameProfile())); if (!player.capabilities.isCreativeMode) { stack.grow(-1); if (stack.isEmpty()) player.setHeldItem(event.getHand(), ItemStack.EMPTY); } }
@SubscribeEvent public void onEntityInteract(EntityInteract event) { Entity target = event.getTarget(); if(target instanceof EntityMinecartEmpty && target.getPassengers().isEmpty()) { EntityPlayer player = event.getEntityPlayer(); EnumHand hand = EnumHand.MAIN_HAND; ItemStack stack = player.getHeldItemMainhand(); player.swingArm(hand); if(!event.getWorld().isRemote) { EntityMinecart minecart = inserters.get(stack.getItem()).apply((EntityMinecartEmpty) target); if(minecart != null) { target.setDead(); event.getWorld().spawnEntity(minecart); event.setCanceled(true); if(!player.capabilities.isCreativeMode) { stack.shrink(1);
@SubscribeEvent public void onEntityInteractEvent(EntityInteract event) { if (event.getEntity() instanceof EntityPlayer == false) { return; } EntityPlayer player = (EntityPlayer) event.getEntity(); // ItemStack held = player.getHeldItemMainhand(); ItemStack itemstack = event.getItemStack(); if (itemstack != null && itemstack.getItem() instanceof ItemHorseTame && itemstack.getCount() > 0) { if (event.getTarget() instanceof EntityZombieHorse || event.getTarget() instanceof EntitySkeletonHorse) { AbstractHorse h = (AbstractHorse) event.getTarget(); if (h.isTame() == false) { h.setTamedBy(player); h.setEatingHaystack(true); // UtilChat.addChatMessage(player, UtilChat.lang("item.apple_emerald.merchant")); itemstack.shrink(1); if (itemstack.getCount() == 0) { itemstack = ItemStack.EMPTY; } event.setCanceled(true);// stop the GUI inventory opening && horse mounting } } } } }
@SubscribeEvent public void onEntityInteract(EntityInteract event) { Entity target = event.getTarget(); EntityPlayer player = event.getEntityPlayer(); if(target instanceof EntityBoat && target.getPassengers().isEmpty()) { EnumHand hand = EnumHand.MAIN_HAND; ItemStack stack = player.getHeldItemMainhand(); if(!isChest(stack)) { stack = player.getHeldItemOffhand(); hand = EnumHand.OFF_HAND; } if(isChest(stack)) { World world = event.getWorld(); EntityChestPassenger passenger = new EntityChestPassenger(world, stack); passenger.setPosition(target.posX, target.posY, target.posZ); passenger.rotationYaw = target.rotationYaw; if(!player.isCreative()) stack.shrink(1); world.spawnEntity(passenger); passenger.startRiding(target); player.swingArm(hand); if(!event.getWorld().isRemote) event.setCanceled(true); } } }
/** * PlayerInteractEvent.EntityInteract handler. * <p> * Check, if a player right clicked an entity. * Deny if: * - If the entity is in colony * - player has not permission * * @param event PlayerInteractEvent */ @SubscribeEvent public void on(final PlayerInteractEvent.EntityInteract event) { if (isFreeToInteractWith(null, event.getPos()) && colony.getPermissions().hasPermission(event.getEntityPlayer(), Action.ACCESS_FREE_BLOCKS)) { return; } checkEventCancelation(Action.RIGHTCLICK_ENTITY, event.getEntityPlayer(), event.getWorld(), event, event.getPos()); }
@SubscribeEvent public void interactEvent(EntityInteract event) { if (event.getTarget() instanceof EntityCow || event.getTarget() instanceof EntitySheep) { ItemStack equipped = event.getEntityPlayer().getHeldItem(event.getHand()); EntityAnimal creature = (EntityAnimal) event.getTarget(); if (equipped != null && equipped == NaturaCommons.barley && creature.getGrowingAge() == 0 && !creature.isInLove()) { EntityPlayer player = event.getEntityPlayer(); if (!player.capabilities.isCreativeMode) { equipped.shrink(1); if (equipped.getCount() <= 0) { player.inventory.setInventorySlotContents(player.inventory.currentItem, ItemStack.EMPTY); } } creature.setInLove(event.getEntityPlayer()); } } }
@SubscribeEvent public void onEntityInteractEvent(EntityInteract event) { if (event.getEntity() instanceof EntityPlayer == false) { return; } EntityPlayer entityPlayer = (EntityPlayer) event.getEntity(); ItemStack held = event.getItemStack(); if (held.getItem() instanceof ItemHorseUpgrade && held.getCount() > 0 && event.getTarget() instanceof AbstractHorse) { if (ItemHorseUpgrade.onHorseInteract((AbstractHorse) event.getTarget(), entityPlayer, held, (ItemHorseUpgrade) held.getItem())) { // stop the GUI inventory opening && horse mounting event.setCancellationResult(EnumActionResult.SUCCESS); event.setCanceled(true); } } } }
@SubscribeEvent public void onEntityInteract(EntityInteract event) { Entity target = event.getTarget(); if(target instanceof EntityChicken && !target.isDead && ((EntityChicken) target).hurtTime == 0) { ItemStack stack = event.getEntityPlayer().getHeldItemMainhand(); if(stack.isEmpty() || !(stack.getItem() instanceof ItemShears)) stack = event.getEntityPlayer().getHeldItemOffhand(); if(!stack.isEmpty() && stack.getItem() instanceof ItemShears) { if(!event.getWorld().isRemote) { EntityItem item = new EntityItem(event.getEntity().getEntityWorld(), target.posX, target.posY, target.posZ, new ItemStack(Items.FEATHER, 1)); event.getWorld().spawnEntity(item); } target.attackEntityFrom(DamageSource.GENERIC, 1); target.getEntityData().setBoolean(TAG_SHEARED, true); stack.damageItem(1, event.getEntityPlayer()); event.getEntityPlayer().swingArm(event.getHand()); } } }
@SubscribeEvent public void onInteract(EntityInteract event) { if(event.getTarget() instanceof EntityAnimal && event.getItemStack().getItem() == Items.POISONOUS_POTATO) { EntityAnimal animal = (EntityAnimal) event.getTarget(); if(animal.isChild() && !isEntityPoisoned(animal)) { if(!event.getWorld().isRemote) { if(animal.world.rand.nextDouble() < chance) { poisonEntity(animal); animal.addPotionEffect(new PotionEffect(MobEffects.POISON, 60, 0)); } } else event.getEntityPlayer().swingArm(event.getHand()); event.getItemStack().shrink(1); } } }
public Entity getTarget() { return ((PlayerInteractEvent.EntityInteract)parent).getTarget(); } }
@SubscribeEvent public void onEntityInteract(PlayerInteractEvent.EntityInteract event) { EntityPlayer player = event.getEntityPlayer(); if (!player.isBeingRidden() && !blocksPickup(player)) { Entity entity = event.getTarget(); AnimalStats stats = EntityHelper.getStats(entity); if (stats != null && stats.performTest(AnimalTest.CAN_CARRY)) { entity.setEntityInvulnerable(true); entity.startRiding(player, true); } } }