Pastebin launched a little side project called VERYVIRAL.com, check it out ;-) Want more features on Pastebin? Sign Up, it's FREE!
Guest

Xat bot free php

By: a guest on May 20th, 2011  |  syntax: None  |  size: 10.96 KB  |  views: 1,801  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. <?php
  2. /*My XAT BOT*/
  3. $xatuser = "Chat(bot)"; //Damnit
  4. $uid = "241861280";
  5. $picurl = "http://i185.photobucket.com/albums/x49/dotred/b.png";
  6. $homeurl = "http://www.xatstuff.com";
  7. $roomid = "17460274";
  8. $smilies = array(":)", ":D", ":P", ";)", "(d)", "(x)");
  9. $commands_enabled = true;
  10. $owners = array("177412559", "16393", "121040483", "6804916");
  11.     $port = 10025;
  12.     $addr = "174.36.242.34";
  13.     $i = 0; //DONT CHANGE PLZ
  14.     // Output basic HTML header
  15.  
  16.     // Create a socket object
  17.     $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
  18.     if ($socket < 0)
  19.     {
  20.         trace("Socket errror: " . socket_strerror($socket));
  21.         die();
  22.     }
  23.     else
  24.         trace("Socket object created");
  25.  
  26.     // Establish connection
  27.     $result = socket_connect($socket, $addr, $port);
  28.  
  29.     // Check connection
  30.     if ($result < 0)
  31.     {
  32.         trace ("Received: " . socket_strerror($result));
  33.     }
  34.     else
  35.     {
  36.         trace("Connection successfull");
  37.         $handShake = "<y m=\"1\" />" . chr(0);
  38.         //$handShake = "<y r=\"" . $roomid . "\" />" . chr(0);
  39.         //$handShake = "<policy-file-request/>" . chr(0);
  40.         trace("Sending: " . $handShake);
  41.         socket_write($socket, $handShake, strlen($handShake));
  42.  
  43.         // Wait for server response
  44.         while(true)
  45.         {
  46.             $err = false;
  47.             $out = socket_read($socket, 1024) or $err = true;
  48.             if($err == true){
  49.             trace("Socket closed");
  50.             exec("C:\\www\\xatbot.bat");
  51.             exit();
  52.             }
  53.             if($out){
  54.             trace("Received: " . $out);
  55.             if(stripos($out, "<cross-domain") > -1){
  56.                 trace("Connected to Xat. Sending chat connection");
  57.                 $send = "<y m=\"1\">" . chr(0);
  58.             } else if (stripos($out, "<y") > -1 ) {
  59.                 $yi = stribet($out, '<y i="', '" c=');
  60.                 //$yc = stribet($out, 'c="', '"');
  61.                 //$send = "<j2 l4=\"1623\" l3=\"1479\" l2=\"0\" q=\"1\" y=\"" . $yi . '" k="1743250365" k3="0" z="11" p="0" c="' . $roomid . '" f="2" u="2" d0="0" n="' . $xatuser . '" a="' . $picurl . '" h="' . $homeurl . '" v="0" />'  . chr(0);
  62.                 $send = "<j2 l4=\"1637\" l3=\"1482\" l2=\"0\" y=\"" . $yi . "\" k=\"3787785620\" k3=\"0\" z=\"11\" p=\"0\" c=\"" . $roomid . "\" f=\"0\" u=\"" . $uid . "\" d0=\"0\" n=\"" . $xatuser . "\" a=\"" . $picurl . "\" h=\"" . $homeurl . "\" v=\"1\" />" . chr(0);
  63.                 trace("Sending: " . $send);
  64.                 socket_write($socket, $send, strlen($send));
  65.             } else if(stripos($out, "<done />") > -1){
  66.                 trace("Connected to chat successfully!");
  67.                 $done = true;
  68.             } else if(stripos($out, "<u") > -1 && $done == true){
  69.                 $nB = true;
  70.                 $isBanned = 0;
  71.                 $isGagged = 0;
  72.                 $isForever = 0;
  73.                 $ui = stribet($out, "u=\"", "\"");
  74.                 $uj = strbet($out, "n=\"", "\"");
  75.                 $ur = strbet($out, "f=\"", "\"");
  76.                 $uq = strbet($out, "q=\"", "\"");
  77.                 $online = (xInt($uq) & 1) != 0;
  78.                 if($us & 1 || $ur & 8){
  79.                     $notBanned = 1;
  80.                 }
  81.                 if($ur & 16){
  82.                     $isBanned = 1;
  83.                 }
  84.                 if($ur & 256){
  85.                     $isGagged = 1;
  86.                 }
  87.                 if($ur & 64){
  88.                     $isForever = 1;
  89.                 }
  90.  
  91.                 trace("Banned: " . $isBanned . "; Gagged: " . $isGagged . "; Forever: " . $isForever . "; Not-Banned: " . $notBanned . "; Online: " . $online);
  92.                 if($isBanned || $isGagged || $isForever){
  93.                     $nB = false;
  94.                 }
  95.                 if($notBanned){
  96.                     $nB = true;
  97.                 }
  98.                 if(!$online){
  99.                     $nB = false;
  100.                 }
  101.                 trace("NB stat: " . $nB);
  102.                 if($nB){
  103.                 $send = "<p u=\"" . $ui . "\" t=\"Welcome, " . $uj . "!\" s=\"2\" u=\"" . $uid . "\" />" . chr(0);
  104.                 trace("Sending: " . $send);
  105.                 socket_write($socket, $send, strlen($send));
  106.                 }
  107.             } else if(stripos($out, "<m") > -1){
  108.                 $message = stribet($out, "t=\"", "\"");
  109.                 $uid_part = stribet($out, "u=\"", "\"");
  110.                 $senduid = explode("_", $uid_part);
  111.                 trace("User " . $senduid[0] . " said: " . $message);
  112.                 if(in_array($senduid[0], $owners)){
  113.                 if(strtolower($message) == "bot enable commands"){
  114.                     $commands_enabled = true;
  115.                 }
  116.                 if(strtolower($message) == "bot disable commands"){
  117.                     $commands_enabled = false;
  118.                 }
  119.                 }
  120.                 if(filter($message)){
  121.                 $send = "<c p=\"Autobanning user for swearing\" u=\"" . $senduid[0] . "\" t=\"/g3600\" />" . chr(0);
  122.                 trace("Auto banning user");
  123.                 socket_write($socket, $send, strlen($send));
  124.                 }
  125.                 if($commands_enabled){
  126.                 if(stristr($message, "banme")){
  127.                 $send = "<c p=\"Autobanning user for no reason\" u=\"" . $senduid[0] . "\" t=\"/g3600\" />" . chr(0);
  128.                 trace("Auto banning user");
  129.                 socket_write($socket, $send, strlen($send));
  130.                 }
  131.                 if(stristr($message, "kickme")){
  132.                 $send = "<c p=\"Automatically kicking user for no reason\" u=\"" . $senduid[0] . "\" t=\"/k\" />" . chr(0);
  133.                 trace("Kicking user");
  134.                 socket_write($socket, $send, strlen($send));
  135.                 }
  136.                 if(stristr($message, "guestme")){
  137.                 $send = "<c u=\"" . $senduid[0] . "\" t=\"/r\" />" . chr(0);
  138.                 trace("Guesting user");
  139.                 socket_write($socket, $send, strlen($send));
  140.                 }
  141.                 if(stristr($message, "memberme")){
  142.                 $send = "<c u=\"" . $senduid[0] . "\" t=\"/e\" />" . chr(0);
  143.                 trace("Membering user");
  144.                 socket_write($socket, $send, strlen($send));
  145.                 }
  146.                 }
  147.             } else if(stripos($out, "<p") > -1){
  148.             if($commands_enabled){
  149.                 $message = stribet($out, "t=\"", "\"");
  150.                 $uid_part = stribet($out, "u=\"", "\"");
  151.                 $senduid = explode("_", $uid_part);
  152.                 if(filter($message)){
  153.                 $send = "<c p=\"Autobanning user for swearing\" u=\"" . $senduid[0] . "\" t=\"/g3600\" />" . chr(0);
  154.                 trace("Auto banning user");
  155.                 socket_write($socket, $send, strlen($send));
  156.                 }
  157.                 if(stristr($message, "banme")){
  158.                 $send = "<c p=\"Autobanning user for no reason\" u=\"" . $senduid[0] . "\" t=\"/g3600\" />" . chr(0);
  159.                 trace("Auto banning user");
  160.                 socket_write($socket, $send, strlen($send));
  161.                 }
  162.                 if(stristr($message, "kickme")){
  163.                 $send = "<c p=\"Automatically kicking user for no reason\" u=\"" . $senduid[0] . "\" t=\"/k\" />" . chr(0);
  164.                 trace("Kicking user");
  165.                 socket_write($socket, $send, strlen($send));
  166.                 }
  167.                 if(stristr($message, "guestme")){
  168.                 $send = "<c u=\"" . $senduid[0] . "\" t=\"/r\" />" . chr(0);
  169.                 trace("Guesting user");
  170.                 socket_write($socket, $send, strlen($send));
  171.                 }
  172.                 if(stristr($message, "memberme")){
  173.                 $send = "<c u=\"" . $senduid[0] . "\" t=\"/e\" />" . chr(0);
  174.                 trace("Membering user");
  175.                 socket_write($socket, $send, strlen($send));
  176.                 }
  177.                 }
  178.                 trace($senduid[0]);
  179.                 if(in_array($senduid[0], $owners)){
  180.                 if(strtolower($message) == "bot enable commands"){
  181.                     $commands_enabled = true;
  182.                 }
  183.                 if(strtolower($message) == "bot disable commands"){
  184.                     $commands_enabled = false;
  185.                 }
  186.                 $spl = explode(" ", $message);
  187.                 if($spl[0] == "ban"){
  188.                 $banuid = $spl[1];
  189.                 $length = $spl[2] * 60 * 60;
  190.                 $send = "<c p=\"Banning for no reason\" u=\"" . $banuid . "\" t=\"/g" . $length . "\" />" . chr(0);
  191.                 trace("Force banning user");
  192.                 socket_write($socket, $send, strlen($send));
  193.                 }
  194.                 $spl = explode(" ", $message);
  195.                 if($spl[0] == "say"){
  196.                 trace("Forced to speak");
  197.                 $msg = str_ireplace("say ", "", $message);
  198.                 $send = "<m t=\"" . $msg . "\" u=\"" . $uid . "\"  />" . chr(0);
  199.                 socket_write($socket, $send, strlen($send));
  200.                 }
  201.                 }
  202.             } else if(stripos($out, "<idle />")){
  203.             exec("C:\\www\\xatbot.bat");
  204.             trace("Socket closed");
  205.             exit();
  206.             } else if(stripos($out, "<c")){
  207.             exec("C:\\www\\xatbot.bat");
  208.             trace("Socket closed");
  209.             exit();
  210.             }
  211.             }
  212.         if($i == 100){
  213.         $i = 0;
  214.         $send = "<m t=\"" . $smilies[array_rand($smilies)] ."\" u=\"" . $uid . "\"  />" . chr(0);
  215.         socket_write($socket, $send, strlen($send));
  216.         }
  217.         $i = $i + 1;
  218.         }
  219.  
  220.         // Close html tags
  221.         socket_close($socket);
  222.     }
  223.  
  224.     function trace($msg)
  225.     {
  226.         echo "--> " . $msg . "\n";
  227.     }
  228.     function stribet($inputstr, $delimiterLeft, $delimiterRight) {
  229.         $posLeft = stripos($inputstr, $delimiterLeft) + strlen($delimiterLeft);
  230.         $posRight = stripos($inputstr, $delimiterRight, $posLeft);
  231.         return substr($inputstr, $posLeft, $posRight - $posLeft);
  232.     }
  233.     function strbet($inputstr, $delimiterLeft, $delimiterRight) {
  234.         $posLeft = strpos($inputstr, $delimiterLeft) + strlen($delimiterLeft);
  235.         $posRight = strpos($inputstr, $delimiterRight, $posLeft);
  236.         return substr($inputstr, $posLeft, $posRight - $posLeft);
  237.     } //Does the same as stribet but case sensitive
  238.     function parseInt($string) {
  239.     //    return intval($string);
  240.         if(preg_match('/(\d+)/', $string, $array)) {
  241.             return $array[1];
  242.         } else {
  243.             return false;
  244.         }
  245.     }
  246.     function xInt($arg){
  247.         $loc1 = parseInt($arg);
  248.         if ($loc1 === false){
  249.             return(0);
  250.         } // end if
  251.         return($loc1);
  252.     } // End of the function
  253.  
  254. function filter($text){
  255.         $badWordsArray = explode("\r\n", file_get_contents("swears.txt"));
  256.         foreach($badWordsArray as $badWord) {
  257.         if(stristr($text, $badWord) !== false){
  258.         trace("BAD WORD FOUND: " . $badWord);
  259.         return true;
  260.         }
  261.         }
  262.     return false;
  263. }
  264.  
  265.  
  266. ?>