12/11/2012, 10:16
Il y a une légère optimisation que je ferais: contrôler que la victime est bannie avant le reste.
D'autant plus qu'il me semble voir une erreur: si un autre utilisateur que Niubot pose un ban, tu débannis (et deop le poseur) sans vérifier si la victime doit être bannie.
Voici comment j'agencerais ton code:
D'autant plus qu'il me semble voir une erreur: si un autre utilisateur que Niubot pose un ban, tu débannis (et deop le poseur) sans vérifier si la victime doit être bannie.
Voici comment j'agencerais ton code:
TCL
namespace eval ::niuban {
variable niubotchan "#salon"
bind MODE - "* +b" [namespace current]::unban_niubot
proc unban_niubot { nick uhost hand chan mc target } {
variable niubotchan
if {[isbotnick $nick]} { return 0 }
if {[isban $target $chan]} { return 0 }
if {[string match -nocase niubot?? $nick]} {
putquick "PRIVMSG $niubotchan :unban $target $chan"
} else {
putquick "mode $chan -ob $nick $target"
puthelp "privmsg $niubotchan :\037\0034Seuls les bans via $::botnick sont autorisés !\037\0034"
}
}
}