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;