Mojira Archive
MC-268160

The success of "/function #tag" is inconsistent when the number of functions in the tag changes

If there's only one function in the tag:

  • If there's no /return command: The "/function #tag" is void, having no success value.
  • Otherwise: The success of "/function #tag" is whether the /return command in the function returns a failure or success.

If there're multiple functions in the tag:

  • If there's no /return command in any function: The "/function #tag" is void, having no success value.
  • Otherwise: The success of "/function #tag" is always true.

How to reproduce:

  1. Download and enable the attached data pack. In which, there're two functions and three tags. The two functions (a, b) are exactly the same, and both return a failure with a /return command. The three tags include function a, b, a&b, respectively.
  2. Run /execute store success storage name path int 1 run function #a
  3. Run /data get storage name path
  4. Found that it's 0. Because the /return returns a failure.
  5. Run /execute store success storage name path int 1 run function #b
  6. Run /data get storage name path
  7. Found that it's 0. Because the /return returns a failure.
  8. Run /execute store success storage name path int 1 run function #anb
  9. Run /data get storage name path
  10. Found that it's 1. Though both /return commands return a failure.

Expected behaviors:

Since both three commands above invoke a function tag, they should have consistent success value. Always true makes the success value (of tags that have more than one functions) useless.

Unresolved

Dl

2024-01-31, 07:47 AM

2024-08-05, 10:35 PM

2

2

Confirmed

Commands, Data Packs

1.20.4, 24w04a, 24w05b, 1.21

-