mojira.dev
MCPE-133360

/fill replace doesn't differentiate blockstates

Steps to Reproduce:

1. Find or make an area with a specific version of a block you'd like to replace and another version of the same block that you don't want to be replaced. ex) upside-down cobblestone stair and upright cobblestone stair
2. Execute a fill command with the coordinates of the location you had made/found and use a block state tag to select the one version of the block you would like to be replaced with another block of your choice. ex) /fill <from: x y z> <to: x y z> obsidian [] replace stone_stair ["upside_down_bit": true]

Observed Results:

What I found to happen was that both of the blocks got turned to obsidian even though it was only supposed to replace the upside-down one. The message that was shown after the execution of the command was "2 blocks filled".

Expected Results:

What I was expecting to happen was for it to only replace the block with the same block state value as input, leaving the other untouched.

Linked issues

Attachments

Comments 7

Please clarify the Description section above, using this format:
Steps to Reproduce:
1. (be complete and exact so someone else can repeat your steps)
2.
3.
Observed Results:
(briefly describe what actually happens, including exact message(s) shown)
Expected Results:
(briefly describe what should happen)

This ticket has been temporarily closed as Awaiting Response. It will automatically reopen when you add information. Please follow the format shown and include all sections (steps, observed, expected). Tickets that do not contain all of the requested information and complete steps to reproduce the issue may be closed as Incomplete. For more information please read the Bug Tracker Guidelines.

You can for older blocks but it doesn't work with newer blocks like the Deepslate stuff or Cut Copper stairs and slabs.

There are a few different permutations that give different errors, depending on whether you use blockstates, data values or a mix:

Stairs

For all of these examples I have rows of polished andesite stairs in the area being filled of all eight different orientations

All commands should be trying the same thing, the expected result: south facing normal stairs only are replaced

Test 1: fill blockstate replace blockstate

fill ~~~ ~10 ~-5 ~10 polished_deepslate_stairs["upside_down_bit":false,"weirdo_direction":3] replace polished_andesite_stairs["upside_down_bit":false,"weirdo_direction":3]

Actual result: all stairs are replaced by default stair facing East

Test 2: fill data value replace data value (using diorite as deepslate does not support data values)

fill ~~~ ~10 ~ ~10 diorite_stairs 3 replace polished_andesite_stairs 3

Actual result: As expected

Test 3: fill blockstate replace data value

fill ~~~ ~10 ~ ~10 polished_deepslate_stairs["upside_down_bit":false,"weirdo_direction":0] replace polished_andesite_stairs 3

Actual result: Syntax error: Unexpected "3": at "te_stairs >>3<<"

Test 4: fill data value replace blockstate

fill ~~~ ~10 ~ ~10 polished_diorite_stairs 3 replace polished_andesite_stairs["upside_down_bit":false,"weirdo_direction":3]

Actual result: Syntax error: Unexpected "[" at "ite_stairs >>"upside_do"

 

For slabs 

Expected result only polished Andesite top slabs are replaced with top slabs

Test 1: fill blockstate replace blockstate

fill ~~~ ~10 ~ ~10 polished_deepslate_slab[“top_slot_bit”:true] replace stone_block_slab3[“top_slot_bit”:true]

Actual result: All slabs are replaced with top slabs

Test 2: fill data value replace data value (using polished diorite as deepslate does not support data values)

fill ~~~ ~10 ~ ~10 stone_block_slab3 13 replace stone_block_slab3 10

Actual result: As expected

Test 3: fill blockstate replace data value

fill ~~~ ~10 ~ ~10 polished_deepslate_slab[“top_slot_bit”:true] replace stone_block_slab3 10

Actual result:  Syntax error: Unexpected "10": at "ock_slab3 >>10<<"

Test 4: fill data value replace blockstate

fill ~~~ ~10 ~ ~10 stone_block_slab3 8 replace stone_block_slab3[“top_slot_bit”:true]

Actual result:  Syntax error: Unexpected "[": at "ock_slab3>>[<<top_slot_"

 

 

 

 

 

 

I can confirm that this is still a major issue in 1.19.73. It seriously affects development time of some maps - hopefully the team can fix it soon. 🙂

This has been fixed

RSNightKing

(Unassigned)

605958

Confirmed

Windows

1.19.0.27 Preview, 1.19.0.26 Beta, 1.18.0.24 Beta, 1.17.11 Hotfix, 1.17.10, 1.17.2 Hotfix, 1.17.41 Hotfix, 1.18.30, 1.18.31, 1.19.11 Hotfix

Retrieved