Software / code / verse
Comparison
plugins/presence.lua @ 476:c34b263499be
presence: Clone stanza before caching it
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Fri, 17 Mar 2023 11:18:39 +0000 |
| parent | 406:3c732f1d990c |
| child | 490:6b2f31da9610 |
comparison
equal
deleted
inserted
replaced
| 475:68a4fb45afbc | 476:c34b263499be |
|---|---|
| 1 local verse = require "verse"; | 1 local verse = require "verse"; |
| 2 local st = require "util.stanza"; | |
| 2 | 3 |
| 3 function verse.plugins.presence(stream) | 4 function verse.plugins.presence(stream) |
| 4 stream.last_presence = nil; | 5 stream.last_presence = nil; |
| 5 | 6 |
| 6 stream:hook("presence-out", function (presence) | 7 stream:hook("presence-out", function (presence) |
| 7 if not presence.attr.to then | 8 if not presence.attr.to then |
| 8 stream.last_presence = presence; -- Cache non-directed presence | 9 -- Clone so we don't add stuff over and over..? |
| 10 stream.last_presence = st.clone(presence); -- Cache non-directed presence | |
| 9 end | 11 end |
| 10 end, 1); | 12 end, 1); |
| 11 | 13 |
| 12 function stream:resend_presence() | 14 function stream:resend_presence() |
| 13 if self.last_presence then | 15 if self.last_presence then |