All pastes #824502 Raw Edit

Miscellany

public text v1 · immutable
·published 2007-12-20 00:29 UTC
rendered paste body
<?php



class select{
      function __construct(){
           $this->callbacks = $this->timers = $this->streams = array();
           $this->break = FALSE;
      }

      function addStream($stream, $id=NULL){
           if($id === NULL) for($id = 0; $this->streams[$id]; $id++);
           $this->streams[$id] = $stream;
           return $id;
      }

      function remStream($mixed){
           if(is_resource($mixed)) $id = array_search($mixed, $this->streams);
           else $id = $mixed;
           if($this->streams[$id]){
                unset($this->streams[$id]);
                return TRUE;
           }
      }

      function addTimer($time, $function, $args=array()){
           $this->timers[] = array('time' => (time() + $time), 'func' => $function, 'args' => $args);
           sort($this->timers);
      }

      function addCallback($mixed, $function, $args=array()){
           if(is_resource($mixed)) $id = array_search($mixed, $this->streams);
           else $id = $mixed;
           if(!is_array($this->callbacks[$id])) $this->callbacks[$id] = array();
           $this->callbacks[$id] = array('func' => $function, 'args' => $args);
      }

      function findWait(){
           if($this->timers) foreach($this->timers as $timer){
                if(!isset($min) || $timer['time'] < $min){
                     $min = $timer['time'];
                }
                return $min-time();
           }else{
                return 60;
           }
      }

      function wait($sock=FALSE){
           if($sock) $function = "socket_select"; else $function = "stream_select";
           while(!$this->break){
                $select = array();
                foreach($this->streams as $stream) $select[] = $stream;
                $wait = $this->findWait();
                if($select){
                     if($function($select, $null, $null, $wait)){
                          $stream = $select[0];
                          $id = array_search($stream, $this->streams);
                          if($this->callbacks[$id])
                          call_user_func_array($this->callbacks[$id]['func'], $this->callbacks[$id]['args']);
                     }
                }else{
                     sleep($wait);
                }
                if($this->timers) foreach($this->timers as $x => $timer) if($timer['time'] <= time()){
                     call_user_func_array($timer['func'], $timer['args']);
                     unset($this->timers[$x]);
                }
                sort($this->timers);
           }
           $this->break = FALSE;
      }
 }






















