#!/usr/local/bin/php pcw=$x[1]; } $this->config=array(); $this->config['server']='phoenix.swiftirc.net'; $this->config['nick']='World'; $this->cnick=$this->config['nick']; $this->config['port']=6667; $this->config['channel']="#pc"; $this->cchannel=$this->config['channel']; $this->config['name']='World Bot by Hamish'; $this->cname=$this->config['name']; $this->config['ip']=gethostbyname($this->config['server']); $this->socket=@fsockopen($this->config['ip'],$this->config['port']); set_time_limit(0); if ($this->socket) { $this->cmd_send("USER $this->cnick $this->cnick $this->cnick :$this->cname"); $this->cmd_send("NICK $this->cnick"); } while (!feof($this->socket)) { $buffer=trim(fgets($this->socket,4096)); if (preg_match("/376 (.*) :End of \/MOTD command./",$buffer)) { $this->cmd_send("JOIN $this->cchannel"); } if(substr($buffer,0,6)=="PING :") { $reply=substr($buffer,6); $this->cmd_send("PONG :".$reply); } if(preg_match("/^:(.*?)!(.*?)@(.*?) PRIVMSG #PC :!(pcw|world|pcworld|pc)/",$buffer,$x)) { $this->cmd_send("NOTICE ".$x[1]." :".chr(3)."5[".chr(2)."PCW".chr(2)."]".chr(3)."14 ".chr(2)."T".chr(2)."he ".chr(2)."C".chr(2)."urrent ".chr(2)."P".chr(2)."est ".chr(2)."C".chr(2)."ontrol ".chr(2)."W".chr(2)."orld ".chr(2)."I".chr(2)."s: ".chr(3)."5,00[".chr(2)."".$this->pcw."".chr(2)."]"); } if(preg_match("/^:(.*?)!(.*?)@(.*?) PRIVMSG #PC :!(change|setpcw|setworld|setpcworld) (.*)/",$buffer,$x)) { $this->setworld=$x[5]; $this->checkreg($x[1]); } if(preg_match("/^:NickServ!services@swiftirc.net NOTICE (.*) :This nickname is registered and protected/i",$buffer,$x)) { $this->cmd_send("PRIVMSG NickServ :identify thisisthepass"); } if (preg_match("/^ERROR :Closing Link:/",$buffer)) { $this->socket=@fsockopen($this->config['ip'],$this->config['port']); $this->cmd_send("USER $this->cnick $this->cnick $this->cnick :$this->cname"); $this->cmd_send("NICK $this->cnick"); } if (preg_match("/^:(.*?) 353 $this->cnick = #PC :(.*)/i",$buffer,$x) && isset($this->setnick)) { $names=explode(" ",$x[2]); $a=array("+", "%", "@"); $b=array("", "", ""); foreach ($names as $name) { if (str_replace($a, $b, $name) == $this->setnick) { $nick=$name; if (strpos($name,"+") !== FALSE) { $this->isreg[$nick]="YEAH"; } if (strpos($name,"%") !== FALSE) { $this->isreg[$nick]="YEAH"; } if (strpos($name,"@") !== FALSE) { $this->isreg[$nick]="YEAH"; } if ($this->isreg[$nick]=="YEAH") { $file = "pcw.txt"; $id = fopen($file, 'w'); $data = "#PC ".$this->setworld; fwrite($id, $data); fclose($id); $this->cmd_send("NOTICE $nick :".chr(3)."5[".chr(2)."PCW".chr(2)."]".chr(3)."14 ".chr(2)."T".chr(2)."he ".chr(2)."W".chr(2)."orld ".chr(2)."H".chr(2)."as ".chr(2)."B".chr(2)."een ".chr(2)."S".chr(2)."et ".chr(2)."T".chr(2)."o: ".chr(3)."5,00[".chr(2)."".$this->setworld."".chr(2)."]"); $this->cmd_send("PRIVMSG #PC :".chr(3)."5[".chr(2)."PCW".chr(2)."]".chr(3)."14 ".chr(2)."T".chr(2)."he ".chr(2)."W".chr(2)."orld ".chr(2)."H".chr(2)."as ".chr(2)."B".chr(2)."een ".chr(2)."S".chr(2)."et ".chr(2)."T".chr(2)."o: ".chr(3)."5,00[".chr(2)."".$this->setworld."".chr(2)."]"); $this->pcw=$this->setworld; } } } } } } function cmd_send($command) { fwrite($this->socket, $command."\r\n"); } function checkreg($nick) { $this->setnick=$nick; $this->cmd_send("NAMES #PC"); } function daemon() { $child = pcntl_fork(); if($child) { exit; } posix_setsid(); chdir("/"); umask(0); return posix_getpid(); } } $pcwd=new pcwd; $pcwd->daemon(); $pcwd->pcwd(); ?>