예제 #1
0
 function trigger($processed_data)
 {
     if ($processed_data['IRC_TYPE'] == 'none') {
         return false;
     }
     $trigger = explode(' ', trim($processed_data['message']));
     if (($k = $this->find_trigger($trigger[0], $processed_data['type'])) !== false) {
         // throttle spam and such.
         if ($this->throttle($processed_data)) {
             return;
         }
         if ($processed_data['type'] == 'msg') {
             $this->main->log(Bashful::bold() . $trigger[0] . Bashful::unbold() . ' on ' . $processed_data['type'] . ' triggered by ' . Bashful::blue() . $processed_data['nick'] . Bashful::unblue(), __CLASS__);
         }
         $k = $this->registered_triggers[$k];
         $k['module'] = strtolower($k['module']);
         if ($k['exec'] !== false && method_exists($this->modules[$k['module']], $k['exec'])) {
             $this->modules[$k['module']]->{$k['exec']}($processed_data);
             return true;
         } elseif (method_exists($this->modules[$k['module']], 'call')) {
             $this->modules[$k['module']]->call($processed_data);
             return true;
         }
         $this->main->log('Error: Trigger specified, but no route found for \'' . $k['module'] . '->' . $trigger . '\'', __CLASS__);
     }
     return false;
 }