Can a minecart junction automatically configure based on something chosen in the originating station without command blocks?

I've been building a somewhat large rail system and have started adding 3-way and 4-way junctions with redstone buttons to select the next direction and propel the minecart along. But that requires stopping and clicking on a button at each junction.

I began to wonder if there was a way to detect if the player had a specific item in their inventory which would automatically choose the right rail configuration to get them to a destination corresponding to that item. I have a feeling the answer is no but I'd be curious whether this has been tried and if it can be made to work using some other creative solution?

I understand that this can potentially be accomplished using command blocks, however we are not looking to start adding them (yet). So I'm looking for a creative vanilla Java (currently 1.14.4) solution which allows making a choice somehow at the hub rail station based on what the ultimate destination will be, and having the junctions be able to configure correctly (left/right) to get the player there. This will obviously tend to make the redstone complex and may not scale well so I'm thinking probably not more than a 5-10 destinations initially. I could make some of those hub stations where the player could manually move to another hub, make another choice, and continue on if needed.

I'm mainly looking for the validation of a concept that might work, not the actual build steps.


Solution 1:

You cannot test for an item in a players inventory by using only redstone (without killing the player).

However, you can have a chest minecart that moves in front of the player and check the contents of the chest.

This is what my test track looks like:

Test track

The minecart will follow the chest minecart in a circle indefinitely unless you put a paper into the chest minecart.

Here is a better view of the starting area and where the minecarts stop:

start and stop of the track

Minecarts appear to be a bit buggy when they are close to each other, this setup for starting seems to put the minecart a good distance behind the chest minecart.

Here is the junction itself:

image of the junction

When the chest minecart goes over the hopper, then the hopper will try to pull a piece of paper from the chest minecart. If it succeeds, then the chest minecart and the regular minecart with the player inside will both leave the ring track, the chest minecart will go past the hopper again and get the item back, which resets this junction.

For this to work you need to set the hopper up like this:

Part of the GUI of a hopper with 41 paper items in the first slot and 1 paper item in every other slot

You can use renamed items for this, so it would be possible to use papers named after the destination of where you want to go.

Note: this setup may vary a bit depending on what direction you are going. In this case the junction leads to the west.

Note 2: I don't work much with minecarts and rail systems, there may be mechanics in place that I didn't account for that would make this fail in some situations.