Guest User

Untitled

a guest
Nov 21st, 2012
10
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2.  
  3. /*
  4.  * IRC bot php impl
  5.  * By: bada
  6.  */
  7.  
  8. define("DEV", true);
  9.  
  10. /* config */
  11. $HOST="irc.quakenet.org";
  12. $PORT=6667;
  13. $NICK="chivbot".getmypid();
  14. $CHAN="#chivalrygame";
  15.  
  16. /* stuff */
  17. set_time_limit(0);
  18. if(DEV)
  19. {
  20.     ini_set('display_errors', 1);
  21.     error_reporting(E_ALL);
  22. }
  23. else
  24. {
  25.     ini_set('display_errors', 0);
  26.     error_reporting(E_ERROR);
  27. }
  28.  
  29. $socket = fsockopen($HOST, $PORT);
  30.  
  31. fputs($socket, "USER $NICK 8 * : $NICK\n");
  32. fputs($socket, "NICK $NICK\n");
  33.  
  34. $time = time();
  35. while(true)
  36. {
  37.  
  38.     while($data = fgets($socket, 128))
  39.     {
  40.  
  41.         echo $data;
  42.         flush();
  43.  
  44.         $dataArr = explode(' ', $data);
  45.  
  46.         // ping pong
  47.         if($dataArr[0] == "PING")
  48.             fputs($socket, "PONG ${dataArr[1]}\n");
  49.  
  50.         if(count($dataArr) >= 4)
  51.         {
  52.             // join channel
  53.             if($dataArr[1] != "PRIVMSG" && $dataArr[3] == ":End")
  54.                 fputs($socket, "JOIN $CHAN\n");
  55.    
  56.             // received action
  57.             if($dataArr[1] == "PRIVMSG" && $dataArr[2] == $NICK)
  58.             {
  59.                 $action = str_replace(array(chr(10), chr(13)), '', substr($dataArr[3], 1, strlen($dataArr[3])-1));;
  60.                 preg_match('/:(.*)[!]/', $dataArr[0], $matches);
  61.                 $user = (count($matches) == 2) ? $matches[1] : "";
  62.                 switch($action)
  63.                 {
  64.                     case "hello":
  65.                         fputs($socket, "PRIVMSG $user :hello there!!!\n");
  66.                         break;
  67.                     case "kill":
  68.                         killbot($socket);
  69.                         break;
  70.                 }
  71.             }
  72.         }
  73.     }
  74. }
  75.  
  76. function killbot(&$socket)
  77. {
  78.     fclose($socket);
  79.     exit(0);
  80. }
  81. ?>
RAW Paste Data