https://youtu.be/Y1iEmcixiQk <-- Example for the bug
This bug actually affects everything from 1.12 and up, the "Affected Versions" wouldn't let me select those, but this bug has existed for a while now.
Whenever designing a command block chain with sections of conditional command blocks, the conditional command blocks will break out of the "conditional" state and start running every tick, even when the block before it isn't running.
For example, this command chain was used as a test:
1. execute as @p at @p if block ~ ~-1 ~ bedrock run particle minecraft:bubble ~ ~ ~ 0 0 0 0 1 normal
Repeating command block
2. setblock ~ ~1 ~1 redstone_block replace
Chain command block set to conditional and always active
3. tp @p ~1 ~ ~
Chain set to unconditional and needs redstone
4. say This should only display once.
Chain set to conditional and always active
5. setblock ~ ~1 ~-2 glass replace
Chain set to unconditional and always active
So the expected result of this would be the words "This should only display once" should be pasted in chat whenever the nearest person stands on bedrock, and in 1.9-1.11.2, it functions exactly that way; however, in 1.12 and up, the 2nd conditional block continues to run even after the previous command is no longer running, seemingly "breaking" the conditional state.
In the 1.12 changelog, there was this posted:
"Now executes all of the commands in a chain before scheduling them for the next tick "
However, I do not understand how that change would cause this change in behavior
To the conditional command block that runs the
/say
command, the previous command block was successful the last time it ran.The success value is not updated if the command block does not run. Makes sense, doesn't it?