/** * Erstellt einen Avatarmutebann für den Avatar * @param \DragonJsonServerAvatar\Entity\Avatar $avatar * @param \DateTime $end * @return \DragonJsonServerAvatarmuteban\Entity\Avatarmuteban */ public function createAvatarmuteban(\DragonJsonServerAvatar\Entity\Avatar $avatar, \DateTime $end) { $avatar_id = $avatar->getAvatarId(); $avatarmuteban = $this->getAvatarmutebanByAvatarId($avatar_id, false); if (null === $avatarmuteban) { $avatarmuteban = (new \DragonJsonServerAvatarmuteban\Entity\Avatarmuteban())->setAvatarId($avatar_id)->setEnd($end); } else { $avatarmuteban->setEnd($end); } $this->getServiceManager()->get('\\DragonJsonServerDoctrine\\Service\\Doctrine')->transactional(function ($entityManager) use($avatarmuteban) { $entityManager->persist($avatarmuteban); $entityManager->flush(); $this->getEventManager()->trigger((new \DragonJsonServerAvatarmuteban\Event\CreateAvatarmuteban())->setTarget($this)->setAvatarmuteban($avatarmuteban)); }); return $avatarmuteban; }
/** * Gibt die Avatarnachrichten für den Avatar und die Clientmessages zurück * @param \DragonJsonServerAvatar\Entity\Avatar $avatar * @param \DragonJsonServer\Event\Clientmessages $eventClientmessages * @return array */ public function getAvatarmessagesByEventClientmessages(\DragonJsonServerAvatar\Entity\Avatar $avatar, \DragonJsonServer\Event\Clientmessages $eventClientmessages) { $entityManager = $this->getEntityManager(); return $entityManager->createQuery("\n\t\t\t\tSELECT avatarmessage FROM \\DragonJsonServerAvatarmessage\\Entity\\Avatarmessage avatarmessage\n\t\t\t\tWHERE\n\t\t\t\t\tavatarmessage.to_avatar = :to_avatar_id\n\t\t\t\t\tAND\n\t\t\t\t\tavatarmessage.to_state = 'new'\n\t\t\t\t\tAND\n\t\t\t\t\tavatarmessage.created >= :from AND avatarmessage.created < :to \n\t\t\t")->execute(['to_avatar_id' => $avatar->getAvatarId(), 'from' => $eventClientmessages->getFrom(), 'to' => $eventClientmessages->getTo()]); }