1 #!/usr/bin/perl
    2 package Kikootage;
    3 use strict;
    4 
    5 Xchat::register("Kikootage","1.00","","");
    6 Xchat::hook_command ("kikoo", \&kikoo);
    7 Xchat::hook_command ("akikoo", \&akikoo);
    8 #Xchat::hook_print ("Channel Msg Hilight", \&reply);
    9 
   10 sub kikoo
   11 {
   12     if (!defined ($_[1][1]) or $_[1][1] eq "")
   13     {
   14         return Xchat::EAT_NONE;
   15     }
   16     # Récup du nick
   17     my $nick = uc $_[1][1];
   18     _kikoo ($nick);
   19     return Xchat::EAT_ALL;
   20 }
   21 
   22 sub akikoo
   23 {
   24     my @list = Xchat::get_list ("users");
   25     my $myNick = Xchat::get_info("nick");
   26     for my $user (@list)
   27     {
   28         next if $user->{'nick'} == $myNick;
   29         _kikoo ($user->{'nick'});
   30     }
   31     return Xchat::EAT_ALL;
   32 }
   33 
   34 sub reply
   35 {
   36     my $args = $_[0]; # Ref d'array contenant les données
   37     my $pseudo = shift @$args;
   38     my $text = shift @$args;
   39     #my $mode = shift @$args;
   40     #my $txthl = shift @$args;
   41 
   42     if ($text =~ m/KIKO+\s+casta\S*\s+!+\s+:o\)+/i)
   43     {
   44         _kikoo ($pseudo);
   45     }
   46     return Xchat::EAT_NONE;
   47 }
   48 
   49 sub _kikoo
   50 {
   51     my $nick = uc shift;
   52     # Couleurs
   53     my $bg = rand (16)%16 + 1;
   54     my $fg = rand (16)%16 + 1;
   55     while ($fg == $bg)
   56     {
   57         $fg = rand (16)%16 + 1;
   58     };
   59     # Nombre de lettres
   60     my $o = rand (15) + 4;
   61     my $esc = rand (15) + 4;
   62     my $par = rand (15) + 2;
   63     # Les chaines
   64     my $co = "";
   65     for (my $i = 0; $i < $o; ++$i)
   66     {
   67         $co .= "O";
   68     }
   69     my $cesc = "";
   70     for (my $i = 0; $i < $esc; ++$i)
   71     {
   72         $cesc .= "!";
   73     }
   74     my $cpar = "";
   75     for (my $i = 0; $i < $par; ++$i)
   76     {
   77         $cpar .= "p";
   78     }
   79 
   80     Xchat::command("say \cB\cC${fg},${bg} KIK${co} ${nick} ${cesc} :${cpar} ");
   81     return Xchat::EAT_NONE;
   82 }
   83 
   84 1;