Ciao, dovrebbe essere ok, l'unica cosa è che se vuoi gestire più canali, dal momento che hai indicato:
Poi nei vari if basta che usi l'identificatore
$chan o
#:
Non ho verificato l'alias ma a occhio mi sa che c'è il rischio che non funzioni, in primis perché è definito dentro il blocco on JOIN e di solito un alias ha una sezione tutta sua a parte e poi non dovrebbe avere i vari identificativi $nick e $chan disponibili... infatti sugli altri alias li passavamo come parametri che diventavano $1 e $2.
Sullo script di David-Bot è già gestita questa cosa, insieme ai vari settaggi ed è in questo punto:
Codice: Seleziona tutto
on *:JOIN:#:{
if ($nick != $me) {
; Controllo se la protezione dal join flood è attiva per il canale
if ($gettok(%protections.join. [ $+ [ $chan ] ] [ $+ . ] [ $+ [ $network ] ],1,44) == 1) {
; Controllo che il nick non sia un op/halfop e non sia il padrone del canale e del bot, oltre a verificare che non sia nella lista dei nick esclusi dal controllo
if ($nick !isop $chan) && ($nick !ishop $chan) && ($nick != %owner. [ $+ [ $chan ] ] [ $+ . ] [ $+ [ $network ] ]) && ($nick != %proprietario. [ $+ [ $network ] ]) && ($istok(%protections.exception. [ $+ [ $chan ] ] [ $+ . ] [ $+ [ $network ] ],$nick,32) == $false) {
; Recupero i settaggi (max join, tempo)
var %maxjoin $gettok($gettok(%protections.join. [ $+ [ $chan ] ] [ $+ . ] [ $+ [ $network ] ],2,44),1,58)
var %time $gettok($gettok(%protections.join. [ $+ [ $chan ] ] [ $+ . ] [ $+ [ $network ] ],2,44),2,58)
; Imposto una variabile, che incremento di volta in volta, sulla base del numero di join effettuati dallo stesso nickname (controllo su hostname)
var %doinc inc -u $+ %time $chr(37) $+ joinflood. [ $+ [ $address($nick,2) ] ] [ $+ . ] [ $+ [ $chan ] ] [ $+ . ] [ $+ [ $network ] ]
%doinc
; Mando un avviso se il limite è stato raggiunto
if (%joinflood. [ $+ [ $address($nick,2) ] ] [ $+ . ] [ $+ [ $chan ] ] [ $+ . ] [ $+ [ $network ] ] == %maxjoin) {
notice $nick Smetti di uscire e rientrare o verrai bannato! - %logo
}
; Espello tutti i cloni dal canale relativi al nickname e imposto un ban di 300s
if (%joinflood. [ $+ [ $address($nick,2) ] ] [ $+ . ] [ $+ [ $chan ] ] [ $+ . ] [ $+ [ $network ] ] > %maxjoin) {
kickclones $nick $chan
ban -ku300 $chan $nick 2 Join Flood - %logo
unset %joinflood. [ $+ [ $address($nick,2) ] ] [ $+ . ] [ $+ [ $chan ] ] [ $+ . ] [ $+ [ $network ] ]
}
}
}
}
Comunque, come già ti dicevo, se caricassi quello script completo che già ti avevo fornito o utilizzasi David-Bot, molte di queste protezioni generiche sarebbero già incluse e per-configurate di default, con valori che puoi personalizzare per canale e anche avere la possibilità di mettere delle eccezioni per nickname.