Class bot {
	//Public Variables
	Public $rs_cmb;
	Public $class;

	function connect() {
		$server = "hyperion.fl.us.SwiftIRC.net";
		$port = "6667";
		//$server = "Danty.net";
		//$port = "6667";
		$this->socket = fsockopen($server, $port, $errno, $errstr, 30) or die();
	}



	function info($username, $password, $ajoin) {
		//fputs($this->socket, "USER $username steven10172.gopzap.com BOT:steven10172\n");
		fputs($this->socket, "USER $username * ? :steven10172\n");
		fputs($this->socket, "NICK $username\n");
		fputs($this->socket, "PRIVMSG nickserv identify $password \n");
		fputs($this->socket, "JOIN $ajoin \n");
	}

	function msg($to, $message) {
		fputs($this->socket, "PRIVMSG ".$to." $message \n");
	}

	function notice($to, $message) {
		fputs($this->socket, "NOTICE ".$to." $message \n");
	}

	function join($channel, $username) {
		fputs($this->socket, "JOIN ".$channel."\n");
		$this->msg($channel, "$username has invited me to join your channel");
	}

	function leave($channel, $username, $reason) {
		$this->msg($channel, chr(3) ."07".$username . chr(3)."01 has requested me to part (REASON:".chr(3)."07 $reason )");
		fputs($this->socket, "PART ".$channel." (REASON: $reason )\n");
	}

	function part($channel) {
		fputs($this->socket, "PART $channel \n");
	}

	function quit($message) {
		fputs($this->socket, "QUIT ".$message." \n");
	}

	function rsstats($rsname, $nick, $command) {
		if($data = file_get_contents("http://hiscore.runescape.com/index_lite.ws?player=$rsname")) {
			echo "\n";
			//echo $nick;
			echo "\n";
			echo $rsname;
			echo "\n";
			   $skill = explode("\n", $data);
			   $n = 0;
			       for ($n = 0; $n < 24; $n++)
			       {
			         $skill[$n] = explode(',', $skill[$n]);
			         if ($skill[$n][0] == '-1')
			         {
			           $skill[$n][0] = '-';
			           $skill[$n][1] = '-';
			           $skill[$n][2] = '-';
			           $skill[$n][3] = '-';
			         } else {
			      	  //sets as interger so i can format the number
			      	  settype($skills[$n][0], "int");
			      	  settype($skills[$n][2], "int");
			      	  // add commas to rank
			      	  $skills[$n][0] = number_format($skills[$n][0]);
			      	  // add commas to exp
			      	  $skills[$n][2] = number_format($skills[$n][2]);
			        }
			      }

			$skill_name = 'Overall,Attack,Defence,Strength,Hitpoints,Ranged,Prayer,Magic,Cooking,Woodcutting,Fletching,Fishing,Firemaking,Crafting,Smithing,Mining,Herblore,Agility,Thieving,Slayer,Farming,Runecraft,Hunter,Construction';
			$skill_name = explode(',', $skill_name);

			$n = 0;
					       for ($n = 0; $n < 24; $n++)
					     	{
					           $rsskill_name = chr(3) . "01".$skill_name[$n]; //Skill
					           $rsskill_lvl = chr(3) . "04".$skill[$n][1]; // level
					           $rs_stats[$n] = $rsskill_name." - ".$rsskill_lvl . chr(3) . "01 | ";
    	   					}
    	   					//1 = black 	4 = red
    	   	//sets the info as skill name
    	   	$att = $skill[1][1];
    	   	$str = $skill[3][1];
    	   	$def = $skill[2][1];
    	   	$hp = $skill[4][1];
    	   	$prayer = $skill[6][1];
    	   	$range = $skill[5][1];
    	   	$mage = $skill[7][1];

    	   	//Calculates Combat
    	   	$this->rscmb($att, $str, $def, $hp, $prayer, $range, $mage);

    	   	//Sets the messages to send to user
    	   	$first_message = chr(3) . "01Highscores for ". chr(3) . "04".$rsname;
    	   	$second_message = $rs_stats[0]." ". chr(3) ."01 Combat ". chr(3) ."04".$this->rs_cmb." ". chr(3) ."01 Type ". chr(3) . "04".$this->class;
    	   ////////////$last_message = $rs_stats[0]." ".$rs_stats[1]." ".$rs_stats[2]." ".$rs_stats[3]." ".$rs_stats[4]." ".$rs_stats[5]." ".$rs_stats[6]." ".$rs_stats[7]." ".$rs_stats[8]." ".$rs_stats[9]." ".$rs_stats[10]." ".$rs_stats[11]." ".$rs_stats[12]." ".$rs_stats[13]." ".$rs_stats[14]." ".$rs_stats[15]." ".$rs_stats[16]." ".$rs_stats[17]." ".$rs_stats[18]." ".$rs_stats[19]." ".$rs_stats[20]." ".$rs_stats[21]." ".$rs_stats[22]." ".$rs_stats[23]." ".$rs_stats[24];

			$rs_stats_1 = array();
			$rs_stats_1[1] = $rs_stats[17];
			$rs_stats_1[2] = $rs_stats[18];
			$rs_stats_1[3] = $rs_stats[19];
			$rs_stats_1[4] = $rs_stats[20];
			$rs_stats_1[5] = $rs_stats[21];
			$rs_stats_1[6] = $rs_stats[22];
			$rs_stats_1[7] = $rs_stats[23];
			$very_last_message = implode(" ", $rs_stats_1);

    	   	//Unsets the variable so it not implode
    	   	unset($rs_stats[0], $rs_stats[17], $rs_stats[18],$rs_stats[19],$rs_stats[20],$rs_stats[21],$rs_stats[22], $rs_stats[23]);

    	   	$last_message = implode(" ", $rs_stats);

    	   	//Sends messages
    	   	if($command == "!") {
    	   		$this->notice($nick, $first_message);
    	   		$this->notice($nick, $second_message);
    	   		$this->notice($nick, $last_message);
    	   		$this->notice($nick, $very_last_message);
    	   	}

    	   	if($command == "@") {
    	   		$this->msg($nick, $first_message);
    	   		$this->msg($nick, $second_message);
    	   		$this->msg($nick, $last_message);
    	   		$this->msg($nick, $very_last_message);
    	   	}
    	   	unset($rsname, $data, $skill, $n, $skill_name, $rsskill_name, $rsskill_lvl, $first_message, $second_message, $last_message, $this->rs_cmb, $this->class);
		} else {
			$error = chr(3) . "04No stats were found for ". chr(3) . "07".$rsname;
			if($command == "!") {
				$this->notice($nick, $error);
			}
			if($command == "@") {
				$this->msg($nick, $error);
			}
		}
	}

	function rscmb($att, $str, $def, $hp, $prayer, $range, $mage) {
		$melee = $att + $str;
		$melee = $melee * 0.325;
		$base1 = $def + $hp;
		$base1 = $base1 * 0.25;
		$base2 = $prayer * 0.125;
		$base = $base1 + $base2;
		$range = $range * 0.48;
		$mage = $mage * 0.48;

		if($range >= $mage) {
			$secondary = $range;
			$this->class = "Ranger";
		} else {
			$secondary = $mage;
			$this->class = "Mage";
		}


		if($melee >= $secondary) {
			$secondary = $melee;
			$this->class = "Melee";
		} else {
			$secondary = $secondary;
		}

		$this->rs_cmb = $base + $secondary;
		unset($att, $str, $def, $hp, $prayer, $range, $mage, $melee, $base1, $base2, $base, $secondary);
	}

	function read() {
		//while(true){
			//GET'S RAW CODE
			$raw = fgets($this->socket);
		//CHECKS TO SEE IF SOMEONE TYPED ANYTHING
		if(strlen($raw)){
			//SEPERATES RAW CODE
			$ex = explode(" ", $raw, 4);
			$raw .= " ";
			//PRINT'S TEST IN COMMAND PROMPT
			//echo nl2br($raw);
			//echo "\n";
			echo "\n";
        	flush();
        	//SEPERATES THE DATA INTO CHANNEL, NICK, MSG_TYPE, TEXT
        	preg_match('/^:([^!]+)![^\s]+\s([^\s]+)\s(?::)?([^\s]+)(?:\s(.+))?/i', $raw, $matches);
			list(,$nick, $msg_type, $chan, $text) = $matches;
			echo "\n";
			echo $msg_type."    [".$chan."] <".$nick.">  ".$text;
			//$text .= "   ----------";
			echo "\n";
			//$command = str_replace(array(chr(10), chr(13)), '', $ex[3]);
			if (stripos($text, " ")) {
				$text = explode(" ", $text, 2);
				$command = $text[0];
				if(isset($text[1])){
					$text = $text[1];
				}
			} else {
				$text .= " fweufwhe";
				$text = explode(" ", $text, 3);
				echo "\n";
				echo "\n";
				echo "\n";
				if (isset($command)) {
					echo $command."   <--COMMAND";
				}
				echo "\n";
				echo "\n";
				print_r($text);
				echo "\n";
				echo "GOOD GOOD GOOD GOOD";
				echo "\n";
				echo "\n";
				//$command .= " ";
				echo $command;
				echo "\n";
				}
			if($ex[0] == "PING"){
				fwrite($this->socket, "PONG ".$ex[1]."\n");
				}
			//if (stristr($command,':!eval')) {
					//$eval = explode(':!eval', $command);
					//$command = ":!eval";
			//}
		//unset($raw);
		}
		if(isset($command)){
			switch($command)
			{
			case ':!eval':
				//eval's the code said
				eval($text);
				//try { eval($eval[1]); } catch (exception $e) { $this->msg($username, "FAILED: ". $e->getMessage()); }
				//try { eval($eval[1]); } catch (Exception $e) { $this->msg( "Steven10172" , "FAILED:"); }
				//eval($eval[1]); or $this->msg("steven10172" ,"failed");
				unset($text, $command);
			break;

			case ':!stats':
				if($text == "") {
					$this->notice($nick, "\X004Please specify a Runescape Username");
				} else {
					$rsname = $text;
					$this->rsstats($rsname, $nick, "!");
				}
				unset($rsname, $text, $command);
			break;

			case ':@stats':
				if($text == "") {
					$this->msg($nick, "\X004Please specify a Runescape Username");
				} else {
					$rsname = $text;
					$this->rsstats($rsname, $chan, "@");
				}
				unset($rsname, $text, $command);
			break;

			case ':!join':
				$this->join($text, $nick);
				$this->msg($text, "I have been request to join your channel by". chr(3) . "07". $nick);
			break;

			case ':!leave':
				$channel = $text;
				$nick = $nick;
				$reason = $text;
				$this->leave($channel, $nick, $reason);
			break;

			case ':!part':
				$channel = $chan;
				$this->part($channel);
			break;

			case ':!duelcommands':
			  $this->msg($nick,"!duel");
			  $this->msg($nick,"!endduel");
			  $this->msg($nick,"---Duel Commands---");
			  $this->msg($nick,"!windstrike");
			  $this->msg($nick,"!waterstrike");
			  $this->msg($nick,"!earthstrike");
			  $this->msg($nick,"!firestrike");
			  $this->msg($nick,"!dds");
			  $this->msg($nick,"!flick");
			  $this->msg($nick,"!rubberchicken");
			  $this->msg($nick,"!dh");
			  $this->msg($nick,"!whip");
			  $this->msg($nick,"!icebarrage");
			  $this->msg($nick,"!tele");
			  $this->msg($nick,"---Duel Commands---");
			break;

			case ':!duel':
			  if ($duel2[$chan] == "active") {
			    $this->notice($nick, "A duel is already active please wait for it to end.");
			  }
			  if ($duel[$chan] == "active") {
			    $player2[$chan] = $nick;
			    $this->msg($chan, "the match is set! ".$player1[$chan]." vs ".$player2[$chan]);
			    $duel2[$chan] = "active";
			    $p1hp[$chan] = 99;
			    $p2hp[$chan] = 99;
			    $spec1[$chan] = 0;
			    $spec2[$chan] = 0;
			    $turn[$chan] = 1;

			  }
			  else {
			    $duel[$chan] = "active";
			    $player1[$chan] = $nick;
			    $this->msg($chan, $nick . " has initiated a duel type !duel to fight him");
			  }
			break;

			case ':!eat':
			  if ($turn[$chan] == 1) {
			    if ($nick == $player1[$chan]) {
			      $turn[$chan] = 2;
			      $p1hp[$chan] = $p1hp[$chan] + 20;
			      $this->msg($chan, $player1[$chan]." eats a shark and gains 20 hp");
			    }
			  }
			  else if ($turn[$chan] == 2) {
			    if ($nick == $player2[$chan]) {
			      $turn[$chan] = 1;
			      $p2hp[$chan] = $p2hp[$chan] + 20;
			      $this->msg($chan, $player2[$chan]." eats a shark and gains 20hp");
			    }
			  }
			break;

			case ':!windstrike':
			  if ($turn[$chan] == 1) {
			    if ($nick == $player1[$chan]) {
			      $turn[$chan] = 2;
			      $hit[$chan] = rand(0,2);
			      $this->msg($chan, $player1[$chan]." has hit a ".$hit[$chan]);
			      $p2h[$chan] = $p2hp[$chan] - $hit[$chan];
			      $this->msg($chan, $player2[$chan]." has ".$p2hp[$chan]." hp left");
			      if ($p2hp[$chan] < 0) {
			        //ADD STATS PART HERE
			        $this->msg($chan, $player1[$chan]." has defeated ".$player2[$chan]);
			        unset($duel[$chan], $player1[$chan], $player2[$chan], $duel2[$chan], $p1hp[$chan], $p2hp[$chan], $spec1[$chan], $spec2[$chan], $turn[$chan], $hit1[$chan], $hit2[$chan]);
			      }
			      else {
			      }
			    }
			  }
			  else if ($turn[$chan] == 2) {
			    if ($nick == $player2[$chan]) {
			      $turn[$chan] = 1;
			      $hit[$chan] = rand(0,2);
			      $this->msg($chan, $player2[$chan]." has hit a ".$hit[$chan]);
			      $p1hp[$chan] = $p1hp[$chan] - $hit[$chan];
			      $this->msg($chan, $player1[$chan]." has ".$p1hp[$chan]." hp left");
			      if ($p1hp[$chan] < 0) {
			        //ADD STATS PART HERE
			        $this->msg($chan, $player2[$chan]." has defeated ".$player1[$chan]);
			        unset($duel[$chan], $player1[$chan], $player2[$chan], $duel2[$chan], $p1hp[$chan], $p2hp[$chan], $spec1[$chan], $spec2[$chan], $turn[$chan], $hit1[$chan], $hit2[$chan]);
			      }
			      else {
			      }
			    }
			  }
			break;

			case ':!waterstrike':
			  if ($turn[$chan] == 1) {
			    if ($nick == $player1[$chan]) {
			      $turn[$chan] = 2;
			      $hit[$chan] = rand(0,3);
			      $this->msg($chan, $player1[$chan]." has hit a ".$hit[$chan]);
			      $p2h[$chan] = $p2hp[$chan] - $hit[$chan];
			      $this->msg($chan, $player2[$chan]." has ".$p2hp[$chan]." hp left");
			      if ($p2hp[$chan] < 0) {
			        //ADD STATS PART HERE
			        $this->msg($chan, $player1[$chan]." has defeated ".$player2[$chan]);
			        unset($duel[$chan], $player1[$chan], $player2[$chan], $duel2[$chan], $p1hp[$chan], $p2hp[$chan], $spec1[$chan], $spec2[$chan], $turn[$chan], $hit1[$chan], $hit2[$chan]);
			      }
			      else {
			      }
			    }
			  }
			  else if ($turn[$chan] == 2) {
			    if ($nick == $player2[$chan]) {
			      $turn[$chan] = 1;
			      $hit[$chan] = rand(0,3);
			      $this->msg($chan, $player2[$chan]." has hit a ".$hit[$chan]);
			      $p1hp[$chan] = $p1hp[$chan] - $hit[$chan];
			      $this->msg($chan, $player1[$chan]." has ".$p1hp[$chan]." hp left");
			      if ($p1hp[$chan] < 0) {
			        //ADD STATS PART HERE
			        $this->msg($chan, $player2[$chan]." has defeated ".$player1[$chan]);
			        unset($duel[$chan], $player1[$chan], $player2[$chan], $duel2[$chan], $p1hp[$chan], $p2hp[$chan], $spec1[$chan], $spec2[$chan], $turn[$chan], $hit1[$chan], $hit2[$chan]);
			      }
			      else {
			      }
			    }
			  }
			break;

			case ':!earthstrike':
			  if ($turn[$chan] == 1) {
			    if ($nick == $player1[$chan]) {
			      $turn[$chan] = 2;
			      $hit[$chan] = rand(0,4);
			      $this->msg($chan, $player1[$chan]." has hit a ".$hit[$chan]);
			      $p2h[$chan] = $p2hp[$chan] - $hit[$chan];
			      $this->msg($chan, $player2[$chan]." has ".$p2hp[$chan]." hp left");
			      if ($p2hp[$chan] < 0) {
			        //ADD STATS PART HERE
			        $this->msg($chan, $player1[$chan]." has defeated ".$player2[$chan]);
			        unset($duel[$chan], $player1[$chan], $player2[$chan], $duel2[$chan], $p1hp[$chan], $p2hp[$chan], $spec1[$chan], $spec2[$chan], $turn[$chan], $hit1[$chan], $hit2[$chan]);
			      }
			      else {
			      }
			    }
			  }
			  else if ($turn[$chan] == 2) {
			    if ($nick == $player2[$chan]) {
			      $turn[$chan] = 1;
			      $hit[$chan] = rand(0,4);
			      $this->msg($chan, $player2[$chan]." has hit a ".$hit[$chan]);
			      $p1hp[$chan] = $p1hp[$chan] - $hit[$chan];
			      $this->msg($chan, $player1[$chan]." has ".$p1hp[$chan]." hp left");
			      if ($p1hp[$chan] < 0) {
			        //ADD STATS PART HERE
			        $this->msg($chan, $player2[$chan]." has defeated ".$player1[$chan]);
			        unset($duel[$chan], $player1[$chan], $player2[$chan], $duel2[$chan], $p1hp[$chan], $p2hp[$chan], $spec1[$chan], $spec2[$chan], $turn[$chan], $hit1[$chan], $hit2[$chan]);
			      }
			      else {
			      }
			    }
			  }
			break;

			case ':!firestrike':
			  if ($turn[$chan] == 1) {
			    if ($nick == $player1[$chan]) {
			      $turn[$chan] = 2;
			      $hit[$chan] = rand(0,5);
			      $this->msg($chan, $player1[$chan]." has hit a ".$hit[$chan]);
			      $p2h[$chan] = $p2hp[$chan] - $hit[$chan];
			      $this->msg($chan, $player2[$chan]." has ".$p2hp[$chan]." hp left");
			      if ($p2hp[$chan] < 0) {
			        //ADD STATS PART HERE
			        $this->msg($chan, $player1[$chan]." has defeated ".$player2[$chan]);
			        unset($duel[$chan], $player1[$chan], $player2[$chan], $duel2[$chan], $p1hp[$chan], $p2hp[$chan], $spec1[$chan], $spec2[$chan], $turn[$chan], $hit1[$chan], $hit2[$chan]);
			      }
			      else {
			      }
			    }
			  }
			  else if ($turn[$chan] == 2) {
			    if ($nick == $player2[$chan]) {
			      $turn[$chan] = 1;
			      $hit[$chan] = rand(0,5);
			      $this->msg($chan, $player2[$chan]." has hit a ".$hit[$chan]);
			      $p1hp[$chan] = $p1hp[$chan] - $hit[$chan];
			      $this->msg($chan, $player1[$chan]." has ".$p1hp[$chan]." hp left");
			      if ($p1hp[$chan] < 0) {
			        //ADD STATS PART HERE
			        $this->msg($chan, $player2[$chan]." has defeated ".$player1[$chan]);
			        unset($duel[$chan], $player1[$chan], $player2[$chan], $duel2[$chan], $p1hp[$chan], $p2hp[$chan], $spec1[$chan], $spec2[$chan], $turn[$chan], $hit1[$chan], $hit2[$chan]);
			      }
			      else {
			      }
			    }
			  }
			break;

			case ':!dds':
			  if ($nick == $player1[$chan]) {
			    if ($turn[$chan] == 1) {
			      if ($spec2 < 4) {
			        $turn[$chan] = 2;
			        $hit1[$chan] = rand(0,25);
			        $hit2[$chan] = rand(0,25);
			        $this->msg($chan, $player1[$chan]." has hit ".$hit1[$chan]."-".$hit2[$chan]);
			        $p2hp[$chan] = $p2hp[$chan] - $hit1[$chan] - $hit2[$chan];
			        $this->msg($chan, $player2[$chan]." has ".$p2hp[$chan]." hp left");
			          if ($p2hp[$chan] < 0) {
			            //ADD STATS PART HERE
			            $this->msg($chan, $player1[$chan]." has defeated ".$player2[$chan]);
			            unset($duel[$chan], $player1[$chan], $player2[$chan], $duel2[$chan], $p1hp[$chan], $p2hp[$chan], $spec1[$chan], $spec2[$chan], $turn[$chan], $hit1[$chan], $hit2[$chan]);
			        }
			      else {
			      }
			    }
			    else {
			      $this->notice($nick, "you are out of specials");
			    }
			    //else {
			    //  $this->notice($nick, "It's not your turn");
			    //}
			    }
			    }
			    else {
			    }
			    if ($nick == $player2[$chan]) {
			     if ($turn[$chan] == 2) {
			      if ($spec2 < 4) {
			        $turn[$chan] = 1;
			        $hit1[$chan] = rand(0,25);
			        $hit2[$chan] = rand(0,25);
			        $this->msg($chan, $player2[$chan]." has hit ".$hit1[$chan]."-".$hit2[$chan]);
			        $p1hp[$chan] = $p1hp[$chan] - $hit1[$chan] - $hit2[$chan];
			        $this->msg($chan, $player1[$chan]." has ".$p1hp[$chan]." hp left");
			          if ($p1hp[$chan] < 0) {
			            //ADD STATS PART HERE
			            $this->msg($chan, $player2[$chan]." has defeated ".$player1[$chan]);
			            unset($duel[$chan], $player1[$chan], $player2[$chan], $duel2[$chan], $p1hp[$chan], $p2hp[$chan], $spec1[$chan], $spec2[$chan], $turn[$chan], $hit1[$chan], $hit2[$chan]);
			        }
			      else {
			      }
			    }
			    else {
			      $this->notice($nick, "you are out of specials");
			    }
			    //else {
			    //  $this->notice($nick, "It's not your turn");
			    //}
			    }
			    }
			    else {
			    }
			break;

			case ':!flick':
			  if ($turn[$chan] == 1) {
			    if ($nick == $player1[$chan]) {
			      $turn[$chan] = 2;
			      $hit[$chan] = rand(0,15);
			      $this->msg($chan, $player1[$chan]." has hit a ".$hit[$chan]);
			      $p2h[$chan] = $p2hp[$chan] - $hit[$chan];
			      $this->msg($chan, $player2[$chan]." has ".$p2hp[$chan]." hp left");
			      if ($p2hp[$chan] < 0) {
			        //ADD STATS PART HERE
			        $this->msg($chan, $player1[$chan]." has defeated ".$player2[$chan]);
			        unset($duel[$chan], $player1[$chan], $player2[$chan], $duel2[$chan], $p1hp[$chan], $p2hp[$chan], $spec1[$chan], $spec2[$chan], $turn[$chan], $hit1[$chan], $hit2[$chan]);
			      }
			      else {
			      }
			    }
			  }
			  else if ($turn[$chan] == 2) {
			    if ($nick == $player2[$chan]) {
			      $turn[$chan] = 1;
			      $hit[$chan] = rand(0,15);
			      $this->msg($chan, $player2[$chan]." has hit a ".$hit[$chan]);
			      $p1hp[$chan] = $p1hp[$chan] - $hit[$chan];
			      $this->msg($chan, $player1[$chan]." has ".$p1hp[$chan]." hp left");
			      if ($p1hp[$chan] < 0) {
			        //ADD STATS PART HERE
			        $this->msg($chan, $player2[$chan]." has defeated ".$player1[$chan]);
			        unset($duel[$chan], $player1[$chan], $player2[$chan], $duel2[$chan], $p1hp[$chan], $p2hp[$chan], $spec1[$chan], $spec2[$chan], $turn[$chan], $hit1[$chan], $hit2[$chan]);
			      }
			      else {
			      }
			    }
			  }
			break;

			case ':!rubberchicken':
			  if ($turn[$chan] == 1) {
			    if ($nick == $player1[$chan]) {
			      $turn[$chan] = 2;
			      $hit[$chan] = rand(0,4);
			      $this->msg($chan, $player1[$chan]." has hit a ".$hit[$chan]);
			      $p2h[$chan] = $p2hp[$chan] - $hit[$chan];
			      $this->msg($chan, $player2[$chan]." has ".$p2hp[$chan]." hp left");
			      if ($p2hp[$chan] < 0) {
			        //ADD STATS PART HERE
			        $this->msg($chan, $player1[$chan]." has defeated ".$player2[$chan]);
			        unset($duel[$chan], $player1[$chan], $player2[$chan], $duel2[$chan], $p1hp[$chan], $p2hp[$chan], $spec1[$chan], $spec2[$chan], $turn[$chan], $hit1[$chan], $hit2[$chan]);
			      }
			      else {
			      }
			    }
			  }
			  else if ($turn[$chan] == 2) {
			    if ($nick == $player2[$chan]) {
			      $turn[$chan] = 1;
			      $hit[$chan] = rand(0,4);
			      $this->msg($chan, $player2[$chan]." has hit a ".$hit[$chan]);
			      $p1hp[$chan] = $p1hp[$chan] - $hit[$chan];
			      $this->msg($chan, $player1[$chan]." has ".$p1hp[$chan]." hp left");
			      if ($p1hp[$chan] < 0) {
			        //ADD STATS PART HERE
			        $this->msg($chan, $player2[$chan]." has defeated ".$player1[$chan]);
			        unset($duel[$chan], $player1[$chan], $player2[$chan], $duel2[$chan], $p1hp[$chan], $p2hp[$chan], $spec1[$chan], $spec2[$chan], $turn[$chan], $hit1[$chan], $hit2[$chan]);
			      }
			      else {
			      }
			    }
			  }
			break;

			case ':!dh':
			  if ($turn[$chan] == 1) {
			    if ($nick == $player1[$chan]) {
			      $turn[$chan] = 2;
			      $hit[$chan] = rand(0,60);
			      $this->msg($chan, $player1[$chan]." has hit a ".$hit[$chan]);
			      $p2h[$chan] = $p2hp[$chan] - $hit[$chan];
			      $this->msg($chan, $player2[$chan]." has ".$p2hp[$chan]." hp left");
			      if ($p2hp[$chan] < 0) {
			        //ADD STATS PART HERE
			        $this->msg($chan, $player1[$chan]." has defeated ".$player2[$chan]);
			        unset($duel[$chan], $player1[$chan], $player2[$chan], $duel2[$chan], $p1hp[$chan], $p2hp[$chan], $spec1[$chan], $spec2[$chan], $turn[$chan], $hit1[$chan], $hit2[$chan]);
			      }
			      else {
			      }
			    }
			  }
			  else if ($turn[$chan] == 2) {
			    if ($nick == $player2[$chan]) {
			      $turn[$chan] = 1;
			      $hit[$chan] = rand(0,60);
			      $this->msg($chan, $player2[$chan]." has hit a ".$hit[$chan]);
			      $p1hp[$chan] = $p1hp[$chan] - $hit[$chan];
			      $this->msg($chan, $player1[$chan]." has ".$p1hp[$chan]." hp left");
			      if ($p1hp[$chan] < 0) {
			        //ADD STATS PART HERE
			        $this->msg($chan, $player2[$chan]." has defeated ".$player1[$chan]);
			        unset($duel[$chan], $player1[$chan], $player2[$chan], $duel2[$chan], $p1hp[$chan], $p2hp[$chan], $spec1[$chan], $spec2[$chan], $turn[$chan], $hit1[$chan], $hit2[$chan]);
			      }
			      else {
			      }
			    }
			  }
			break;

			case ':!whip':
			  if ($turn[$chan] == 1) {
			    if ($nick == $player1[$chan]) {
			      $turn[$chan] = 2;
			      $hit[$chan] = rand(0,40);
			      $this->msg($chan, $player1[$chan]." has hit a ".$hit[$chan]);
			      $p2h[$chan] = $p2hp[$chan] - $hit[$chan];
			      $this->msg($chan, $player2[$chan]." has ".$p2hp[$chan]." hp left");
			      if ($p2hp[$chan] < 0) {
			        //ADD STATS PART HERE
			        $this->msg($chan, $player1[$chan]." has defeated ".$player2[$chan]);
			        unset($duel[$chan], $player1[$chan], $player2[$chan], $duel2[$chan], $p1hp[$chan], $p2hp[$chan], $spec1[$chan], $spec2[$chan], $turn[$chan], $hit1[$chan], $hit2[$chan]);
			      }
			      else {
			      }
			    }
			  }
			  else if ($turn[$chan] == 2) {
			    if ($nick == $player2[$chan]) {
			      $turn[$chan] = 1;
			      $hit[$chan] = rand(0,40);
			      $this->msg($chan, $player2[$chan]." has hit a ".$hit[$chan]);
			      $p1hp[$chan] = $p1hp[$chan] - $hit[$chan];
			      $this->msg($chan, $player1[$chan]." has ".$p1hp[$chan]." hp left");
			      if ($p1hp[$chan] < 0) {
			        //ADD STATS PART HERE
			        $this->msg($chan, $player2[$chan]." has defeated ".$player1[$chan]);
			        unset($duel[$chan], $player1[$chan], $player2[$chan], $duel2[$chan], $p1hp[$chan], $p2hp[$chan], $spec1[$chan], $spec2[$chan], $turn[$chan], $hit1[$chan], $hit2[$chan]);
			      }
			      else {
			      }
			    }
			  }
			break;

			case ':!icebarrage':
			  if ($turn[$chan] == 1) {
			    if ($nick == $player1[$chan]) {
			      $turn[$chan] = 2;
			      $hit[$chan] = rand(0,50);
			      $this->msg($chan, $player1[$chan]." has hit a ".$hit[$chan]);
			      $p2h[$chan] = $p2hp[$chan] - $hit[$chan];
			      $this->msg($chan, $player2[$chan]." has ".$p2hp[$chan]." hp left");
			      if ($p2hp[$chan] < 0) {
			        //ADD STATS PART HERE
			        $this->msg($chan, $player1[$chan]." has defeated ".$player2[$chan]);
			        unset($duel[$chan], $player1[$chan], $player2[$chan], $duel2[$chan], $p1hp[$chan], $p2hp[$chan], $spec1[$chan], $spec2[$chan], $turn[$chan], $hit1[$chan], $hit2[$chan]);
			      }
			      else {
			      }
			    }
			  }
			  else if ($turn[$chan] == 2) {
			    if ($nick == $player2[$chan]) {
			      $turn[$chan] = 1;
			      $hit[$chan] = rand(0,50);
			      $this->msg($chan, $player2[$chan]." has hit a ".$hit[$chan]);
			      $p1hp[$chan] = $p1hp[$chan] - $hit[$chan];
			      $this->msg($chan, $player1[$chan]." has ".$p1hp[$chan]." hp left");
			      if ($p1hp[$chan] < 0) {
			        //ADD STATS PART HERE
			        $this->msg($chan, $player2[$chan]." has defeated ".$player1[$chan]);
			        unset($duel[$chan], $player1[$chan], $player2[$chan], $duel2[$chan], $p1hp[$chan], $p2hp[$chan], $spec1[$chan], $spec2[$chan], $turn[$chan], $hit1[$chan], $hit2[$chan]);
			      }
			      else {
			      }
			    }
			  }
			break;

			case ':!tele':
			  if ($player1 == $nick || $player2 == $nick) {
			    $this->msg($chan, $player2." loses the Death Match by Teleing away...What a nub!");
			    unset($duel[$chan], $player1[$chan], $player2[$chan], $duel2[$chan], $p1hp[$chan], $p2hp[$chan], $spec1[$chan], $spec2[$chan], $turn[$chan], $hit1[$chan], $hit2[$chan]);
			  }
			break;

			case ':!endduel':
			  $this->msg($chan, $nick." has ended the current duel of ".$player1[$chan]." and ".$player2[$chan]);
			  unset($duel[$chan], $player1[$chan], $player2[$chan], $duel2[$chan], $p1hp[$chan], $p2hp[$chan], $spec1[$chan], $spec2[$chan], $turn[$chan], $hit1[$chan], $hit2[$chan]);
			break;
			}
		  }
		//unset($raw, $ex, $matches, $nick, $chan, $msg_type, $text, $command);
		//}
	}
}

$bot = new bot();
$bot->connect();
$select = new select();

?>



//ADD try { 'EVAL CODE' } catch { }
//try { eval($eval[1]); } catch (exception e) { $this->msg($username, "FAILED: ". e->getMessage(); }
//try { eval($eval[1]); } catch (Exception $e) { $this->msg( "Steven10172" , "FAILED:"); }
//or $this->msg("steven10172" ,"failed");
//eval($eval[1]); or $this->msg("steven10172" ,"failed");
//error_reporting(E_ALL);