diff --git a/minetest.lua b/minetest.lua index 1abf34f..4d27b0d 100644 --- a/minetest.lua +++ b/minetest.lua @@ -72,4 +72,20 @@ minetest.register_globalstep(function(dtime) end delta_times[k]=v end +end) + +form_listeners = {} +function register_form_listener(formname, func) + local current_listeners = form_listeners[formname] or {} + table.insert(current_listeners, func) + form_listeners[formname] = current_listeners +end + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local handlers = form_listeners[formname] + if handlers then + for _, handler in pairs(handlers) do + handler(player, fields) + end + end end) \ No newline at end of file