/** * Creates a new TeamSpeak3_Adapter_ServerQuery_Event object. * * @param TeamSpeak3_Helper_String $evt * @param TeamSpeak3_Node_Host $con * @throws TeamSpeak3_Adapter_Exception * @return TeamSpeak3_Adapter_ServerQuery_Event */ public function __construct(\TeamSpeak3\Helper\String $evt, \TeamSpeak3\Node\Host $con = null) { if (!$evt->startsWith(TeamSpeak3::EVENT)) { throw new \TeamSpeak3\Adapter\Exception("invalid notification event format"); } list($type, $data) = $evt->split(TeamSpeak3::SEPARATOR_CELL, 2); if (empty($data)) { throw new \TeamSpeak3\Adapter\Exception("invalid notification event data"); } $fake = new \TeamSpeak3\Helper\String(TeamSpeak3::ERROR . TeamSpeak3::SEPARATOR_CELL . "id" . TeamSpeak3::SEPARATOR_PAIR . 0 . TeamSpeak3::SEPARATOR_CELL . "msg" . TeamSpeak3::SEPARATOR_PAIR . "ok"); $repl = new \TeamSpeak3\Adapter\ServerQuery\Reply(array($data, $fake), $type); $this->type = $type->substr(strlen(TeamSpeak3::EVENT)); $this->data = $repl->toList(); $this->mesg = $data; \TeamSpeak3\Helper\Signal::getInstance()->emit("notifyEvent", $this, $con); \TeamSpeak3\Helper\Signal::getInstance()->emit("notify" . ucfirst($this->type), $this, $con); }