daily pastebin goal
15%
SHARE
TWEET

Untitled

a guest Jun 5th, 2017 79 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/usr/bin/perl
  2.  
  3. print "POE IRC Bot. Skeleton by Caaz.\n";
  4.  
  5. print "SERVER \(Optional PORT NICK\)\n";
  6.  
  7. chomp($Connect = <STDIN>);
  8.  
  9.  
  10.  
  11. use POE::Component::IRC;
  12.  
  13. use POE;
  14.  
  15.  
  16.  
  17. BOTVARS: {
  18.  
  19.     $BotNick = "DuskBot";               # Nick
  20.  
  21.     $BotUser = "Dusk";              # Username "indent"
  22.  
  23.     $BotName = "DuskBot 2.0";           # Real Name
  24.  
  25.     $CmdPrefix = "!";               # Command Prefix
  26.  
  27.     $BotPass = "Removed";           # Nickserv Password
  28.  
  29.     $BotOwner = "Solareon";             # Owner of the Bot
  30.  
  31.     $BotPath = "/home/solareon/Desktop/DuskBot";    # Path to any files.
  32.  
  33.     $BotVersion = "DuskBot 2.0 (Perl)";
  34.  
  35. }
  36.  
  37. FILES: {
  38.  
  39.     open DATA, "<".$BotPath."DBUsers.txt";
  40.  
  41.     @DB = <DATA>;
  42.  
  43.     chomp($DBUsers = $DB[0]);
  44.  
  45.     close DATA;
  46.  
  47. }
  48.  
  49. open DATA, "<".$BotPath.(split / /, $Connect)[0]."-AutoJoin.txt";
  50.  
  51. @Channels=<DATA>;
  52.  
  53. close DATA;chomp(@Channels);
  54.  
  55. $BotChannels = $Channels[0];
  56.  
  57. $Connect = $Connect." ".$BotNick;
  58.  
  59. $BotNick = (split / /, $Connect)[2];
  60.  
  61. my ($irc) = POE::Component::IRC->spawn();
  62.  
  63. POE::Session->create(inline_states => {
  64.  
  65.     _start     => sub {
  66.  
  67.         $irc->yield(register => "all");
  68.  
  69.         $irc->yield( connect => {
  70.  
  71.             Nick     => (split / /, $Connect)[2],
  72.  
  73.             Username => $BotUser,
  74.  
  75.             Ircname  => $BotName,
  76.  
  77.             Server   => (split / /, $Connect)[0],
  78.  
  79.             Port     => (split / /, $Connect)[1],
  80.  
  81.         });
  82.  
  83.     },
  84.  
  85.     irc_001 => sub {
  86.  
  87.         $TDstat = "OFF";
  88.  
  89.         $DefCon = "5";
  90.  
  91.         $GTNstat = "OFF";
  92.  
  93.         $irc->yield(mode => $BotNick." +B");
  94.  
  95.         $irc->yield(privmsg => "Nickserv" => "id ".$BotPass);
  96.  
  97.         my $alarm_id = $irc->delay( [ join => $BotChannels ], 2 );
  98.  
  99.     },
  100.  
  101.     irc_error => sub {
  102.  
  103.         my ($kernel, $IRCWhat) = @_[KERNEL, ARG0];
  104.  
  105.         print $IRCWhat."\n";
  106.  
  107.     },
  108.  
  109.     irc_ctcp_action => sub {
  110.  
  111.         my ($kernel, $IRCWho, $where, $IRCWhat) = @_[KERNEL, ARG0, ARG1, ARG2];
  112.  
  113.         $IRCWhere = $where->[0];
  114.  
  115.         print GetTime()."$IRCWhere >    * ".(split /!/, $IRCWho)[0]." $IRCWhat\n";
  116.  
  117.         Bot("ACTION",(split /!/, $IRCWho)[0],(split /!/, $IRCWho)[1],$IRCWhere,$IRCWhat);
  118.  
  119.     },
  120.  
  121.     irc_ctcp_version => sub {
  122.  
  123.         my ($kernel, $IRCWho, $where, $IRCWhat) = @_[KERNEL, ARG0, ARG1, ARG2];
  124.  
  125.         $IRCWhere = $where->[0];
  126.  
  127.         print GetTime()."CTCP > * Got CTCP VERSION from ".(split /!/, $IRCWho)[0]."\n";
  128.  
  129.         $irc->yield(ctcpreply => (split /!/, $IRCWho)[0] => $BotVersion);
  130.  
  131.     },
  132.  
  133.     irc_join => sub {
  134.  
  135.         my ($kernel, $IRCWho, $IRCWhere) = @_[KERNEL, ARG0, ARG1];
  136.  
  137.         print GetTime()."Join       * ".(split /!/, $IRCWho)[0]." joins $IRCWhere\n";
  138.  
  139.         Bot("JOIN",(split /!/, $IRCWho)[0],(split /!/, $IRCWho)[1],$IRCWhere);
  140.  
  141.     },
  142.  
  143.     irc_invite => sub {
  144.  
  145.         my ($kernel, $IRCWho, $IRCWhere) = @_[KERNEL, ARG0, ARG1];
  146.  
  147.         print GetTime()."Invi       * ".(split /!/, $IRCWho)[0]." invites you to $IRCWhere\n";
  148.  
  149.         Bot("INVITE", (split /!/, $IRCWho)[0],(split /!/, $IRCWho)[1],$IRCWhere);
  150.  
  151.     },
  152.  
  153.     irc_kick => sub {
  154.  
  155.         my ($kernel, $IRCWho, $IRCWhere, $IRCWhoElse, $IRCWhat) = @_[KERNEL, ARG0, ARG1, ARG2, ARG3];
  156.  
  157.         print GetTime()."Kick       * ".(split /!/, $IRCWho)[0]." kicks $IRCWhoElse out of $IRCWhere ($IRCWhat)\n";
  158.  
  159.         Bot("KICK",(split /!/, $IRCWho)[0],(split /!/, $IRCWho)[1],$IRCWhere,$IRCWhoElse,$IRCWhat);
  160.  
  161.     },
  162.  
  163.     irc_msg => sub {
  164.  
  165.         my ($kernel, $IRCWho, $where, $IRCWhat) = @_[KERNEL, ARG0, ARG1, ARG2];
  166.  
  167.         $IRCWhere = $where->[0];
  168.  
  169.         print GetTime()."Priv\a>        <".(split /!/, $IRCWho)[0].">   $IRCWhat\n";
  170.  
  171.         Bot("PRIVMSG",(split /!/, $IRCWho)[0],(split /!/, $IRCWho)[1],$IRCWhere,$IRCWhat);
  172.  
  173.     },
  174.  
  175.     irc_nick => sub {
  176.  
  177.         my ($kernel, $IRCWho, $IRCWhoElse) = @_[KERNEL, ARG0, ARG1];
  178.  
  179.         print GetTime()."Nick       * ".(split /!/, $IRCWho)[0]." changes nick to $IRCWhoElse\n";
  180.  
  181.         Bot("NICK", (split /!/, $IRCWho)[0],(split /!/, $IRCWho)[1],$IRCWhoElse);
  182.  
  183.     },
  184.  
  185.     irc_notice => sub {
  186.  
  187.         my ($kernel, $IRCWho, $where, $IRCWhat) = @_[KERNEL, ARG0, ARG1, ARG2];
  188.  
  189.         $IRCWhere = $where->[0];
  190.  
  191.         print GetTime()."Noti       <".(split /!/, $IRCWho)[0].">   $IRCWhat\n" if((split /!/, $IRCWho)[0] !~ /WolfBot/i);
  192.  
  193.         Bot("NOTICE",(split /!/, $IRCWho)[0],(split /!/, $IRCWho)[1],$IRCWhere,$IRCWhat);
  194.  
  195.     },
  196.  
  197.     irc_part => sub {
  198.  
  199.         my ($kernel, $IRCWho, $IRCWhere, $IRCWhat) = @_[KERNEL, ARG0, ARG1, ARG2];
  200.  
  201.         print GetTime()."Part       * ".(split /!/, $IRCWho)[0]." left channel $IRCWhere \(".$IRCWhat."\)\n";
  202.  
  203.         Bot("PART",(split /!/, $IRCWho)[0],(split /!/, $IRCWho)[1],$IRCWhere,$IRCWhat);
  204.  
  205.     },
  206.  
  207.     irc_public => sub {
  208.  
  209.         my ($kernel, $IRCWho, $where, $IRCWhat) = @_[KERNEL, ARG0, ARG1, ARG2];
  210.  
  211.         $IRCWhere = $where->[0];
  212.  
  213.         print GetTime()."$IRCWhere >    <".(split /!/, $IRCWho)[0].">   $IRCWhat\n";
  214.  
  215.         Bot("CHANMSG",(split /!/, $IRCWho)[0],(split /!/, $IRCWho)[1],$IRCWhere,$IRCWhat);
  216.  
  217.     },
  218.  
  219.     irc_disconnected => sub { print "Disconnected.\n"; exit 1; }, # Ends on disconnect.
  220.  
  221. },);
  222.  
  223.    
  224.  
  225. sub Bot {
  226.  
  227.         $Event = $_[0];
  228.  
  229.         if($Event =~ /CHANMSG/) { $Com = "privmsg ".$_[3]." "; $UserMsg = $_[4]; $Where = $_[3]; }
  230.  
  231.         elsif($Event =~ /NOTICE/) { $Com = "notice ".$_[1]." "; $UserMsg = $_[4]; $Where = $_[1]; }
  232.  
  233.         elsif($Event =~ /PRIVMSG/) { $Com = "notice ".$_[1]." "; $UserMsg = $_[4]; $Where = $_[1]; }
  234.  
  235.         elsif($Event =~ /INVITE/) { $Com = "notice ".$_[1]." "; $UserMsg = $_[3]; $Where = $_[1]; if ($UserMsg !~ /sex/i) { $irc->yield(join => $Use$
  236.  
  237.         elsif($Event =~ /JOIN/) { $Com = "notice ".$_[3]." "; $UserMsg = $_[3]; $Where = $_[1]; }
  238.  
  239.         elsif($Event =~ /NICK/) { if($_[1] =~ /^$BotOwner$/i) { print "Owner changing...\n"; $BotOwner = Regexit($_[3]) } }
  240.  
  241.         $UserNick = Regexit($_[1]);
  242.  
  243.         $UserHost = $_[2];
  244.  
  245.         $UserMsg = POE::Component::IRC::Common::strip_formatting(POE::Component::IRC::Common::strip_color($UserMsg));
  246.  
  247.         $CurSec = SpamProtect();
  248.  
  249.         &CREATEUser($UserNick);
  250.  
  251.         if($DBUsers =~ /(.*)<$UserNick :(.*?)\[Access (.*?)\](.*?)>(.*)/i) {
  252.  
  253.                 $Access = $3;
  254.  
  255.                 if($Access <= 0) {
  256.  
  257.                         return 0;
  258.  
  259.                 }
  260.  
  261.         }
  262.  
  263.     ##########
  264.  
  265.     #WereWolf#
  266.  
  267.     ##########
  268.  
  269.  
  270.  
  271.     if(($Where =~ /wwolf/i) || ($UserNick =~ /Wolfbot/i)) {
  272.  
  273.         if($Event =~ /(CHANMSG|NOTICE|PRIVMSG)/) {
  274.  
  275.             $WW{"MyType"} = "Wolf" if($WW{"MyType"} =~ /werewolf/);
  276.  
  277.             if(($UserMsg =~ /^($BotNick|Bots), Join/i) && ($WW{"Will Join"} !~ /No/i)) {
  278.  
  279.                 $irc->yield(privmsg => "#WWolf" => "!Join");
  280.  
  281.                 $WW{"Will Join"} = "No";
  282.  
  283.                 $WW{"MyType"} = "Villager";
  284.  
  285.             }
  286.  
  287.             elsif($UserMsg =~ /^$BotNick, Leave/i) {
  288.  
  289.                 $irc->yield(part => "#WWolf" => "Invite me, and I will continue playing.");
  290.  
  291.                 $WW{"Will Join"} = "Yes";
  292.  
  293.                 while ( ($key, $value) = each %WW ) {
  294.  
  295.                     $WW{$key} = "";
  296.  
  297.                 }
  298.  
  299.             }
  300.  
  301.             elsif($UserMsg =~ /^$BotNick won,/i) {
  302.  
  303.                 my $alarm_id = $irc->delay( [ privmsg => "#wwolf" => "Woohoo! I won. :D" ], 1 );
  304.  
  305.                 while ( ($key, $value) = each %WW ) {
  306.  
  307.                     $WW{$key} = "";
  308.  
  309.                 }
  310.  
  311.             }
  312.  
  313.             elsif($UserMsg =~ /^$BotNick lost,/i) {
  314.  
  315.                 my $alarm_id = $irc->delay( [ privmsg => "#wwolf" => ";~; I didn't think I'd lose..." ], 1 );
  316.  
  317.  
  318.  
  319.                 while ( ($key, $value) = each %WW ) {
  320.  
  321.                     $WW{$key} = "";
  322.  
  323.                 }
  324.  
  325.             }
  326.  
  327.             elsif($UserMsg =~ /^$BotNick.*?wolf/i) {
  328.  
  329.                 @rray = ($UserNick." is lying.", $UserNick." only wants to make me lose ;~;", "Not uh.", "Jeez, blaming me already...");
  330.  
  331.                 $irc->yield(privmsg => "#wwolf" => $rray[int(rand(@rray))]) if(rand(100) > 50);
  332.  
  333.             }
  334.  
  335.             elsif($UserMsg =~ /^The game is over\.$|^Game cancelled\./i) {
  336.  
  337.                 while ( ($key, $value) = each %WW ) {
  338.  
  339.                     $WW{$key} = "";
  340.  
  341.                 }
  342.  
  343.             }
  344.  
  345.             elsif($UserMsg =~ /^($BotNick|Bots), what are you/i) {
  346.  
  347.                 if($WW{"MyType"} =~ /Wolf|Village Idiot/) {
  348.  
  349.                     $irc->yield(privmsg => "#WWolf" => "I am a Villager.");
  350.  
  351.                 }
  352.  
  353.                 else {
  354.  
  355.                     $irc->yield(privmsg => "#WWolf" => "I am a ".$WW{"MyType"}.".");
  356.  
  357.                 }
  358.  
  359.             }
  360.  
  361.             elsif($UserMsg =~ /Active Roles: (.*)/i) {
  362.  
  363.                 $WW{"Roles"} = $1;
  364.  
  365.             }
  366.  
  367.             elsif($UserMsg =~ /(.*?) (has joined|has started)/i) {
  368.  
  369.                 if($1 =~ /$BotNick/) { return 0; }
  370.  
  371.                 $WW{"Players"} = $WW{"Players"}.$1." ";
  372.  
  373.                 @WWPlayers = split / /, $WW{"Players"};
  374.  
  375.                 print "Updating players...\n".@WWPlayers."\n";
  376.  
  377.             }
  378.  
  379.             elsif($UserMsg =~ /^(.*) (has left the game|struggles vainly|was)/i) {
  380.  
  381.                 $WW{"Players"} =~ s/$1 //igs;
  382.  
  383.                 @WWPlayers = split / /, $WW{"Players"};
  384.  
  385.                 print "Updating players...\n".@WWPlayers."\n";
  386.  
  387.             }
  388.  
  389.             elsif($UserMsg =~ /has cast their vote for (.*?)!/i) {
  390.  
  391.                 $tring = $1;
  392.  
  393.                 $WW{"Votes".Regexit($tring)}++;
  394.  
  395.                 if(($WW{"Votes".Regexit($tring)} > $WW{"MostVoted"}) && (Regexit($tring) !~ /$WW{"MostVotedName"}/)) {
  396.  
  397.                     $WW{"MostVoted"} = $WW{"Votes".Regexit($tring)};
  398.  
  399.                     $WW{"MostVotedName"} = Regexit($tring);
  400.  
  401.                     $irc->yield(privmsg => "WolfBot" => "vote ".$tring) if((int(rand(100)) > 80) && ($tring !~ /$BotNick/i));
  402.  
  403.                 }
  404.  
  405.             }
  406.  
  407.             elsif($UserMsg =~ /seconds to send your votes/i) {
  408.  
  409.                 $WW{"MostVoted"}="";
  410.  
  411.                 $WW{"MostVotedName"}="";
  412.  
  413.                 if($WW{"Vote"} !~ /^$/) {
  414.  
  415.  
  416.  
  417.                     my $alarm_id = $irc->delay( [ privmsg => "WolfBot" => "vote ".$WW{"Vote"} ], 5 );
  418.  
  419.                 }
  420.  
  421.                 elsif(int(rand(100)) > 70) {
  422.  
  423.                     my $alarm_id = $irc->delay( [ privmsg => "WolfBot" => "vote ".$WWPlayers[int(rand(@WWPlayers))] ], 5 );
  424.  
  425.                 }
  426.  
  427.                 $WW{"Vote"} = "";
  428.  
  429.                 if($WW{"MyType"} =~ /Village Idiot/i) {
  430.  
  431.                     $WW{"Vote"} = $BotNick;
  432.  
  433.                 }
  434.  
  435.             }
  436.  
  437.             if(($UserNick =~ /WolfBot/i) && ($Event =~ /(NOTICE|PRIVMSG|CHANMSG)/)) {
  438.  
  439.                 if($UserMsg =~ /You are a wolf!/i) {
  440.  
  441.                     $WW{"MyType"} = "Wolf";
  442.  
  443.                     my $alarm_id = $irc->delay( [ privmsg => "#WWolf" => $WWPlayers[int(rand(@WWPlayers))]." is Wolf." ], 50 ) if($WW{"Roles"} =~ /Idiot/i);
  444.  
  445.                     $WW{"Vote"} = $BotNick;
  446.  
  447.                 }
  448.  
  449.                 elsif($UserMsg =~ /You are the finder!/i) {
  450.  
  451.                     $WW{"MyType"} = "Finder";
  452.  
  453.                 }
  454.  
  455.                 elsif($UserMsg =~ /You are the seer!/i) {
  456.  
  457.                     $WW{"MyType"} = "Seer";
  458.  
  459.                 }
  460.  
  461.                 elsif($UserMsg =~ /You are the doppleganger!/i) {
  462.  
  463.                     $WW{"MyType"} = "Doppleganger";
  464.  
  465.                 }
  466.  
  467.                 elsif($UserMsg =~ /You are the angel!/i) {
  468.  
  469.                     $WW{"MyType"} = "Angel";
  470.  
  471.                 }
  472.  
  473.                 elsif($UserMsg =~ /You are the Village Idiot!/i) {
  474.  
  475.                     $WW{"MyType"} = "Village Idiot";
  476.  
  477.                     my $alarm_id = $irc->delay( [ privmsg => "#WWolf" => $WWPlayers[int(rand(@WWPlayers))]." is Wolf." ], 50 );
  478.  
  479.                     $WW{"Vote"} = $BotNick;
  480.  
  481.                 }
  482.  
  483.                 elsif($UserMsg =~ /into (a|an) (.*?)!/i) {
  484.  
  485.                     $tring = $2;
  486.  
  487.                     if($tring =~ /werewolf/i) {
  488.  
  489.                         $WW{"MyType"} = "Wolf";
  490.  
  491.                         my $alarm_id = $irc->delay( [ privmsg => "#WWolf" => $WWPlayers[int(rand(@WWPlayers))]." is Wolf." ], 50 ) if($WW{"Roles"} =~ /Idiot/i);
  492.  
  493.  
  494.  
  495.                         $WW{"Vote"} = $BotNick;
  496.  
  497.                     }
  498.  
  499.                     if($tring =~ /village idiot/i) {
  500.  
  501.                         $WW{"MyType"} = "Village Idiot";
  502.  
  503.                         my $alarm_id = $irc->delay( [ privmsg => "#WWolf" => $WWPlayers[int(rand(@WWPlayers))]." is Wolf." ], 50 );
  504.  
  505.                         $WW{"Vote"} = $BotNick;
  506.  
  507.                     }
  508.  
  509.                     if($tring =~ /angel/i) { $WW{"MyType"} = "Angel"; }
  510.  
  511.                     if($tring =~ /seer/i) { $WW{"MyType"} = "Seer"; }
  512.  
  513.                     if($tring =~ /finder/i) { $WW{"MyType"} = "Finder"; }
  514.  
  515.                     else {
  516.  
  517.                         $WW{"MyType"} = $tring;
  518.  
  519.                     }
  520.  
  521.                 }
  522.  
  523.                 elsif($UserMsg =~ /You have 45/i) {
  524.  
  525.                     if($WW{"MyType"} =~ /Wolf/i) {
  526.  
  527.                         $irc->yield(privmsg => "wolfbot" => "kill ".$WWPlayers[int(rand(@WWPlayers))]);
  528.  
  529.                     }
  530.  
  531.                     elsif($WW{"MyType"} =~ /Seer/i) {
  532.  
  533.                         $WW{"Target"} = $WWPlayers[0];
  534.  
  535.                         $WW{"Players"} =~ s/$WWPlayers[0] //igs;
  536.  
  537.                         @WWPlayers = split / /, $WW{"Players"};
  538.  
  539.                         $irc->yield(privmsg => "wolfbot" => "see ".$WW{"Target"});
  540.  
  541.                     }
  542.  
  543.                     elsif($WW{"MyType"} =~ /Finder/i) {
  544.  
  545.                         $WW{"Target"} = $WWPlayers[0];
  546.  
  547.                         $WW{"Players"} =~ s/$WWPlayers[0] //igs;
  548.  
  549.                         @WWPlayers = split / /, $WW{"Players"};
  550.  
  551.                         $irc->yield(privmsg => "wolfbot" => "find ".$WW{"Target"});
  552.  
  553.                     }
  554.  
  555.                     if($WW{"MyType"} =~ /Doppleganger/i) {
  556.  
  557.                         $WW{"Target"} = $WWPlayers[int(rand(@WWPlayers))];
  558.  
  559.                         $irc->yield(privmsg => "wolfbot" => "dopple ".$WW{"Target"});
  560.  
  561.                     }
  562.  
  563.                     if($WW{"MyType"} =~ /Angel/i) {
  564.  
  565.                         $WW{"Target"} = $WWPlayers[int(rand(@WWPlayers))];
  566.  
  567.                         $irc->yield(privmsg => "wolfbot" => "shield ".$WW{"Target"});
  568.  
  569.  
  570.  
  571.                     }
  572.  
  573.                 }
  574.  
  575.                 elsif($UserMsg =~ /(.*?) is (a|an) (.*?)!/i) {
  576.  
  577.                     $tring = $1;
  578.  
  579.                     $tringt = $3;
  580.  
  581.                     if($tringt =~ /Wolf/i) {
  582.  
  583.                         my $alarm_id = $irc->delay( [ privmsg => "#WWolf" => $tring." is Wolf." ], 5 );
  584.  
  585.                         $WW{"Vote"} = $tring;
  586.  
  587.                     }
  588.  
  589.                     elsif($tringt =~ /Idiot/i) {
  590.  
  591.                         my $alarm_id = $irc->delay( [ privmsg => "#WWolf" => $tring." is Village idiot." ], 5 );
  592.  
  593.                     }
  594.  
  595.                     elsif($tringt =~ /villager/i) {
  596.  
  597.                         my $alarm_id = $irc->delay( [ privmsg => "#WWolf" => $tring." is Villager." ], 5 );
  598.  
  599.                     }
  600.  
  601.                     elsif($tringt =~ /Angel/i) {
  602.  
  603.                         my $alarm_id = $irc->delay( [ privmsg => $tring => "I'm seer, and you're angel, right? Protect me, I'll keep looking for the wolf." ], 2 );
  604.  
  605.                     }
  606.  
  607.                     elsif($tringt =~ /Doppleganger/i) {
  608.  
  609.                         my $alarm_id = $irc->delay( [ privmsg => $tring => "Dopple me for seer!" ], 2 );
  610.  
  611.                     }
  612.  
  613.                 }
  614.  
  615.                 elsif($UserMsg =~ /(.*?) targe(t*?)ed (.*?)!/i) {
  616.  
  617.                     $tring = $1;
  618.  
  619.                     $tringt = $3;
  620.  
  621.                     my $alarm_id = $irc->delay( [ privmsg => "#WWolf" => $tring." targetted ".$tringt."." ], 5 );
  622.  
  623.                     $WW{"Vote"} = $tring;
  624.  
  625.                 }
  626.  
  627.                 elsif($UserMsg =~ /The (wolves|other wolves) are: (.*)/i) {
  628.  
  629.                     @WWolfs = split /, /, $1;
  630.  
  631.                     print "Updating players...\n";
  632.  
  633.                     foreach (@WWolfs) {
  634.  
  635.                         $WW{"Players"} =~ s/$_ //gs;
  636.  
  637.                         @WWPlayers = split / /, $WW{"Players"};
  638.  
  639.                         print "Updating players...\n".@WWPlayers."\n";
  640.  
  641.                     }
  642.  
  643.                 }
  644.  
  645.             }
  646.  
  647.         }
  648.  
  649.        
  650.  
  651.         ################
  652.  
  653.         #Owner commands#
  654.  
  655.         ################
  656.  
  657.         if($_[4] =~ /^${CmdPrefix}Do (.*)/i) {
  658.  
  659.             @rray = split / /, $1;
  660.  
  661.             if($UserNick =~ /^$BotOwner$/i) {
  662.  
  663.                 $irc->yield(@rray);
  664.  
  665.             }
  666.  
  667.         }
  668.  
  669.         elsif($_[4] =~ /^${CmdPrefix}Setv \$(.*?) (.*)/i) {
  670.  
  671.             $tring = $1;
  672.  
  673.             $tringt = $2;
  674.  
  675.             if($UserNick =~ /^$BotOwner$/i) {
  676.  
  677.                 ${$tring} = $tringt;
  678.  
  679.                 Command($Com."$tring set to $tringt");
  680.  
  681.             }
  682.  
  683.         }
  684.  
  685.         elsif($UserMsg =~ /^${CmdPrefix}Vars \$(.*)/i) {
  686.  
  687.             $tring = $1;
  688.  
  689.             if($UserNick =~ /^$BotOwner$/i) {
  690.  
  691.                 Command($Com."${$tring}") if(${$tring} !~ /$BotPass/);
  692.  
  693.             }
  694.  
  695.         }
  696.  
  697.         elsif($UserMsg =~ /^${CmdPrefix}DefCon (.*)/i) {
  698.  
  699.             $tring = $1;
  700.  
  701.             if($UserNick =~ /^$BotOwner$/i) {
  702.  
  703.                 if($tring !~ /\D/) {
  704.  
  705.                     @rray = split /\s/, $tring;
  706.  
  707.                     $DefCon = $rray[0];
  708.  
  709.                     Command($Com."DefCon setting changed to $rray[0]");
  710.  
  711.                 }
  712.  
  713.                 elsif($tring =~ /Current/i) {
  714.  
  715.                     Command($Com."Current DefCon setting is $DefCon");
  716.  
  717.                 }
  718.  
  719.             }
  720.  
  721.         }
  722.  
  723.         elsif($UserMsg =~ /^${CmdPrefix}Nick (.*)/i) {
  724.  
  725.             $tring = $1;
  726.  
  727.             if($UserNick =~ /^$BotOwner$/i) {
  728.  
  729.                 $BotNick = $tring;
  730.  
  731.                 $irc->yield(nick => $tring);
  732.  
  733.             }
  734.  
  735.         }
  736.  
  737.         elsif($UserMsg =~ /^${CmdPrefix}Amsg (.*)/i) {
  738.  
  739.             $tring = $1;
  740.  
  741.             open DATA, "<".$BotPath.(split / /, $Connect)[0]."-AutoJoin.txt";
  742.  
  743.             @Channels=<DATA>;
  744.  
  745.             close DATA;chomp(@Channels);
  746.  
  747.             $BotChannels = $Channels[0];
  748.  
  749.             $irc->yield(join => $BotChannels);
  750.  
  751.             if($UserNick =~ /^$BotOwner$/i) {
  752.  
  753.                 $irc->yield(privmsg => $BotChannels => $tring);
  754.  
  755.             }
  756.  
  757.         }
  758.  
  759.  
  760.  
  761.         ######
  762.  
  763.         #Coin#
  764.  
  765.         ######
  766.  
  767.         elsif($UserMsg =~ /^${CmdPrefix}Coin/i) {
  768.  
  769.             $Coin = rand(100);
  770.  
  771.             if($Coin > 50) {
  772.  
  773.                 Command($Com."Heads");
  774.  
  775.             }
  776.  
  777.             else {
  778.  
  779.                 Command($Com."Tails");
  780.  
  781.             }
  782.  
  783.         }
  784.  
  785.  
  786.  
  787.        
  788.  
  789.         ##################
  790.  
  791.         #Guess The Number#
  792.  
  793.         ##################
  794.  
  795.         elsif($UserMsg =~ /^${CmdPrefix}gtn (.*)/i) {
  796.  
  797.             $tring = $1;
  798.  
  799.             @rray = split /\s/, $tring;
  800.  
  801.             if($DefCon > "4") {
  802.  
  803.                 if($GTNstat =~ "OFF") {
  804.  
  805.                     $GTNstat = "ON";
  806.  
  807.                     $GTN = int(rand(100));
  808.  
  809.                     Command($Com."Guess the Number is now on.  Use ${CmdPrefix}gtn <number from 1 to 100> to guess.");
  810.  
  811.                 }
  812.  
  813.                 elsif($rray[0] =~ /OFF/i) {
  814.  
  815.                     $GTNstat = "OFF";
  816.  
  817.                     $GTN = "";
  818.  
  819.                     Command($Com."Guess the Number has been cancelled.");
  820.  
  821.                 }
  822.  
  823.                 elsif($GTNstat =~ "ON") {
  824.  
  825.                     if($rray[0] !~ /\D/) {
  826.  
  827.                         if($rray[0] == $GTN) {
  828.  
  829.                             Command($Com."$rray[0] is correct.");
  830.  
  831.                             Command($Com."$UserNick wins.");
  832.  
  833.                             $GTNstat = "OFF";
  834.  
  835.                             $GTN = "";
  836.  
  837.                         }
  838.  
  839.                         elsif($rray[0] !~ $GTN) {
  840.  
  841.                             if($rray[0] < $GTN) {
  842.  
  843.                                 Command($Com."$rray[0] is incorrect.  Try a higher number.");
  844.  
  845.                             }
  846.  
  847.                             elsif($rray[0] > $GTN) {
  848.  
  849.                                 Command($Com."$rray[0] is incorrect.  Try a lower number.");
  850.  
  851.                             }
  852.  
  853.                         }
  854.  
  855.                     }
  856.  
  857.                     else {
  858.  
  859.                         Command($Com."Please just use numbers.");
  860.  
  861.                     }
  862.  
  863.                 }
  864.  
  865.                 else {
  866.  
  867.                     Command($Com."Variable confliction.  Guess the Number cancelled.");
  868.  
  869.                     $GTNstat = "OFF";
  870.  
  871.                     $GTN = "";
  872.  
  873.                 }
  874.  
  875.             }
  876.  
  877.         }
  878.  
  879.  
  880.  
  881.         ###########
  882.  
  883.         #Query Spy#
  884.  
  885.         ###########
  886.  
  887.         elsif($UserMsg =~ /^${CmdPrefix}QuerySpy (.*)/i) {
  888.  
  889.             $tring = $1;
  890.  
  891.             @rray = split /\s/, $tring;
  892.  
  893.             if($UserNick =~ /^$BotOwner$/i) {
  894.  
  895.                 if($rray[0] =~ /^Start/i) {
  896.  
  897.                     if($QuerySpy =~ /^ON/i) {
  898.  
  899.                         Command($Com."QuerySpy is already on.");
  900.  
  901.                     }
  902.  
  903.                     else {
  904.  
  905.                         $QuerySpy = "ON";
  906.  
  907.                         $QueryAt = "atLog";
  908.  
  909.                         Command($Com."QuerySpy has been initiated.  Would you like to enable logging? ${CmdPrefix}QS Yes or ${CmdPrefix}QS No.");
  910.  
  911.                     }
  912.  
  913.                 }
  914.  
  915.                 elsif($rray[0] =~ /^Stop/i) {
  916.  
  917.                     if($QuerySpy =~ /^OFF/i) {
  918.  
  919.                         Command($Com."QuerySpy is already off.");
  920.  
  921.                     }
  922.  
  923.                     else {
  924.  
  925.                         $QuerySpy = "OFF";
  926.  
  927.                         $QueryAt = "";
  928.  
  929.                         $QSTarg = "";
  930.  
  931.                         $QueryChan = "";
  932.  
  933.                         $QueryLog = "";
  934.  
  935.                         Command($Com."QuerySpy has been disabled.");
  936.  
  937.                     }
  938.  
  939.                 }
  940.  
  941.                 else {
  942.  
  943.                     Command($Com."That is not a valid option.");
  944.  
  945.                 }
  946.  
  947.             }
  948.  
  949.         }
  950.  
  951.         elsif($UserMsg =~ /^${CmdPrefix}QS (.*)/i) {
  952.  
  953.             $tring = $1;
  954.  
  955.             @rray = split /\s/, $tring;
  956.  
  957.             if($UserNick =~ /^$BotOwner$/i) {
  958.  
  959.                 if($QueryAt =~ /^atLog/i) {
  960.  
  961.                     if($rray[0] =~ /^Yes/i) {
  962.  
  963.                         $QueryLog = "Yes";
  964.  
  965.                         Command($Com."Logging is now enabled.  Please choose a target via ${CmdPrefix}Target <target>");
  966.  
  967.                         $QueryAt = "atTarg";
  968.  
  969.                     }
  970.  
  971.                     elsif($rray[0] =~ /^No/i) {
  972.  
  973.                         $QueryLog = "No";
  974.  
  975.                         Command($Com."Logging is now disabled.  Please choose a target via ${CmdPrefix}Target <target>");
  976.  
  977.                         $QueryAt = "atTarg";
  978.  
  979.                     }
  980.  
  981.                     else {
  982.  
  983.                         Command($Com."Please use only Yes or No options.");
  984.  
  985.                     }
  986.  
  987.                 }
  988.  
  989.             }
  990.  
  991.         }
  992.  
  993.         elsif($UserMsg =~ /^${CmdPrefix}Target (.*)/i) {
  994.  
  995.             $tring = $1;
  996.  
  997.             @rray = split /\s/, $tring;
  998.  
  999.             if($QueryAt =~ /^atTarg/i) {
  1000.  
  1001.                 if($UserNick =~ /^$BotOwner$/i) {
  1002.  
  1003.                     $QSTarg = $rray[0];
  1004.  
  1005.                     $QueryAt = "atWhere";
  1006.  
  1007.                     Command($Com."QuerySpy target set to $QSTarg");
  1008.  
  1009.                     Command($Com."Choose where messages will be send with ${CmdPrefix}Where");
  1010.  
  1011.                 }
  1012.  
  1013.             }
  1014.  
  1015.         }
  1016.  
  1017.         elsif($UserMsg =~ /^${CmdPrefix}Where (.*)/i) {
  1018.  
  1019.             $tring = $1;
  1020.  
  1021.             @rray = split /\s/, $tring;
  1022.  
  1023.             if($UserNick =~ /^$BotOwner$/i) {
  1024.  
  1025.                 if($QueryAt =~ /^atWhere/i) {
  1026.  
  1027.                     $QueryChan = $rray[0];
  1028.  
  1029.                     $QueryAt = "atSay";
  1030.  
  1031.                     if($QueryLog =~ /^Yes/i) {
  1032.  
  1033.                         open DATA, ">>".$BotPath."QueryLogs.txt";
  1034.  
  1035.                         print DATA "QuerySpy session started with $QSTarg"."\n";
  1036.  
  1037.                         close DATA;
  1038.  
  1039.                     }
  1040.  
  1041.                     Command($Com."QuerySpy channel set to $QueryChan");
  1042.  
  1043.                 }
  1044.  
  1045.             }
  1046.  
  1047.         }
  1048.  
  1049.         elsif($UserNick =~ /^$QSTarg/i) {
  1050.  
  1051.             $tring = $UserMsg;
  1052.  
  1053.             @rray = split (/\s/, $tring);
  1054.  
  1055.             if($QueryAt =~ /^atSay/i) {
  1056.  
  1057.                 if($Event =~ /PRIVMSG/) {
  1058.  
  1059.                     $irc->yield(privmsg.$QueryWhere."$UserNick ~~ $UserMsg");
  1060.  
  1061.                     if($QueryLog =~ /^Yes/i) {
  1062.  
  1063.                         open DATA, ">>".$BotPath."QueryLogs.txt";
  1064.  
  1065.                         print DATA "QSTarg ~~ $UserMsg"."\n";
  1066.  
  1067.                         close DATA;
  1068.  
  1069.                     }
  1070.  
  1071.                 }
  1072.  
  1073.             }
  1074.  
  1075.         }
  1076.  
  1077.         elsif($UserMsg =~ /^${CmdPrefix}Say (.*)/i) {
  1078.  
  1079.             if($UserNick =~ /^$BotOwner$/i) {
  1080.  
  1081.                 if($QueryAt =~ /^atSay/i) {
  1082.  
  1083.                     $irc->yield(privmsg.$QSTarg."$1");
  1084.  
  1085.                     $irc->yield(privmsg.$QueryChan.$1);
  1086.  
  1087.                     if($QueryLog =~ /^Yes/i) {
  1088.  
  1089.                         open DATA, ">>".$Botpath."QueryLogs.txt";
  1090.  
  1091.                         print DATA "$BotOwner ~~ ".$1."\n";
  1092.  
  1093.                         close DATA
  1094.  
  1095.                     }
  1096.  
  1097.                 }
  1098.  
  1099.             }
  1100.  
  1101.         }
  1102.  
  1103.  
  1104.  
  1105.  
  1106.  
  1107.         ###############
  1108.  
  1109.         #Truth or Dare#
  1110.  
  1111.         ###############
  1112.  
  1113.         elsif($UserMsg =~ /^${CmdPrefix}TD/i) {
  1114.  
  1115.             if($DefCon > 3) {
  1116.  
  1117.                 if($TDstat =~ "OFF") {
  1118.  
  1119.                     $TDstat = "ON";
  1120.  
  1121.                     $TDwhere = "atMode";
  1122.  
  1123.                     $TDtarg = $UserNick;
  1124.  
  1125.                     Command($Com."Truth or Dare has begun.  Please choose either ${CmdPrefix}PG13 mode or ${CmdPrefix}XXX mode.");
  1126.  
  1127.                 }
  1128.  
  1129.                 elsif($TDstat =~ "ON") {
  1130.  
  1131.                     Command($Com."Truth or Dare is already on.");
  1132.  
  1133.                 }
  1134.  
  1135.                 else {
  1136.  
  1137.                     Command($Com."Variable confliction.  Ending.");
  1138.  
  1139.                     $TDwhere = "";
  1140.  
  1141.                     $TDstat = "OFF";
  1142.  
  1143.                     $TDtarg = "";
  1144.  
  1145.                 }
  1146.  
  1147.             }
  1148.  
  1149.         }
  1150.  
  1151.         elsif($UserMsg =~ /^${CmdPrefix}PG13/i) {
  1152.  
  1153.             if(($DefCon > 3) && ($TDwhere = "atMode")) {
  1154.  
  1155.                 $TDmode = "PG13";
  1156.  
  1157.                 $TDwhere = "atPick";
  1158.  
  1159.                 Command($Com."Mode set to PG13.");
  1160.  
  1161.                 Command($Com."Please pick the first target, $TDtarg");
  1162.  
  1163.             }
  1164.  
  1165.         }
  1166.  
  1167.                 elsif($UserMsg =~ /^${CmdPrefix}XXX/i) {
  1168.  
  1169.                         if(($DefCon > 3) && ($TDwhere = "atMode")) {
  1170.  
  1171.                                 $TDmode = "XXX";
  1172.  
  1173.                                 $TDwhere = "atPick";
  1174.  
  1175.                                 Command($Com."Mode set to XXX.");
  1176.  
  1177.                                 Command($Com."Please pick the first target, $TDtarg");
  1178.  
  1179.                         }
  1180.  
  1181.                 }
  1182.  
  1183.         elsif($UserMsg =~ /^${CmdPrefix}Pick (.*)/i) {
  1184.  
  1185.             $tring = $1;
  1186.  
  1187.             @rray = split /\s/, $tring;
  1188.  
  1189.             if(($DefCon > 3) && ($TDwhere = "atPick")) {
  1190.  
  1191.                 if($rray[0] !~ $BotNick) {
  1192.  
  1193.                     $TDtarg = $rray[1];
  1194.  
  1195.                     Command($Com."Please choose either ${CmdPrefix}Truth or ${CmdPrefix}Dare.");
  1196.  
  1197.                     $TDwhere = "atChoose";
  1198.  
  1199.                 }
  1200.  
  1201.             }
  1202.  
  1203.         }
  1204.  
  1205.         elsif($UserMsg =~ /^${CmdPrefix}Truth/i) {
  1206.  
  1207.             if($DefCon > 3) {
  1208.  
  1209.                 if($TDmode = "PG13") {
  1210.  
  1211.                     open DATA, "<".$BotPath."PG13Truth.txt";
  1212.  
  1213.                     @PG13Truth=<DATA>;
  1214.  
  1215.                     close DATA;
  1216.  
  1217.                     $TDwhere = "atPick";
  1218.  
  1219.                     Command($Com."$PG13Truth[int(rand(@PG13Truth))]");
  1220.  
  1221.                     Command($Com."Please type ${CmdPrefix}Pick <nick> after answering.");
  1222.  
  1223.                 }
  1224.  
  1225.                 if($TDmode = "XXX") {
  1226.  
  1227.                     open DATA, "<".$BotPath."XXXTruth.txt";
  1228.  
  1229.                     @PG13Truth=<DATA>;
  1230.  
  1231.                     close DATA;
  1232.  
  1233.                     $TDwhere = "atPick";
  1234.  
  1235.                     Command($Com."$XXXTruth[int(rand(@XXXTruth))]");
  1236.  
  1237.                     Command($Com."Please type ${CmdPrefix}Pick <nick> after answering.");
  1238.  
  1239.                 }
  1240.  
  1241.             }
  1242.  
  1243.         }
  1244.  
  1245.                 elsif($UserMsg =~ /^${CmdPrefix}Dare/i) {
  1246.  
  1247.                         if($DefCon > 3) {
  1248.  
  1249.                                 if($TDmode = "PG13") {
  1250.  
  1251.                                         open DATA, "<".$BotPath."PG13Dare.txt";
  1252.  
  1253.                                         @PG13Truth=<DATA>;
  1254.  
  1255.                                         close DATA;
  1256.  
  1257.                     $TDwhere = "atPick";
  1258.  
  1259.                                         Command($Com."$PG13Dare[int(rand(@PG13Dare))]");
  1260.  
  1261.                                         Command($Com."Please type ${CmdPrefix}Pick <nick> after answering.");
  1262.  
  1263.                                 }
  1264.  
  1265.                                 if($TDmode = "XXX") {
  1266.  
  1267.                                         open DATA, "<".$BotPath."XXXDare.txt";
  1268.  
  1269.                                         @PG13Truth=<DATA>;
  1270.  
  1271.                                         close DATA;
  1272.  
  1273.                     $TDwhere = "atPick";
  1274.  
  1275.                                         Command($Com."$XXXDare[int(rand(@XXXDare))]");
  1276.  
  1277.                                         Command($Com."Please type ${CmdPrefix}Pick <nick> after answering.");
  1278.  
  1279.                                 }
  1280.  
  1281.                         }
  1282.  
  1283.                 }
  1284.  
  1285.         elsif($UserMsg =~ /^${CmdPrefix}TD-/i) {
  1286.  
  1287.             if($TDstat = "ON") {
  1288.  
  1289.                 $TDstat = "OFF";
  1290.  
  1291.                 Command($Com."Truth or Dare has been disabled.");
  1292.  
  1293.                 $TDwhere = "";
  1294.  
  1295.                 $TDmode = "";
  1296.  
  1297.                 $TDtarg = "";
  1298.  
  1299.             }
  1300.  
  1301.         }
  1302.  
  1303.        
  1304.  
  1305.         ######
  1306.  
  1307.         #Math#
  1308.  
  1309.         ######
  1310.  
  1311.         elsif($UserMsg =~ /^${CmdPrefix}Math (.*)/i) {
  1312.  
  1313.             $tring = $1;
  1314.  
  1315.             @rray = split /\s/, $tring;
  1316.  
  1317.             if($DefCon > 1) {
  1318.  
  1319.                 if($rray[0] =~ /Calc/i) {
  1320.  
  1321.                     $MathAns = eval $rray[1];
  1322.  
  1323.                     Command($Com."The answer is $MathAns");
  1324.  
  1325.                 }
  1326.  
  1327.                 elsif($rray[0] =~ /Abs/i) {
  1328.  
  1329.                     $MathAns = abs $rray[1];
  1330.  
  1331.                     Command($Com."The answer is $MathAns");
  1332.  
  1333.                 }
  1334.  
  1335.                 elsif($rray[0] =~ /Cos/i) {
  1336.  
  1337.                     $MathAns = cos $rray[1];
  1338.  
  1339.                     Command($Com."The answer is $MathAns");
  1340.  
  1341.                 }
  1342.  
  1343.                 elsif($rray[0] =~ /Exp/i) {
  1344.  
  1345.                     $MathAns = exp $rray[1];
  1346.  
  1347.                     Command($Com."The answer is $MathAns");
  1348.  
  1349.                 }
  1350.  
  1351.                 elsif($rray[0] =~ /Log/i) {
  1352.  
  1353.                     $MathAns = log $rray[1];
  1354.  
  1355.                     Command($Com."The answer is $MathAns");
  1356.  
  1357.                 }
  1358.  
  1359.                 elsif($rray[0] =~ /Sin/i) {
  1360.  
  1361.                     $MathAns = sin $rray[1];
  1362.  
  1363.                     Command($Com."The answer is $MathAns");
  1364.  
  1365.                 }
  1366.  
  1367.                 elsif($rray[0] =~ /Sqrt/i) {
  1368.  
  1369.                     $MathAns = sqrt $rray[1];
  1370.  
  1371.                     Command($Com."The answer is $MathAns");
  1372.  
  1373.                 }
  1374.  
  1375.             }
  1376.  
  1377.         }
  1378.  
  1379.  
  1380.  
  1381.  
  1382.  
  1383.         #####################
  1384.  
  1385.         #Important Commands #
  1386.  
  1387.         #####################
  1388.  
  1389.         elsif($UserMsg =~ /^${CmdPrefix}(Help|Commands)$/i) {
  1390.  
  1391.             if($DefCon > 1) {
  1392.  
  1393.                 Command($Com."!GTN - Starts Guess the Number game.  Remember to include a space after !gtn or it won't start correctly.");
  1394.  
  1395.                 Command($Com."!DefCon - Sets DefCon level.  Only usable by owner.");
  1396.  
  1397.                 Command($Com."!Math - Performs mathematical operations.  Currently supported:");
  1398.  
  1399.                 Command($Com."Math(cont) - abs (absolute value), cos (cosine), exp (exponent), log (logarithm), sin (sine), sqrt (square root)");
  1400.  
  1401.                 Command($Com."Math(cont) - calc (acts as a calculator)");
  1402.  
  1403.             }
  1404.  
  1405.         }
  1406.  
  1407.         elsif($UserMsg =~ /^${CmdPrefix}AJ$/i) {
  1408.  
  1409.             if($DefCon > 2) {
  1410.  
  1411.                 open DATA, "<".$BotPath.(split / /, $Connect)[0].(split / /, $Connect)[1]."-AutoJoin.txt";
  1412.  
  1413.                 @Channels=<DATA>;
  1414.  
  1415.                 close DATA;
  1416.  
  1417.                 if($Channels[0] !~ /$Where,/i) {
  1418.  
  1419.                     open DATA, ">>".$BotPath.(split / /, $Connect)[0].(split / /, $Connect)[1]."-Autojoin.txt"; print DATA "$Where,";
  1420.  
  1421.                     Command($Com."Channel added to AutoJoin.");
  1422.  
  1423.                 }
  1424.  
  1425.                 else {
  1426.  
  1427.                     Command($Com."Channel already in AutoJoin.");
  1428.  
  1429.                 }
  1430.  
  1431.             }
  1432.  
  1433.         }
  1434.  
  1435.         #####################
  1436.  
  1437.         #    END        #
  1438.  
  1439.         #####################
  1440.  
  1441.     }
  1442.  
  1443. }
  1444.  
  1445. sub Regexit {
  1446.  
  1447.     ($Reg = $_[0]) =~ s/\\/\\\\/gs;
  1448.  
  1449.     $Reg =~ s/(\?|\(|\)|\||\[|\|\{|\}|\.)/\\$1/gs;
  1450.  
  1451.     $Reg =~ s/\*/\(\.\*\)/gs;
  1452.  
  1453.     return $Reg;
  1454.  
  1455. }
  1456.  
  1457. sub CREATEUser {
  1458.  
  1459.     if($DBUsers !~ /(.*)<$_[0] :(.*?)>(.*)/i) {
  1460.  
  1461.         open DATA, ">>".$BotPath."DBUsers.txt";
  1462.  
  1463.         print DATA "<".$_[0]." : \\\[Access 1\\\] >";
  1464.  
  1465.         close DATA;
  1466.  
  1467.         open DATA, "<".$BotPath."DBUsers.txt";
  1468.  
  1469.         @DB = <DATA>;
  1470.  
  1471.         chomp($DBUsers = $DB[0]);
  1472.  
  1473.         close DATA;
  1474.  
  1475.     }
  1476.  
  1477. }
  1478.  
  1479. sub SpamProtect {
  1480.  
  1481.     my($Sec, $Min, $Hour, $Day, $mon, $year, $WDay, $YDay) = localtime;
  1482.  
  1483.     return (((($YDay * 24) * 60) * 60) + (($Hour * 60) * 60) + ($Min * 60) + $Sec);
  1484.  
  1485. }
  1486.  
  1487. sub Command {
  1488.  
  1489.     $PrivmsgA = $_[0];
  1490.  
  1491.     @PrivmsgB = split / /, $PrivmsgA;
  1492.  
  1493.     $ComA = shift(@PrivmsgB);
  1494.  
  1495.     $ComB = shift(@PrivmsgB);
  1496.  
  1497.     if($BotNick =~ /Luka/i) { $BotFont = "〜"; $irc->yield($ComA => $ComB => POE::Component::IRC::Common::MAGENTA.(join " ", @PrivmsgB)." 〜"); }
  1498.  
  1499.     elsif($BotNick =~ /(Rin|Len)/i) { $BotFont = "〜"; $irc->yield($ComA => $ComB => POE::Component::IRC::Common::ORANGE.(join " ", @PrivmsgB)." ☯"); }
  1500.  
  1501.     elsif($BotNick =~ /Pichu/i) { $BotFont = "⚡"; $irc->yield($ComA => $ComB => POE::Component::IRC::Common::ORANGE.(join " ", @PrivmsgB)." ⚡"); }
  1502.  
  1503.     elsif($BotNick =~ /Akul/i) { $irc->yield($ComA => $ComB => POE::Component::IRC::Common::MAGENTA.(reverse(join " ", @PrivmsgB))." 〜"); }
  1504.  
  1505.     elsif($BotNick =~ /Ukalay/i) { $irc->yield($ComA => $ComB => POE::Component::IRC::Common::MAGENTA.(PigLatin(join " ", @PrivmsgB))." 〜"); }
  1506.  
  1507.     else { $irc->yield($ComA => $ComB => (join " ", @PrivmsgB).""); }
  1508.  
  1509. }
  1510.  
  1511. sub GetTime { # This is just for timestamps, just leave it.
  1512.  
  1513.     my($Sec, $Min, $Hour, $Day, $Mon, $Year, $WDay, $YDay) = localtime;
  1514.  
  1515.     my $APM = "AM";
  1516.  
  1517.     if($Hour > 12) { $Hour -= 12; $APM = "PM"; }
  1518.  
  1519.     if($Hour < 10) { $Hour = "0".$Hour; }
  1520.  
  1521.     if($Min < 10) { $Min = "0".$Min; }
  1522.  
  1523.     if($Sec < 10) { $Sec = "0".$Sec; }
  1524.  
  1525.     return "[ $Hour:$Min:$Sec $APM ]    ";
  1526.  
  1527. }
  1528.  
  1529. # Caaz was here.
  1530.  
  1531. $poe_kernel->run();
  1532.  
  1533. exit 0;
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top