@Nonnull @Override public EnumActionResult onItemUse(EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing side, float sx, float sy, float sz) { for(int i = 0; i < player.inventory.getSizeInventory(); i++) { ItemStack stackAt = player.inventory.getStackInSlot(i); if(!stackAt.isEmpty() && TORCH_PATTERN.matcher(stackAt.getItem().getTranslationKey()).find()) { ItemStack saveHeldStack = player.getHeldItem(hand); player.setHeldItem(hand, stackAt); EnumActionResult did = stackAt.getItem().onItemUse(player, world, pos, hand, side, sx, sy, sz); player.setHeldItem(hand, saveHeldStack); ItemsRemainingRenderHandler.set(player, new ItemStack(Blocks.TORCH), TORCH_PATTERN); return did; } } return EnumActionResult.PASS; }
@Nonnull @Override public EnumActionResult onItemUse(EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing side, float sx, float sy, float sz) { for(int i = 0; i < player.inventory.getSizeInventory(); i++) { ItemStack stackAt = player.inventory.getStackInSlot(i); if(!stackAt.isEmpty() && SAPLING_PATTERN.matcher(stackAt.getItem().getTranslationKey()).find()) { ItemStack saveHeldStack = player.getHeldItem(hand); player.setHeldItem(hand, stackAt); EnumActionResult did = stackAt.getItem().onItemUse(player, world, pos, hand, side, sx, sy, sz); player.setHeldItem(hand, saveHeldStack); ItemsRemainingRenderHandler.set(player, new ItemStack(Blocks.SAPLING), SAPLING_PATTERN); return did; } } return EnumActionResult.PASS; }
public static EnumActionResult place(EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ, Block block, int cost, float r, float g, float b) { ItemStack stack = player.getHeldItem(hand); if(ManaItemHandler.requestManaExactForTool(stack, player, cost, false)) { int entities = world.getEntitiesWithinAABB(EntityLivingBase.class, new AxisAlignedBB(pos.offset(side), pos.offset(side).add(1, 1, 1))).size(); if(entities == 0) { ItemStack stackToPlace = new ItemStack(block); player.setHeldItem(hand, stackToPlace); stackToPlace.onItemUse(player, world, pos, hand, side, hitX, hitY, hitZ); player.setHeldItem(hand, stack); if(stackToPlace.isEmpty()) { ManaItemHandler.requestManaExactForTool(stack, player, cost, true); for(int i = 0; i < 6; i++) Botania.proxy.sparkleFX(pos.getX() + side.getXOffset() + Math.random(), pos.getY() + side.getYOffset() + Math.random(), pos.getZ() + side.getZOffset() + Math.random(), r, g, b, 1F, 5); return EnumActionResult.SUCCESS; } } return EnumActionResult.FAIL; } return EnumActionResult.PASS; }
@Override public boolean itemInteractionForEntity(ItemStack stack, EntityPlayer player, EntityLivingBase entity, EnumHand hand) { if(entity instanceof EntityLiving) { EntityLiving living = (EntityLiving) entity; SoundEvent sound = null; if(living instanceof EntityCreeper) sound = SoundEvents.ENTITY_CREEPER_PRIMED; else if(living instanceof EntitySlime) sound = ((EntitySlime) living).isSmallSlime() ? SoundEvents.ENTITY_SMALL_SLIME_SQUISH : SoundEvents.ENTITY_SLIME_SQUISH; else { try { sound = (SoundEvent) ReflectionHelper.findMethod(EntityLiving.class, LibObfuscation.GET_LIVING_SOUND[0], LibObfuscation.GET_LIVING_SOUND[1]).invoke(living); } catch (InvocationTargetException | IllegalAccessException ignored) { Botania.LOGGER.debug("Couldn't get living sound"); } } if(sound != null) { String s = EntityList.getEntityString(entity); if(s == null) s = "generic"; ItemNBTHelper.setString(stack, TAG_SOUND, sound.getRegistryName().toString()); ItemNBTHelper.setString(stack, TAG_SOUND_NAME, "entity." + s + ".name"); player.setHeldItem(hand, stack); if(player.world.isRemote) player.swingArm(hand); return true; } } return false; }
@Nonnull @Override public ActionResult<ItemStack> onItemRightClick(World world, EntityPlayer player, @Nonnull EnumHand hand) { ItemStack stack = player.getHeldItem(hand); if(!world.isRemote && ManaItemHandler.requestManaExactForTool(stack, player, COST * 2, false)) { Vector3 playerVec = Vector3.fromEntityCenter(player); Vector3 lookVec = new Vector3(player.getLookVec()).multiply(3); Vector3 placeVec = playerVec.add(lookVec); int x = MathHelper.floor(placeVec.x); int y = MathHelper.floor(placeVec.y) + 1; int z = MathHelper.floor(placeVec.z); int entities = world.getEntitiesWithinAABB(EntityLivingBase.class, new AxisAlignedBB(x, y, z, x + 1, y + 1, z + 1)).size(); if(entities == 0) { ItemStack stackToPlace = new ItemStack(Blocks.DIRT); player.setHeldItem(hand, stackToPlace); stackToPlace.onItemUse(player, world, new BlockPos(x, y, z), hand, EnumFacing.DOWN, 0F, 0F, 0F); player.setHeldItem(hand, stack); if(stackToPlace.isEmpty()) { ManaItemHandler.requestManaExactForTool(stack, player, COST * 2, true); for(int i = 0; i < 6; i++) Botania.proxy.sparkleFX(x + Math.random(), y + Math.random(), z + Math.random(), 0.35F, 0.2F, 0.05F, 1F, 5); } } } if(world.isRemote) player.swingArm(hand); return ActionResult.newResult(EnumActionResult.SUCCESS, stack); }
ItemStack stackAt = getItemHandler().getStackInSlot(index); if(!stackAt.isEmpty() && stack.isEmpty()) { player.setHeldItem(hand, stackAt); getItemHandler().setStackInSlot(index, ItemStack.EMPTY); } else if(!stack.isEmpty()) { player.setHeldItem(hand, stackAt); else if(!stackAt.isEmpty()) { ItemHandlerHelper.giveItemToPlayer(player, stackAt);
player.setHeldItem(EnumHand.MAIN_HAND, bestTool); player.inventory.setInventorySlotContents(bestSlot, currentStack);
public boolean addItem(@Nullable EntityPlayer player, ItemStack stack, @Nullable EnumHand hand) { if(recipe != null || stack.isEmpty() || stack.getItem() instanceof IBrewItem && ((IBrewItem) stack.getItem()).getBrew(stack) != null && ((IBrewItem) stack.getItem()).getBrew(stack) != BotaniaAPI.fallbackBrew || itemHandler.getStackInSlot(0).isEmpty() != stack.getItem() instanceof IBrewContainer) return false; boolean did = false; for(int i = 0; i < getSizeInventory(); i++) if(itemHandler.getStackInSlot(i).isEmpty()) { did = true; ItemStack stackToAdd = stack.copy(); stackToAdd.setCount(1); itemHandler.setStackInSlot(i, stackToAdd); if(player == null || !player.capabilities.isCreativeMode) { stack.shrink(1); if(stack.isEmpty() && player != null) player.setHeldItem(hand, ItemStack.EMPTY); } break; } if(did) { VanillaPacketDispatcher.dispatchTEToNearbyPlayers(world, pos); for(RecipeBrew recipe : BotaniaAPI.brewRecipes) if(recipe.matches(itemHandler) && !recipe.getOutput(itemHandler.getStackInSlot(0)).isEmpty()) { this.recipe = recipe; world.setBlockState(pos, ModBlocks.brewery.getDefaultState().withProperty(BotaniaStateProps.POWERED, true), 1 | 2); } } return true; }
@Override public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float par7, float par8, float par9) { TileEnchanter enchanter = (TileEnchanter) world.getTileEntity(pos); ItemStack stack = player.getHeldItem(hand); if(!stack.isEmpty() && stack.getItem() == ModItems.twigWand) return false; boolean stackEnchantable = !stack.isEmpty() && stack.getItem() != Items.BOOK && stack.isItemEnchantable() && stack.getCount() == 1; if(enchanter.itemToEnchant.isEmpty()) { if(stackEnchantable) { enchanter.itemToEnchant = stack.copy(); player.setHeldItem(hand, ItemStack.EMPTY); enchanter.sync(); } else { return false; } } else if(enchanter.stage == TileEnchanter.State.IDLE) { ItemHandlerHelper.giveItemToPlayer(player, enchanter.itemToEnchant.copy()); enchanter.itemToEnchant = ItemStack.EMPTY; enchanter.sync(); } return true; }
player.setHeldItem(hand, toUse); EnumActionResult result = Item.getItemFromBlock(bBlock).onItemUse(player, world, pos, hand, side, hitX, hitY, hitZ); player.setHeldItem(hand, saveHeldItem);
ManaItemHandler.requestManaExact(stack, player, ItemWaterRod.COST, true); else if(!player.capabilities.isCreativeMode) player.setHeldItem(hand, drain(FluidRegistry.WATER, stack)); } else if(!stack.isEmpty() && stack.getItem() == Items.LAVA_BUCKET) { if(!player.capabilities.isCreativeMode) player.setHeldItem(hand, drain(FluidRegistry.LAVA, stack)); ItemStack bucket = tile.hasLava ? new ItemStack(Items.LAVA_BUCKET) : new ItemStack(Items.WATER_BUCKET); if(stack.getCount() == 1) player.setHeldItem(hand, bucket); else { ItemHandlerHelper.giveItemToPlayer(player, bucket);
player.setHeldItem(hand, ItemStack.EMPTY); heldItem.shrink(1); if(heldItem.isEmpty()) player.setHeldItem(hand, ItemStack.EMPTY); } else if(heldItem.isEmpty() && spreader.paddingColor != -1 && lens.isEmpty()) { ItemStack pad = new ItemStack(Blocks.WOOL, 1, spreader.paddingColor);
event.getEntityPlayer().setHeldItem(event.getHand(), new ItemStack(ModItems.waterBowl)); else ItemHandlerHelper.giveItemToPlayer(event.getEntityPlayer(), new ItemStack(ModItems.waterBowl));
@Override public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float par7, float par8, float par9) { TileEntity tile = world.getTileEntity(pos); if(!(tile instanceof TilePrism)) return false; TilePrism prism = (TilePrism) tile; ItemStack lens = prism.getItemHandler().getStackInSlot(0); ItemStack heldItem = player.getHeldItem(hand); boolean isHeldItemLens = !heldItem.isEmpty() && heldItem.getItem() instanceof ILens; if(lens.isEmpty() && isHeldItemLens) { if(!player.capabilities.isCreativeMode) player.setHeldItem(hand, ItemStack.EMPTY); prism.getItemHandler().setStackInSlot(0, heldItem.copy()); prism.markDirty(); world.setBlockState(pos, state.withProperty(BotaniaStateProps.HAS_LENS, true), 1 | 2); } else if(!lens.isEmpty()) { ItemHandlerHelper.giveItemToPlayer(player, lens); prism.getItemHandler().setStackInSlot(0, ItemStack.EMPTY); prism.markDirty(); world.setBlockState(pos, state.withProperty(BotaniaStateProps.HAS_LENS, false), 1 | 2); } return true; }
@Override public IFertilizerResult apply(@Nonnull ItemStack stack, @Nonnull EntityPlayer player, @Nonnull World world, @Nonnull BlockPos bc) { ItemStack before = player.getHeldItem(EnumHand.MAIN_HAND); player.setHeldItem(EnumHand.MAIN_HAND, stack); EnumActionResult res = stack.getItem().onItemUse(player, world, bc, EnumHand.MAIN_HAND, EnumFacing.UP, 0.5f, 0.5f, 0.5f); ItemStack after = player.getHeldItem(EnumHand.MAIN_HAND); player.setHeldItem(EnumHand.MAIN_HAND, before); return new FertilizerResult(after, res != EnumActionResult.PASS); }
item.onItemUse(player, player.world, pos, event.getHand(), lookPos.sideHit, (float) lookPos.hitVec.x - pos.getX(), (float) lookPos.hitVec.y - pos.getY(), (float) lookPos.hitVec.z - pos.getZ()); if (player.isCreative()) player.setHeldItem(event.getHand(), saveHeld);
player.setHeldItem( hand, ad.addItems( player.getHeldItem( hand ) ) ); return EnumActionResult.SUCCESS;
player.setHeldItem( hand, failedToInsert == null ? ItemStack.EMPTY : failedToInsert.createItemStack() );
if( held.getCount() == 0 ) player.setHeldItem( hand, ItemStack.EMPTY ); MinecraftForge.EVENT_BUS.post( new PlayerDestroyItemEvent( player, held, hand ) );
Platform.configurePlayer( player, side, this.getTile() ); EnumHand hand = player.getActiveHand(); player.setHeldItem( hand, is ); player.setHeldItem( hand, ItemStack.EMPTY );