mojira.dev
MC-135636

execute store result ... run function inside of a function doesn't output correct result

The bug

Using execute store result to get the number of commands ran in a function always outputs 1 if ran inside of another function.

Setup

scoreboard objectives add my_objective dummy

scoreboard objectives setdisplay sidebar my_objective

Use attached datapack containing two functions:

my_function.mcfunction

say 1
say 2
say 3
say 4
say 5

test.mcfunction

execute store result score player my_objective run function store:my_function

How to reproduce

1. Run the following command in chat, notice score gets set to 1

/function store:test

2. Run this command in chat or in a command block, notice score gets set to the amount of commands ran

/execute store result score player my_objective run function store:my_function

Expected output

I expected the execute store result to behave the same way inside of a function as it does in chat or in a command block.

Actual output

The store gets set to 1 if the execute store command is inside of a function regardless of the amount of commands ran.

Linked issues

Attachments

Comments 13

This needs some tricky fix... the execution of function would need to return some sort of lazy integer (atomic integer? completable future with integer?) and populate the value in the main dfs code body.

In fact, this is a duplicate of MC-130375

confirmed for 1.14.1 pre1

Confirmed for 1.16.3.

3 more comments

can confirm for 1.19.3

It actually seems to go beyond return and also affects success, where success would store the success value of the last command run in the function instead of whether the function was run or not.

This is different from the behavior in chat and commandblocks, where it seems to return 1 for success if the function is run successfully, independent of the final commands success.

The bug is still in 1.19.4 and 1.20-pre2

Fixed in 23w41a (by removing the command-counting feature completely).

Maxaxik

(Unassigned)

Community Consensus

Platform

Low

Commands, Data Packs

Minecraft 1.13, Minecraft 18w31a, Minecraft 1.13.1-pre2, Minecraft 1.14.1 Pre-Release 1, 1.15.2, ..., 1.18 Pre-release 1, 1.18.2, 1.19, 1.19.3, 1.19.4

Retrieved