mojira.dev
MC-92629

Repeating command blocks execute one more time after shut down

Usually we don't pay attension to this issue cause we aren't sensitive to that "1 game tick", while it did affect sth when we "Count" via RCB(refers to Repeating Command Block).

Steps:
1. Add an scoreboard objective, for example "count'. /scoreboard objectives add count dummy
2. Set display to sidebar./scoreboard objectives setdisplay sidebar count
3. Set an command chain with RCB and CCB(Chain Command Block).
RCB:/scoreboard players add A count 1
CCB:/say 1
CCB:/scoreboard players test A count 10
CCB, conditional:/blockdata x y z {auto:0} – "x y z" is the coordination of The RCB
4. Activate the RCB: Right click the RCB, and turn "Needs Redstone" to "Always Active", then hit "Done".
5. Wait for the result. Notice that the final count is "11"

AND.... there's another way, a bit more simple.

1. Set a command chain like this:
RCB:/say 1
CCB:/blockdata x y z {auto:0} "x y z" is the coordination of the RCB.
2. Activate the RCB by turning "Needs Redstone" into "Always Active".

Observe that "1" is printed twice.

Well, I really don't expect that . Hope you can fix it in the future ver.

Linked issues

Attachments

Comments 8

Both instructions broken. Unable to replicate, but it is breaking my map. Try to switch the repeat to impulse.

I don't think ICB(Impulse Command Block) is suitable for this case. Well u need to know it's for "Counting". If u insist on ICB, it won't really work as a "Counter". AND most of all, how could a STOPPED command block produce signal ??

Try putting the blockdata command to reset the auto flag in the RCB. The way CB's work in 1.9 is that RCB and ICB schedule execution ticks for CCB in the following tick.

Having the /blockdata command in the RCB "works" however then there is no reason for using a RCB instead on an ICB.

Based on what you said, wouldn't that mean that the game does this:

  1. Schedule command of RCB for next tick

  2. Traverse chain and schedule commands for next tick

  3. Run commands

RCB still runs even though it should have been disabled already

@Marcono1234, The queue is like so:

Tick 1, assuming first activation:

1. Execute RCB.
2. Schedule RCB for Tick 2.
3. Execute CCB, setting RCB "auto" to 0.

Tick 2:

1. Execute scheduled RCB (the CCB from in Tick 1 cannot remove RCB from this queue because it was already scheduled, even if deleting the RCB in Tick 1 (which may be a bug in itself)).
2. RCB cannot be scheduled for Tick 3 because the CCB from Tick 1 set "auto" to 0.
3. Since RCB was executed from schedule, execute CCB, setting RCB "auto" to 0 (again).

Could you call that inconsistent? Because in case the RCB was removed in "Tick 1", the command of the RCB is still run twice however it will not traverse the chain in "Tick 2". So my question would be why it does point 2 of "Tick 2".

I think this should not be "work as intended".
When I do not power a command block any longer, it feels like the most logical thing that could happen is that it stops to work.

Civi

michael

Unconfirmed

Minecraft 15w46a, Minecraft 15w47c

Retrieved