- if item.subscription == "both" or item.subscription == "from" or roster[false].pending[jid] then
- module:send(st.presence({type="unsubscribed", from=bare, to=jid}));
- end
- if item.subscription == "both" or item.subscription == "to" or item.ask then
- module:send(st.presence({type="unsubscribe", from=bare, to=jid}));
+ module:fire_event("roster-item-removed", {
+ username = username, jid = jid, item = item, roster = roster, origin = origin,
+ });
+ else
+ for jid in pairs(item.pending) do
+ module:fire_event("roster-item-removed", {
+ username = username, jid = jid, roster = roster, origin = origin,
+ });