コード例 #1
0
ファイル: irc.php プロジェクト: Geolim4/Leelabot
 public function RoutineIrcMain()
 {
     $donnees = LeelaBotIrc::get();
     if ($donnees) {
         $commande = explode(' ', $donnees);
         $message = explode(':', $donnees, 3);
         $pseudo = explode('!', $message[1]);
         $pseudo = $pseudo[0];
         LeelaBotIrc::setPseudo($pseudo);
         if (isset($commande[1]) && rtrim($commande[0]) == 'PING') {
             LeelaBotIrc::send('PONG :' . $message[1]);
         }
         // For crazy IRC server
         if (isset($commande[1])) {
             if ($commande[1] == '001') {
                 if (isset($this->config['AutoPerform'])) {
                     foreach ($this->config['AutoPerform'] as $command) {
                         LeelaBotIrc::send($command);
                     }
                 }
                 LeelaBotIrc::join(implode(',', $this->config['Channels']));
                 Leelabot::message('The IRC bot has join $0', array(implode(',', $this->config['Channels'])));
             }
             if ($commande[1] == '433') {
                 $this->config['Nick'] = $this->config['Nick'] . '_';
                 LeelaBotIrc::setConfig($this->config);
                 LeelaBotIrc::send("NICK " . $this->config['Nick']);
                 Leelabot::message('The IRC nickname has changed for $0', array($this->config['Nick']));
             }
             if ($commande[1] == 'PRIVMSG') {
                 $channel = $commande[2];
                 LeelaBotIrc::setChannel($channel);
                 if ($message[2][0] == '!') {
                     $cmd = explode(' ', trim($message[2]));
                     $cmd[0] = substr($cmd[0], 1);
                     $level = LeelaBotIrc::getLevel($pseudo, $this->config['MainChannel']);
                     $return = $this->_plugins->callEvent('irc', $cmd[0], $level, NULL, $pseudo, $channel, $cmd, $message);
                     if ($return === Events::ACCESS_DENIED) {
                         LeelaBotIrc::sendMessage("You don't have enough rights.");
                     }
                 } else {
                     $irc2urt = LeelaBotIrc::standardize(rtrim($message[2]));
                     $pseudo = explode(' ', $message[1]);
                     $pseudo = explode('!', $pseudo[0]);
                     $pseudo = $pseudo[0];
                     $serverlist = ServerList::getList();
                     if (is_array($this->config['AutoSpeak'])) {
                         foreach ($serverlist as $server) {
                             if (isset($this->config['AutoSpeak'][$server][$channel]) && in_array($this->config['AutoSpeak'][$server][$channel], array(1, 3))) {
                                 $rcon = ServerList::getServerRCon($server);
                                 $rcon->say('^4IRC : <$nick> $message', array('nick' => $pseudo, 'message' => $irc2urt));
                             }
                         }
                     } elseif (is_numeric($this->config['AutoSpeak']) && in_array($this->config['AutoSpeak'], array(1, 3))) {
                         foreach ($serverlist as $server) {
                             $rcon = ServerList::getServerRCon($server);
                             $rcon->say('^4IRC : <$nick> $message', array('nick' => $pseudo, 'message' => $irc2urt));
                         }
                     }
                 }
             }
         }
     }
 }