Update function compiler to have multiple compilation stages, for better code generation
Adds support for macros in [tag]
selector
Fixes bugs:
- Function runs with wrong ordering when calling a vanilla function from compiled function (affects 1.20.3+)
- Translatable text arguments with custom style don't generate style data
execute if|unless function
inside vanilla functions while calling compiled function runs too many times (affects 1.20.3+)- Forking behaves as on bedrock instead of java
- Not all functions are found, some of the time
Adds commands:
scoreboard players enable
title
tellraw
Adds base for macro support, macros are only supported for score holder names, for example $scoreboard players set macro_$(test) objective 1
Adds basic text support (only text
, keybind
, and translate
component types, hoverEvent
and clickEvent
formatting options are also not supported)
Fixes bugs:
execute unless score
runs on the wrong conditionsscoreboard players operation
does not try creating the score if it doesn't exist
Adds commands:
data modify storage <storage> <path> set value <value>
execute store result storage <storage> <path> int 1
function
(with argument support)
Adds selectors: @p
, @r
Adds selector argument: sort
Adds nbt support internally
Adds nbt paths: foo.bar
, foo[0]
Adds a better instruction optimizer
Functions compile in the background now
Fixes bugs:
@e
returned dead players- Commands which remove entities from the world broke selectors
execute align
does not work- Using
/function
in non-compiled functions does not run the compiled variant (affects 1.20.4+)