Cannot correctly handle undo of specified operations with specified blocks
Windmill1055 opened this issue ยท 1 comments
WorldEdit Version
7.3.5
Platform Version
Fabric 0.15.11
Confirmations
- I am using the most recent Minecraft release.
- I am using a version of WorldEdit compatible with my Minecraft version.
- I am using the latest or recommended version of my platform software.
- I am NOT using a hybrid server, e.g. a server that combines Bukkit and Forge. Examples include Arclight, Mohist, and Cardboard.
- I am NOT using a fork of WorldEdit, such as FastAsyncWorldEdit (FAWE) or AsyncWorldEdit (AWE)
Bug Description
Operations that involving some specfied blocks can bot be undone correctly. When trying to set an extent to air or cut it to clipboard and undo it, these blocks can not be restored and just disappear in some cases.
Currently the blocks broken I have tested include redstone wire, redstone block, any carpet, extended piston. I have not tested every block yet, but it seems to be that attachable blocks are mostly likely to fail.
Expected Behavior
When undo a operation, the extent should be restored to its previous state.
Reproduction Steps
For the simplest case:
- Setup a line of blocks horizontally
- Put redstone wires on top of them
- Select this two-height structure
- Cut it or set it to air
- Undo this operation
- Some redstone wires can not be restored
For a complex case:
Just put a bunch of blocks with redstone wires randomly, cut or set-with-air, then undo it. The other blocks have chance to fail.
Anything Else?
This seems to be caused by the removal of reorderExtent which i think is used to schedule the attachable blocks to be handled later than the blocks they attached to, and the current implementation of set-block-without-update failed to handle redstone wires or other blocks.
duplicates #2516