X

NOTICE

Are you sure you want to report this?

What is parity? This category is designed just for features that exist but work one way on one platform, and another way on a different platform. Bugs are not parity! Please read the intro post before you post!

194

Hoppers should transfer items in the correct order

7 Comments

Post a new comment:

Please sign in to leave a comment.

  • Official comment
    Avatar
    Comment actions Permalink

    Moved to parity category - love that the bug number is included here! THANK you!

  • 2
    Comment actions Permalink

    In Bedrock Edition redstone is more logic than the Java Edition. But I have the same issue. This issue is not logic at all.

  • 0
    Comment actions Permalink

    This has been talked about in the bug tracker. The order gets messed up because of hoppers earlier in a hopper chain pushing items before hoppers later in the chain, leaving earlier items in later slots, effectively lowering their priority.

    https://bugs.mojang.com/browse/MCPE-28890?focusedCommentId=449680&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-449680

    Idk how the JE does it (maybe ask that team how they did it?), but I'm thinking maybe a buffer could work? Hoppers should remember for a tick if they've sent something, so a newly received item can be put into the previous item's slot. Alternatively, incoming item(s) could be held in a buffer until the hopper sends out item(s), to ensure proper slot placement.

    Edit: Thinking a bit more about it, the buffer would also need to be implemented for all types of storage containers (chests, barrels, etc). Don't want a chest between 2 hoppers getting the order messed up.

  • 0
    Danzilla928 commented
    Comment actions Permalink

    Silent please take it back, I have made 3 different board games in survival and 2 of them utilize this bug. 

  • 0
    Static C commented
    Comment actions Permalink

    I was about to post and say "This is a known bug, my friend!", and then link Silentwisperers bug report. lol Funny coincidence. Seriously tho, how is this working as intended? Maybe Mojang INTENDED to be lazy when they coded bedrock hoppers?

  • 1
    KevCore commented
    Comment actions Permalink

    Bedrock need this.

    Regarding the comment by TakingItCasual - one way to fix this could be;

    When an item enters a hopper, it enters an 'array' in C++. That array is built using 0-indexed keys and when the hopper wants to push an item, it systematically works its way down the array, remembering the last key it pushed, and then pushes the next highest key number, returning back to key 0 when there are no keys higher than the current one.

    For example:
    Hopper #1 - pushes key 0, then on the next push, key 1, then key 2.

    As each hopper receives an item (Hopper #2), it is entered in to an 'array' for that hopper (#2), using the next available key. If hopper #2 already has an item in slot 5, then the item from Hopper #1, enters the Hopper #2 array as key 0. When hopper #2 pushes its item, it will push key 4 (slot 5) first, then key 0 (slot 1), because hopper #2 recorded that it last pushed an item from key 3 (slot 4). This way of using arrays within C++, tied to each hopper, ensures all hoppers within a chain move items in the same order they receive an item. This ensures items do not flow out of sequence when moving through hopper chains and will enable parity between the Java version and Bedrock version. If each hopper in a chain, is also triggered beginning with the last hopper, working backwards to the very first hopper, this will also ensure that several items moving through a hopper chain, continue to run in the order than they were first pushed from Hopper #1 to Hopper #2.

  • 0
    NukeNinJared commented
    Comment actions Permalink

    They do transfer things in order don’t they? Or item sorters wouldn’t work