置顶公告:【置顶】关于临时开启评论区所有功能的公告(2022.10.22) | 【置顶】关于本站Widget恢复使用的公告
  • 你好~!欢迎来到萌娘百科镜像站!如需查看或编辑,请联系本站管理员注册账号。
  • 本镜像站和其他萌娘百科的镜像站无关,请注意分别。

Module:HooksHandler

贴贴♀百科,万娘皆可贴的百科全书!转载请标注来源页面的网页链接,并声明引自贴贴百科。内容不可商用。
跳到导航 跳到搜索
Template-info.svg 模块文档  [创建] [刷新]
  1. local module = {}
  2. function module.init()
  3. local hooks = {}
  4. local hookTrigger = function (name, ...)
  5. if not hooks[name] then return ... end
  6. local args = {...}
  7. for _, func in ipairs(hooks[name]) do
  8. if type(func) == 'function' then
  9. local retn = {func(unpack(args))}
  10. if #retn > 0 then
  11. for idx, val in ipairs(retn) do
  12. args[idx] = val
  13. end
  14. end
  15. end
  16. end
  17. return unpack(args)
  18. end
  19. return function (list)
  20. for name, func in pairs(list) do
  21. if type(func) == 'function' then
  22. hooks[name] = hooks[name] or {}
  23. table.insert(hooks[name], func)
  24. end
  25. end
  26. return hookTrigger
  27. end
  28. end
  29. return module