Now you can track SYNC and ASYNC in timings properly.
For SYNC, it's divided into WAITING and RUNNING to show the difference between 'waiting for completion' and the actual execution of the SYNC block.
Global variable improvement
Access to a global variable is now up to 7 times faster compared to before the update.
You are still advised to use global variables as sparingly as possible because accessing a global variable is 'blocking.'
Global variables now save snapshots and then rename them to the actual var.json file. This way, if something goes wrong, you can still maintain a copy of the previous state of the global variables without losing them.
Rigorously tested Global Variables for data loss and fixed all the issues found.
By turning on /trg debug, you can now see all global variable delete requests to troubleshoot global variables being removed.
Enhanced support with PlaceholderAPI
Now you can use %trg_run_<expression>% to achieve even greater flexibility.
Example: %trg_run_"Player name is "+$playername%
InventoryTrigger can be configured to allow users to pick up/drop items from/into the inventory. @Cupelt
Interface casting feature
To mitigate the problem introduced by Module since Java 9 and to avoid the 'xxx is not open to xxx' issue, you must explicitly cast the value to the instance that is open for use. Check the link for more details.
Improved Exception
Customized stack information about the trigger is now added to enhance readability.
Overall Stability Enhancement and bug fixes
Complete rework of Executors/Placeholders #486@ioloolo
Fixes for Executors/Placeholder issues here and there @ioloolo
LAMBDA function can now be stored as a variable and invoked #566@Sayakie@Cupelt
RepeatingTrigger change
RepeatingTrigger always shares variable space for all triggers ("init," "repeat," "stop").
Bug fixes for stability.
Trigger loading changes
Area, Command, and Custom triggers can now load triggers in subfolders.