/** * Trigger an event * * @param Kokx_Event $event * * @return void */ public function trigger(Kokx_Event $event) { if (!empty($this->_listeners[$event->getName()])) { foreach ($this->_listeners[$event->getName()] as $listener) { call_user_func($listener, $event); } } }
/** * Process an event * * @param Kokx_Event $event * * @return void */ protected function _processEvent(Kokx_Event $event) { switch ($event->getName()) { case 'ping': // send a pong back $this->sendRaw('PONG :' . $event['message']); break; case 'ctcp_version': if (isset($this->_config['version'])) { $version = $this->_config['version']; } else { $version = 'Kokx_Irc_Client'; } $this->send('VERSION ' . $version, $event['nick'], self::TYPE_CTCP_REPLY); break; default: // for all other events, we use the dispatcher $this->getDispatcher()->trigger($event); break; } }