- if jid and jid ~= "pending" then
- if item.subscription == "both" or item.subscription == "from" or (roster.pending and roster.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}));
+ if jid then
+ 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,
+ });