32 lines
755 B
Lua
32 lines
755 B
Lua
hook = {}
|
|
hook.Hooks = {}
|
|
|
|
function hook.Add(event_name, hook_name, callback)
|
|
if hook.Hooks[event_name] == nil then
|
|
hook.Hooks[event_name] = {}
|
|
end
|
|
hook.Hooks[event_name][hook_name] = callback
|
|
end
|
|
|
|
function hook.Call(event_name, ...)
|
|
local Args = {...}
|
|
if hook.Hooks[event_name] == nil then
|
|
return
|
|
end
|
|
for K, Function in pairs(hook.Hooks[event_name]) do
|
|
if type(Function) == 'function' then
|
|
local Return = Function(unpack(Args))
|
|
if Return ~= nil then
|
|
return Return
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function hook.Remove(event_name, hook_name)
|
|
if hook.Hooks[event_name] == nil then
|
|
return
|
|
end
|
|
hook.Hooks[event_name][hook_name] = nil
|
|
end
|