Bonjour, alors voila, pour mon bot, je voulais mettre un anti flood. au bout de X temps (après bien des heures de galere) j'ai enfin trouvé une solution qui marche a 100%.
Seul hic : le code est très moche ! J'utilise une regexp qui détecte s'il y a 5 fois (ou plus, donc) le même caractère dans la derniere phrase dite sur le salon. Et en fait je voulais savoir si quelqu'un avait une autre méthode beaucoup plus jolie niveau codage.
Voici le code :
sub on_public {
my ($conn,$event) = @_;
my $text = $event->{'args'}[0];
my @channel = $event->to;
my $nick = $event->nick;
if ($text =~ /(a{5,}|b{5,}|c{5,}|d{5,}|e{5,}|f{5,}|g{5,}|h{5,}|i{5,}|j{5,}|k{5,}|l{5,}|m{5,}|n{5,}|o{5,}|p{5,}|q{5,}|r{5,}|s{5,}|t{5,}|u{5,}|v{5,}|w{5,}|x{5,}|y{5,}|z{5,}|0{5,}|1{5,}|2{5,}|3{5,}|4{5,}|5{5,}|6{5,}|7{5,}|8{5,}|9{5,}|ù{5,}|é{5,}|è{5,}|ç{5,}|à{5,})/i) {
$conn->privmsg(@channel,"Evite le flood, $nick. (" . substr($1,0,3) . ")");
return;
}
if ($text =~ /([[:upper:].*]{5,})/) {
$conn->privmsg(@channel,"Evite les majuscules, $nick.");
}
if ($text =~ /([[:punct:]]){5,}/) {
$conn->privmsg(@channel,"Evite le flood de ponctuation, $nick. (" . substr($1,0,3) . ")");
}
}
Merci

Honorine <3 /°/ www.uaipcreations.ovh.org