[Résolu] rajout d'une exception sur une commande de kick
#22
Très bizarre ton script, et tout particulièrement ta boucle: tu extrais un vhost de ta liste et tu regardes s'il est égal à la liste... Passera jamais.
Ensuite, même si tu comparais le bon host, ton système ne protègerait que si l'host était le premier de la liste.

Ce que tu dois faire, c'est d'abord récupérer l'host de la victime (tu n'as a priori que son nick) puis boucler sur tous les vhosts pour savoir si oui ou non la victime est protégée.
Une fois que tu as fais ça, tu kickes ou pas...

tcl
set chanlog "#Services"
 
set vhostexempt {
	*Root@domain.tld
	*@TechAdmin.domain.tld
	*@NetAdmin.domain.tld
	*@Admin.domain.tld
	*@CoAdmin.domain.tld
	*@IRCop.domain.tld
	*@ChanMaster.domain.tld
	*@Faucheur.domain.tld
	*@Moderateur.domain.tld
	*@Moderatrice.domain.tld
	*@Operateur.domain.tld
	*@Operatrice.domain.tld
	*@Services.domain.tld
}
 
bind pub o !kr kickraison
 
proc kickraison { nick host hand channel text } {
	global cs chanlog vhostexempt
	set args [split $text]
	set victim [lindex $args 0]
	set reason [join [lrange $args 1 end]]
	if { ![onchan $victim $channel] } {
		# On s'assure que la victime est bien présente
		putserv "PRIVMSG $channel :$victim n'est pas là..."
		return 0
	}
	# on récupère son host
	set vichost [getchanhost $victim $channel]
	# on crée le "flag" protected
	set protec 0
	foreach vhost $vhostexempt {
		# pour chaque host protégé, on compare avec l'host de la victime
		if { [string match -nocase $vhost $vichost] } {
			# Match: on met le flag à 1
			set protec 1
		}
	}
	# Si la victime est protégée, on sort
	if { $protec == 1 } { return 0 }
	# Si on est là, c'est que la victime n'est pas protégée
	putserv "PRIVMSG $cs :kick $channel $victim $reason"
	putserv "PRIVMSG $chanlog :\0034$victim \00312a été kick de \0034$channel \00312par \0034$nick \00312pour la raison :\0037 $reason"
 
}



J'aurais pu me passer de "$protec" et sortir en plein milieu de la boucle, mais je ne trouve pas ça propre Smile
Répondre


Messages dans ce sujet
RE: rajout d'une exception sur une commande de kick - par CrazyCat - 01/02/2017, 17:15

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
Tchat 100% gratuit -Discutez en toute liberté