diff --git a/res/modules/internal/events.lua b/res/modules/internal/events.lua index 98ff780f0..1243034c8 100644 --- a/res/modules/internal/events.lua +++ b/res/modules/internal/events.lua @@ -14,6 +14,7 @@ function events.on(event, func) events.handlers[event] = {} end table.insert(events.handlers[event], func) + return func end function events.reset(event, func) @@ -24,6 +25,14 @@ function events.reset(event, func) end end +function events.remove(event, handler) + local handlers = events.handlers[event] + if not handlers then + return + end + table.remove_value(handlers, handler) +end + function events.remove_by_prefix(prefix) for name, handlers in pairs(events.handlers) do local actualname = name