Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /*
- * IRC bot php impl
- * By: bada
- */
- define("DEV", true);
- /* config */
- $HOST="irc.quakenet.org";
- $PORT=6667;
- $NICK="chivbot".getmypid();
- $CHAN="#chivalrygame";
- /* stuff */
- set_time_limit(0);
- if(DEV)
- {
- ini_set('display_errors', 1);
- error_reporting(E_ALL);
- }
- else
- {
- ini_set('display_errors', 0);
- error_reporting(E_ERROR);
- }
- $socket = fsockopen($HOST, $PORT);
- fputs($socket, "USER $NICK 8 * : $NICK\n");
- fputs($socket, "NICK $NICK\n");
- $time = time();
- while(true)
- {
- while($data = fgets($socket, 128))
- {
- echo $data;
- flush();
- $dataArr = explode(' ', $data);
- // ping pong
- if($dataArr[0] == "PING")
- fputs($socket, "PONG ${dataArr[1]}\n");
- if(count($dataArr) >= 4)
- {
- // join channel
- if($dataArr[1] != "PRIVMSG" && $dataArr[3] == ":End")
- fputs($socket, "JOIN $CHAN\n");
- // received action
- if($dataArr[1] == "PRIVMSG" && $dataArr[2] == $NICK)
- {
- $action = str_replace(array(chr(10), chr(13)), '', substr($dataArr[3], 1, strlen($dataArr[3])-1));;
- preg_match('/:(.*)[!]/', $dataArr[0], $matches);
- $user = (count($matches) == 2) ? $matches[1] : "";
- switch($action)
- {
- case "hello":
- fputs($socket, "PRIVMSG $user :hello there!!!\n");
- break;
- case "kill":
- killbot($socket);
- break;
- }
- }
- }
- }
- }
- function killbot(&$socket)
- {
- fclose($socket);
- exit(0);
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement