Jump to content

[1.14.4] onBlockActivated gets called 2 times


Tieso2001

Recommended Posts

I have a tileEntity with 1 inventory slot with a max stacksize of 1. I'm trying to make it so that, when rightclicked, the item in your hand will be inserted into the slot or when already full, the item in the slot will be extracted into your inventory. I've got it working for the most part, but when I test it sometimes it works and sometimes not. I tried debugging it and it turns out that onBlockActivated sometimes fires 2 times, so it inserts and then extracts immediately. How do I fix this / stop this from happening?

 

Spoiler

@Override
    public boolean onBlockActivated(BlockState state, World worldIn, BlockPos pos, PlayerEntity player, Hand handIn, BlockRayTraceResult hit) {

        if (worldIn.isRemote) return true;
        if (!(worldIn.getTileEntity(pos) instanceof QuernTileEntity)) return false;

        LazyOptional<IItemHandler> handler = worldIn.getTileEntity(pos).getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, hit.getFace());
        handler.ifPresent(inv -> {

            ItemStack heldItem = player.getHeldItem(handIn).copy();
            heldItem.setCount(1);

            if (inv.insertItem(0, heldItem, true).isEmpty() && !heldItem.isEmpty()) {
                player.getHeldItem(handIn).shrink(1);
                inv.insertItem(0, heldItem, false);
            }
            else if (!inv.extractItem(0, 1, true).isEmpty()) {
                ItemStack extractedItem = inv.extractItem(0, 1, true);
                ItemHandlerHelper.giveItemToPlayer(player, extractedItem);
                inv.extractItem(0, 1, false);
            }
        });

        return true;
    }

 

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.