diff options
author | Waqas Hussain <waqas20@gmail.com> | 2009-12-10 03:02:04 +0500 |
---|---|---|
committer | Waqas Hussain <waqas20@gmail.com> | 2009-12-10 03:02:04 +0500 |
commit | f742f936091ba45358a3a73d73b24d911f1d2987 (patch) | |
tree | 1a735f459c11a9679e2236a4d38bdea4dc283c43 /core/modulemanager.lua | |
parent | 8495a4cfffc975d8369e2f18b08b80e5f23bc21d (diff) | |
download | prosody-f742f936091ba45358a3a73d73b24d911f1d2987.tar.gz prosody-f742f936091ba45358a3a73d73b24d911f1d2987.zip |
modulemanager: Fire item-removed events on module unload.
Diffstat (limited to 'core/modulemanager.lua')
-rw-r--r-- | core/modulemanager.lua | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/core/modulemanager.lua b/core/modulemanager.lua index 7ee262c4..032cab84 100644 --- a/core/modulemanager.lua +++ b/core/modulemanager.lua @@ -200,6 +200,15 @@ function unload(host, name, ...) end end hooks:remove(host, name); + if mod.module.items then -- remove items + for key,t in pairs(mod.module.items) do + for i = #t,1,-1 do + local value = t[i]; + t[i] = nil; + hosts[host].events.fire_event("item-removed/"..key, {source = self, item = value}); + end + end + end modulemap[host][name] = nil; hosts[host].events.fire_event("module-unloaded", { module = name, host = host }); return true; |