diff --git a/app/PresenceBuffer.php b/app/PresenceBuffer.php index 8f5ebb8d0..cac9c6667 100644 --- a/app/PresenceBuffer.php +++ b/app/PresenceBuffer.php @@ -54,7 +54,7 @@ class PresenceBuffer { // Only presences that can be inserted, not updated if ($presence->created_at == null) { - $this->_models[$presence->muc ? $presence->mucjid : $presence->jid.$presence->resource] = $presence->toArray(); + $this->_models[$presence->muc ? $presence->jid.$presence->mucjid : $presence->jid.$presence->resource] = $presence->toArray(); $this->_calls->push($call); } else { $presence->save(); diff --git a/lib/moxl/src/Moxl/Xec/Action/Presence/Muc.php b/lib/moxl/src/Moxl/Xec/Action/Presence/Muc.php index 0779dae95..3dd83ade7 100644 --- a/lib/moxl/src/Moxl/Xec/Action/Presence/Muc.php +++ b/lib/moxl/src/Moxl/Xec/Action/Presence/Muc.php @@ -59,32 +59,32 @@ class Muc extends Action $presence->mucjid = current(explode('/', (string)$stanza->attributes()->to)); } - PresenceBuffer::getInstance()->append($presence, function () use ($presence) { - if ($this->_mam) { - $message = \App\User::me()->messages() - ->where('jidfrom', $this->_to) - ->whereNull('subject') - ->orderBy('published', 'desc') - ->first(); - - $g = new \Moxl\Xec\Action\MAM\Get; - $g->setTo($this->_to) - ->setLimit(300); - - if (!empty($message) - && strtotime($message->published) > strtotime('-3 days')) { - $g->setStart(strtotime($message->published)); - } else { - $g->setStart(strtotime('-3 days')); - } - - if (!$this->_mam2) { - $g->setVersion('1'); - } - - $g->request(); + if ($this->_mam) { + $message = \App\User::me()->messages() + ->where('jidfrom', $this->_to) + ->whereNull('subject') + ->orderBy('published', 'desc') + ->first(); + + $g = new \Moxl\Xec\Action\MAM\Get; + $g->setTo($this->_to) + ->setLimit(300); + + if (!empty($message) + && strtotime($message->published) > strtotime('-3 days')) { + $g->setStart(strtotime($message->published)); + } else { + $g->setStart(strtotime('-3 days')); + } + + if (!$this->_mam2) { + $g->setVersion('1'); } + $g->request(); + } + + PresenceBuffer::getInstance()->append($presence, function () use ($presence) { $this->pack($presence); $this->deliver(); }); diff --git a/lib/moxl/src/Moxl/Xec/Payload/Presence.php b/lib/moxl/src/Moxl/Xec/Payload/Presence.php index 5cc7a6721..40ff2fe91 100644 --- a/lib/moxl/src/Moxl/Xec/Payload/Presence.php +++ b/lib/moxl/src/Moxl/Xec/Payload/Presence.php @@ -27,15 +27,15 @@ class Presence extends Payload $presence = DBPresence::findByStanza($stanza); $presence->set($stanza); - PresenceBuffer::getInstance()->append($presence, function () use ($presence, $stanza) { - $refreshable = $presence->refreshable; - if ($refreshable) { - $r = new Get; - $r->setAvatarhash($presence->avatarhash) - ->setTo((string)$refreshable) - ->request(); - } + $refreshable = $presence->refreshable; + if ($refreshable) { + $r = new Get; + $r->setAvatarhash($presence->avatarhash) + ->setTo((string)$refreshable) + ->request(); + } + PresenceBuffer::getInstance()->append($presence, function () use ($presence, $stanza) { if ($presence->muc && isset($stanza->x)) { foreach ($stanza->x as $x) {