1.16.4, 20w48a, 21w16a
When activating command blocks with a button it's often desirable to immediately replace the button with an unpowered version, thus allowing repeated activations without waiting for the button to pop up. When this happens, it creates a block update issue for all blocks adjacent to the command block the button is attached to.
- Place an unconditional, impulse command block that requires redstone. Populating it with a command is not necessary.
- Place an unconditional chain command block directly next to the impulse command block so the arrow on the impulse command block points into the chain command block.
- Place a lever or button of any kind on any available side of the impulse command block.
- Populate the chain command block with a "setblock" command which replaces the lever or button with a lever or identical button, except with the "powered=false" ID argument added.
- Press the button or flick the lever.
- This issue occurs with all buttons as well as levers.
- This issue occurs when the lever or button is placed on any side of the command block.
- This issue does not occur when the lever or button is not directly placed on the command block.
- This issue does not occur when the button is replaced by one of a different kind, such as a stone button replaced by an oak button or an oak button replaced by a dark oak button. This also applies if going from a lever to a button and vise versa.
- This issue also applies to numerous other redstone-powered blocks including:
- All fence gates, facing any direction, or whether or not they attached to a fence. They also will not close if they were open before the button was pressed.
- All doors, facing any direction. They also will not close if they were open before the button was pressed.
- All trapdoors, facing any direction, whether they are on the top or bottom of a block. They also will not close if they were open before the button was pressed.
- Dispensers. They fire once, but will not fire again.
- Droppers. They fire once, but will not fire again.
- Note blocks. They play once, but will not play again.
- Redstone dust.
- This issue does not affect the following redstone components:
- Redstone torches
- Redstone repeaters
- Redstone comparators
- Sticky pistons
One implication of this bug is that when two of these setups are placed next to each other (that is, two command block chains where a button is immediately replaced after its activation), it will result in a waiting period of a button click after switching from one line to another. For example, if you click the button of one command block chain, it will activate the command block and all subsequent chain command blocks, as well as replace the button, but if you were to switch to an adjacent command block chain and attempt to click its associated button, it will depress and then pop back up after its set duration, without activating any commands. If you then click the same button again, the commands will run and the button is replaced as expected. Switching to the original command block chain will result in the same behavior, where you will have to wait for an entire button click before the second click will actually achieve the desired result.