Commit graph

9 commits

Author SHA1 Message Date
1ae48f3a52
run_command: implement support for async functions.
Also update //for to make use of this new functionality.

//subdivide is still on the todo list.

The new functionality works by adding the new property `async = false` to command definition tables registered via wea_core.register_command()`. When `true`, if and only if the command's MAIN FUNC ONLY returns no values at all then it will consider an async operation to be in progress.

This delays `run_command` from emitting the `post-execute` event on `wea_core`.

Additionally, all async commands have a callback function injected as the first argument to their main `func` (ref main cmd definition table). This callback function -- if no arguments are returned by the main `func` -- must be called once the async operation is complete with same args you would normally return from `func` -- that is `success, result_message`. These will then be handled as normal and sent to the player as appropriate, as well as finally emitting the `post-execute` event.

BUG: There is a potential issue in this implementation, in that if i.e. `minetest.after()` is used to delay async execution then this will break out of the `xpcall()` protection in place to prevent crashes. To this end, if you implement an async function you need to be very careful, and do a manual `wea_core.safe_function()` call yourself!
2024-10-17 01:54:32 +01:00
1677c68a7b
update some commands to the new notification system
....there's a bug in run_command tho with respect to return value handling
2024-10-17 00:27:33 +01:00
f2214150f2
Update minetest.chatcommands → minetest.registered_chatcommands 2023-07-09 19:49:38 +01:00
VorTechnix
b88cec64d4 Fix bad logic in parts check 2023-05-24 13:03:41 -07:00
6102a1adf5
Upgrade meta commands 2022-09-18 22:37:26 +01:00
8de49ac0af
register commands with worldeditadditions, not worldedit 2022-05-19 22:10:09 +01:00
VorTechnix
0ecd6233ad Update for.lua 2021-07-28 18:06:26 -07:00
VorTechnix
43a59b68ff converted //for to step function 2021-07-28 13:35:52 -07:00
VorTechnix
1436974e9b added //for 2021-07-27 19:56:45 -07:00