Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #================================================================================#
- # Information d'utilisation #
- #================================================================================#
- # Les Commandes actives via ce Tcl sont: #
- # #
- # .moderation --> Aide à la configuration de la modération. #
- # .listemot\002 (liste les mots)"
- # .effacermot <mot> efface un mot)"
- # .ajoutermot <mot> (ajoute un mot)" #
- # #
- # Commandes pour les canaux detection Pub #
- # .antipub listchan --> Liste des Channels Antipub #
- # .antipub <salon> off --> Efface un canal a surveiller #
- # .antipub <salon> on --> Ajoute un canal a surveiller #
- # #
- # Commandes pour les canaux detection Flood, Majuscule, Mots Interdit & Limite #
- # .modchan --> Liste les canaux #
- # .-modchan <salon> --> Efface un canal surveillé #
- # .+modchan <salon> --> Ajoute un canal a surveiller #
- # #
- #================================================================================#
- #================================================================================#
- # Configuration.
- #--------------------------------------------------------------------------------#
- # Flag d'accé autoriser à configurer la Modération de l'Eggy.
- set moderation(flag) "m|m"
- # Flag d'Exception pour ke la Modération de l'Eggy n'agisse pas sur une catégorie d'accés.
- set moderation(flagexept) "fo|fo"
- #================================================================================#
- # Configuration de la Limite salon (mode +l...).
- #--------------------------------------------------------------------------------#
- #Indiquer ici de combien la limite doit etre augmenté
- set moderation(plus) 2
- #================================================================================#
- # Configuration Publicité.
- #--------------------------------------------------------------------------------#
- # Temps apres lequel l'avertissement est oublié et le compteur des pub remis a zéro,
- # ce qui permets que si kkun fait de la pub UNE fois, se fait kicker pour warning,
- # et n'en refait que 2h plus tard, de pas le bannir (il risquerais de pas trop capter aussi)
- # par defaut le temps de remise a zero du compteur est de 30 minutes (1800 secondes)
- set moderation(pubtime) 1800
- # nombre de recidive entrainant le ban (si =3 la personne pourra faire 3 fois de la pub sans etre inquiete
- # et sera banni a la 4 eme tentative... par defaut =1)
- set moderation(nb_check) 2
- # liste des pubs interdites sur le channel.
- set moderation(pubnolist) {
- *.*.com
- *.*.fr
- *.*.net
- *.*.ru
- *.*.es
- *.*.ca
- *.*.org
- *.*.be
- *#*
- *.*@hotmail.com
- *.*@hotmail.fr
- *.*@msn.com
- *.*@msn.fr
- }
- # liste des pubs autorisées sur le channel.
- set moderation(puboklist) {
- *.
- *.
- *#
- *#
- }
- # prevenir avec un avertissement pour chaque pub envoyé dans le salon? 1/0
- set moderation(pubaverto) 1
- # quel message?
- set moderation(pubavertomsg) "4Attention! Evitez vos Publicités! La prochaine fois vous serez Expulsé!"
- # kicker pour pub? 1/0
- set moderation(pubkick) 1
- # kel raison pour le kick?
- set moderation(pubkickraison) {
- "Exclu pour pub !"
- "Si tu veux faire de la pub c'est pas l'endroit"
- "Le salon a une tete de panneau publicitaire ?!"
- }
- # bannir pour pub? 1/0
- set moderation(pubban) 1
- # bannir combien de temps? (en minute)
- set moderation(pubbantime) 5
- #================================================================================#
- # Configuration Mots Interdits.
- #--------------------------------------------------------------------------------#
- # prevenir 1 fois avant kick pour les badword? 1/0
- set moderation(badaverto) 1
- # si on previent kel est le message a envoyer?
- set moderation(badavertomsg) "4Attention! surveillez votre langage! La prochaine fois vous serez Expulsé!"
- # bannir pour badword? 1/0
- set moderation(badban) 1
- # bannir combien de temps? (en minute)
- set moderation(badbantime) 2
- # kicker pour badword? 1/0
- set moderation(badkick) 1
- # kel raison pour le kick?
- set moderation(badkickraison) {
- "Exclu 10 minutes !"
- "Pas de ca ici stp"
- "Aux chiottes la vulgarité !"
- }
- #================================================================================#
- # Configuration Répititions.
- #--------------------------------------------------------------------------------#
- # combien de repetion maxi?
- set moderation(repeatmax) 3
- # raisons de kick random pour les repetions
- set moderation(repeatkickraison) {
- "pas besoin de répéter"
- "on ne répète pas"
- "tu nous dérange en répétant"
- }
- # bannir pour repetition? 1/0
- set moderation(repeatban) 1
- # combien de temps? (en minute)
- set moderation(repeatbantime) 2
- #================================================================================#
- # Configuration Majuscule.
- #--------------------------------------------------------------------------------#
- # Max de Caps ?
- set moderation(majmax) 20
- # prevenir la personne en notice ? 1/0
- set moderation(majaverto) 1
- # quel message?
- set moderation(majavertomsg) "4Attention! Merci de ne pas ecrire en MAJUSCULE"
- # kicker les CAPS ? 1/0
- set moderation(majkick) 0
- # quel raison pour le kick?
- set moderation(majkickraison) {
- "Majuscule"
- "Pas la penne de crier on à compris!"
- "Stop Majuscule!!"
- }
- #================================================================================#
- # Configuration Flood.
- #--------------------------------------------------------------------------------#
- # kicker les longs mots? 1/0
- set moderation(motkick) 1
- # taille maxi d'un mot? 1/0
- set moderation(motmax) 200
- # raison du kick ?
- set moderation(motkickraison) {
- "Flood"
- "Evite le flood"
- "Pas de flood stp"
- }
- #================================================================================#
- # Configuration Répitition mot en une phrase.
- #--------------------------------------------------------------------------------#
- # Nombre max de fois où un mot est répeté dans une seul et unique phrase.
- set moderation(cptmotmax) 4
- # kicker pour mot répété plusieur fois dans une seul et unique phrase? 1/0
- set moderation(cptmotick) 2
- # kel raison pour le kick?
- set moderation(cptmotkickraison) "Exclu pour répétition en une seul phrase !"
- set moderation(cptmotkickraison) {
- "Exclu pour répétition en une seul phrase !"
- "Evite de répéter $moderation(cptmotmax) fois le meme mot dans une seul phrase stp"
- }
- # bannir pour mot répété plusieur fois dans une seul et unique phrase? 1/0
- set moderation(cptmotban) 0
- # bannir combien de temps? (en minute)
- set moderation(cptmotbantime) 10
- #================================================================================#
- # Bind.
- #--------------------------------------------------------------------------------#
- bind dcc $moderation(flag) moderation moderation
- bind dcc $moderation(flag) antipub dcc_antipub
- bind dcc $moderation(flag) modchan listchan
- bind dcc $moderation(flag) -modchan effacerchan
- bind dcc $moderation(flag) +modchan ajouterchan
- bind dcc $moderation(flag) listemot listmot
- bind dcc $moderation(flag) effacermot effacermot
- bind dcc $moderation(flag) ajoutermot ajoutermot
- bind time - "* * * * *" effacetemp
- bind pubm - * chanpub
- bind pubm - * pubcheck
- bind ctcp - action pubcheckactionsound
- bind ctcp - sound pubcheckactionsound
- bind raw - notice pubchecknotice
- #================================================================================#
- # Processus.
- #--------------------------------------------------------------------------------#
- proc moderation {hand idx args} {
- global moderation
- putdcc $idx " Commande Chan "
- putdcc $idx ""
- putdcc $idx "ce script comprend un anti mots-interdit, un anti répétition mot"
- putdcc $idx "un anti repetition phrase, un anti caps, un anti pub et un anti long mot."
- putdcc $idx "Il agit sur les msgs/notices/actions/sounds"
- putdcc $idx ""
- putdcc $idx "commandes pour les Badword"
- putdcc $idx "\002.listemot\002 14(liste les mots)"
- putdcc $idx "\002.effacermot\002 <mot> 14(efface un mot)"
- putdcc $idx "\002.ajoutermot\002 <mot> 14(ajoute un mot)"
- putdcc $idx ""
- putdcc $idx "commandes pour les canaux detection Pub"
- putdcc $idx "\002.antipub\002 14listchan (liste des Channels Antipub)"
- putdcc $idx "\002.antipub\002 14<salon> off (efface un canal a surveiller)"
- putdcc $idx "\002.antipub\002 14<salon> on (ajoute un canal a surveiller)"
- putdcc $idx ""
- putdcc $idx "commandes pour les canaux detection Flood, Majuscule & Badword"
- putdcc $idx "\002.modchan\002 14(liste les canaux)"
- putdcc $idx "\002.-modchan\002 14<salon> (efface un canal surveillé)"
- putdcc $idx "\002.+modchan\002 14<salon> (ajoute un canal a surveiller)"
- putdcc $idx ""
- putdcc $idx "Gebulon 7- 14anthony.larmier@wanadoo.fr"
- putdcc $idx ""
- return 1
- }
- proc kickraison {} {
- global moderation
- return [lindex $moderation(repeatkickraison) [rand [llength $moderation(repeatkickraison)]]]
- }
- set bwc ""
- foreach c [channels] {
- if {[file exists "moderation.[string tolower $c].list"]} {
- set f [open moderation.[string tolower $c].list r]
- set bwl([string tolower $c]) "[string tolower [gets $f]]"
- close $f
- lappend bwc [string tolower $c]
- }
- }
- proc checkchall {cha} {
- global bwc
- foreach c $bwc {
- if {$c == "$cha"} {return 1; break}
- }
- return 0
- }
- proc pubchecknotice {from keyword arg} {
- set from [split $from !]
- if {![validchan $from]} { return 0 }
- pubcheck [lindex $from 0] [lindex $from 1] * [lindex $arg 0] [lrange $arg 1 end]
- }
- proc pubcheckactionsound {nick userhost hand dest keyword text} {
- if {[string match &* $dest] || [string match #* $dest]} {
- pubcheck $nick $userhost $hand $dest $text
- }
- }
- proc pubcheck {nick userhost handle channel text} {
- global bwn bwl bwc rpt moderation
- if {[isop $nick $channel]} { return 0 }
- if {[matchattr $handle $moderation(flagexept) $channel]} { return 0 }
- if {[checkchall [string tolower $channel]]} {
- set hostban [lindex [split $userhost @] 1]
- if {[info exists cptmot]} {
- unset cptmot
- }
- foreach {w} $text {
- if {[info exists cptmot($w)]} {
- set cptmot($w) [expr $cptmot($w) + 1]
- }
- if {![info exists cptmot($w)]} {
- set cptmot($w) 1
- }
- if {$cptmot($w) > $moderation(cptmotmax)} {
- if {$moderation(cptmotban)=="1"} {newchanban $channel *!*@$hostban moderation "$moderation(cptmotkickraison)" $moderation(cptmotbantime)}
- if {$moderation(cptmotick)=="1"} {
- putserv "KICK $channel $nick :$moderation(cptmotkickraison)"
- return 0
- }
- }
- }
- set templist [join [split [string tolower $text] "!&\"'(-_)=~\{\[|`\\^@\]\}\$%µ?,;:/§"]]
- foreach wdt $bwl([string tolower $channel]) {
- if {[lsearch -exact "$templist" $wdt] != -1} {
- if {$moderation(badaverto)} {
- if {![info exists bwn([string tolower $userhost])]} {
- putserv "NOTICE $nick :$moderation(badavertomsg)"
- set bwn([string tolower $userhost]) [expr [clock seconds] + 1800]
- } else {
- if {$moderation(badban)=="1"} {newchanban $channel *!*@$hostban moderation "$moderation(badkickraison)" $moderation(badbantime)}
- if {$moderation(badkick)=="1"} {putserv "KICK $channel $nick :$moderation(badkickraison)"}
- }
- return 1
- } else {
- if {$moderation(badban)=="1"} {newchanban $channel *!*@$hostban moderation "$moderation(badkickraison)" $moderation(badbantime)}
- if {$moderation(badkick)=="1"} {putserv "KICK $channel $nick :$moderation(badkickraison)"}
- return 1
- }
- }
- }
- regsub -all {\\} $text {\\\\} text
- regsub -all {\{} $text {\{} text
- regsub -all {\}} $text {\}} text
- regsub -all {\]} $text {\]} text
- regsub -all {\[} $text {\[} text
- regsub -all {\"} $text {\"} text
- if {[info exists rpt($nick)]} {
- if {[lrange $rpt($nick) 2 end] == "$text"} {
- set cnt [lindex $rpt($nick) 1]; incr cnt
- set rpt($nick) "[lindex $rpt($nick) 0] $cnt [lrange $rpt($nick) 2 end]"
- if {[lindex $rpt($nick) 1] > $moderation(repeatmax)} {
- putserv "KICK $channel $nick :[kickraison]"
- if {$moderation(repeatban)=="1"} {newchanban $channel *!*@$hostban moderation "Repeat" 10}
- unset rpt($nick)
- }
- } else {set rpt($nick) "[expr [clock seconds] + 10] 1 $text"}
- } else {set rpt($nick) "[expr [clock seconds] + 10] 1 $text"}
- set upper 0
- set space 0
- foreach i [split $text {}] {
- if [string match \[A-Z\] $i] {incr upper}
- if {$i == " "} {incr space}
- }
- if {$upper > $moderation(majmax)} {
- if {$moderation(majaverto)=="1"} {putserv "NOTICE $nick :$moderation(majavertomsg)"}
- if {$moderation(majkick)=="1"} {putserv "KICK $channel $nick :$moderation(majkickraison)"}
- }
- if {$space == 0 && [string length $text] > $moderation(motmax)} {
- if {$moderation(motkick)=="1"} {putserv "KICK $channel $nick :$moderation(motkickraison)"}
- }
- }
- }
- proc zerotime {} {
- global rpt
- foreach nick [array names rpt] {
- if {[lindex $rpt($nick) 0] < [clock seconds]} {unset rpt($nick)}
- }
- utimer 5 zerotime
- }
- foreach t [utimers] {
- if {[lindex $t 1] == "zerotime"} {killutimer [lindex $t 2]}
- }
- zerotime
- proc effacetemp {min hour day month year} {
- global bwn rpt moderation
- foreach nt [array names bwn] {
- if {$bwn($nt) < [clock seconds]} {unset bwn($nt)}
- }
- set limite_actuelle 0
- foreach chan [channels] {
- if {[checkchall [string tolower $chan]]} {
- if {[string match *l* [lindex [getchanmode $chan] 0]]} {
- if {[string match *k* [lindex [getchanmode $chan] 0]]} {
- set limite_actuelle [lindex [getchanmode $chan] 2]
- } else {
- set limite_actuelle [lindex [getchanmode $chan] 1]
- }
- }
- if {![info exists moderation($chan,stop)]} {
- set moderation($chan,stop) 0
- }
- set moderation($chan,total) [llength [chanlist $chan]]
- if {![info exists moderation($chan,total,old)]} {
- set moderation($chan,total,old) $moderation($chan,total)
- }
- if {![info exists moderation($chan,danger)]} {
- set moderation($chan,danger) 1
- }
- if {$moderation($chan,total) == [expr $moderation($chan,total,old) + $moderation(plus)]} {
- if {![info exists moderation($chan,danger,moment)]} {
- set moderation($chan,danger,moment) "$hour:$min"
- }
- if {([lindex [split $moderation($chan,danger,moment) :] 0] == $hour) && ([expr [lindex [split $moderation($chan,danger,moment) :] 1] + 1] == $min)} {
- set moderation($chan,danger) [expr $moderation($chan,danger) + 1]
- }
- }
- if {$moderation($chan,danger) == 2} {
- set moderation($chan,stop) 4
- set moderation($chan,danger) 1
- } else {
- if {$moderation($chan,stop) > 0} {
- set moderation($chan,stop) [expr $moderation($chan,stop) - 1]
- } else {
- if {$moderation($chan,danger) < 2} {
- if {$limite_actuelle != [expr $moderation($chan,total) + $moderation(plus)]} {
- pushmode $chan +l [expr $moderation($chan,total) + $moderation(plus)]
- set moderation($chan,total,old) $moderation($chan,total)
- }
- }
- }
- }
- }
- }
- }
- proc ajoutermot {hand idx args} {
- global bwl
- set chan [string tolower [lindex [console $idx] 0]]
- if {![validchan $chan]} {putdcc $idx "Console invalide ($chan)"; return 0}
- if {![matchattr [idx2hand $idx] o|o $chan]} {putdcc $idx "Acces refusé pour $chan"; return 0}
- set word [string tolower [lindex $args 0]]
- if {$word == ""} {putdcc $idx ".addword <mot> (ajoute un mot)"; return 0}
- if {![info exists bwl($chan)]} {set bwl($chan) ""}
- if {[lsearch -exact "x $bwl($chan)" "$word"] == -1} {
- lappend bwl($chan) $word
- set f [open moderation.$chan.list w]
- puts $f "$bwl($chan)"
- close $f
- putdcc $idx "$word ajouté."
- return 1
- } else {putdcc $idx "$word est deja dans la liste! (taper .listword pour voir la liste)"; return 0}
- }
- proc effacermot {hand idx args} {
- global bwl
- set chan [string tolower [lindex [console $idx] 0]]
- if {![validchan $chan]} {putdcc $idx "Console invalide ($chan)"; return 0}
- if {![matchattr [idx2hand $idx] o|o $chan]} {putdcc $idx "Acces refusé pour $chan"; return 0}
- if {![info exists bwl($chan)]} {putdcc $idx "Aucun mot pour $chan"; return 0}
- set word [string tolower [lindex $args 0]]
- if {$word == ""} {putdcc $idx ".delword <mot> (efface un mot)"; return 0}
- if {[lsearch -exact "$bwl($chan)" "$word"] != -1} {
- set f [open moderation.$chan.list r]
- gets $f tmpl
- close $f
- set newlist ""
- foreach t $tmpl {
- if {$t != "$word"} {lappend newlist $t}
- }
- set f [open moderation.$chan.list w]
- puts $f "$newlist"
- set bwl($chan) $newlist
- close $f
- putdcc $idx "$word éffacé."
- return 1
- } else {putdcc $idx "$word est pas dans la liste! (taper .listword pour voir la liste)"; return 0}
- }
- proc listmot {hand idx args} {
- global bwl
- set chan [string tolower [lindex [console $idx] 0]]
- if {![validchan $chan]} {putdcc $idx "Console invalide ($chan)"; return 0}
- if {![matchattr [idx2hand $idx] o|o $chan]} {putdcc $idx "Acces refusé pour $chan"; return 0}
- if {![info exists bwl($chan)]} {putdcc $idx "Aucun mot pour $chan"; return 0}
- putdcc $idx "Liste des Badwords: $bwl($chan)"
- return 1
- }
- proc ajouterchan {hand idx args} {
- global bwc bwl
- set tchan [string tolower [lindex $args 0]]
- if {$tchan == ""} {putdcc $idx ".+modchan <#channel> (ajoute un canal a surveiller)"; return 0}
- if {![validchan $tchan]} {putdcc $idx "Channel invalide ($tchan)"; return 0}
- if {![matchattr [idx2hand $idx] o|o $tchan]} {putdcc $idx "Acces refusé pour $tchan"; return 0}
- if {[lsearch -exact "x $bwc" "$tchan"] == -1} {
- set f [open moderation.$tchan.list w]
- close $f
- set bwl($tchan) ""
- set f [open moderation.chan w]
- puts $f [lappend bwc $tchan]
- close $f
- putdcc $idx "$tchan ajouté."
- return 1
- } else {putdcc $idx "$tchan est deja dans la liste! (taper .modchan pour voir la liste)";return 0}
- }
- proc effacerchan {hand idx args} {
- global bwc
- set tchan [string tolower [lindex $args 0]]
- if {$tchan == ""} {putdcc $idx ".-modchan <#channel> (efface un canal surveillé)"; return 0}
- if {![validchan $tchan]} {putdcc $idx "Channel invalide ($tchan)"; return 0}
- if {![matchattr [idx2hand $idx] o|o $tchan]} {putdcc $idx "Acces refusé pour $tchan"; return 0}
- if {[lsearch -exact "x $bwc" "$tchan"] != -1} {
- set f [open moderation.chan r]
- set tmpl [gets $f]
- close $f
- set newlist ""
- foreach t $tmpl {
- if {$t != "$tchan"} {lappend newlist $t}
- }
- set f [open moderation.chan w]
- puts $f "$newlist"
- close $f
- set bwc $newlist
- putdcc $idx "$tchan éffacé."
- return 1
- } else {putdcc $idx "$tchan est pas dans la liste! (taper .modchan pour voir la liste)";return 0}
- }
- proc listchan {hand idx args} {
- global bwc
- putdcc $idx "Liste des canaux: $bwc"
- return 1
- }
- set dir ""
- set pubfile "chans.pub"
- proc dcc_antipub {hand idx arg} {
- global dir pubfile
- set cmd [lindex $arg 0]
- set cmd2 [lindex $arg 1]
- if {$cmd == "help" } {
- putdcc $idx " Cette commande permet d'activer l'antipub sur un chan."
- return 0
- }
- if {$cmd == "listchan"} {
- putcmdlog "#$hand# antipub listchan"
- putidx $idx "Liste des chans où l'antipub est actif:"
- if {[file exists ${dir}${pubfile}]} {
- set read [open ${dir}${pubfile} r]
- while {![eof $read]} {
- set data [string tolower [gets $read]]
- if {[eof $read]} {break}
- if {$data != ""} {
- putidx $idx "$data"
- }
- }
- close $read
- }
- return 0
- }
- if { $cmd == "" } {
- putdcc $idx "\002Usage:\002 .antipub #chan on/off ou .antipub listchan, tapez .antipub help pour obtenir de l'aide sur cette commande"
- return 0
- }
- if {![validchan $cmd]} {
- putdcc $idx "Je ne suis pas sur $cmd.\r"
- return 0
- }
- if {![matchattr $hand n|n $cmd]} {
- putdcc $idx "Cette commande n'est accessible qu'aux owners globaux ou sur $cmd."
- return 0
- }
- if {$cmd2 == "on"} {
- putcmdlog "#$hand# antipub $cmd on"
- if {[trouvchan $cmd $pubfile]} {
- putidx $idx "L'antipub est deja actif sur le chan $cmd !"
- return 0
- }
- set temp [addedchan $cmd $pubfile]
- putidx $idx "L'antipub est maintenant actif sur le chan $cmd !"
- return 0
- }
- if {$cmd2 == "off"} {
- putcmdlog "#$hand# antipub $cmd off"
- if {![file exists ${dir}${pubfile}]} {
- putidx $idx "Vous devez d'abord utiliser .antipub #chan on !"
- return 0
- }
- if {![trouvchan $cmd $pubfile]} {
- putidx $idx "L'antipub sur $cmd n'est pas actif !"
- return 0
- }
- set temp [rmchannel $cmd $pubfile]
- putidx $idx "L'antipub sur $cmd n'est plus actif."
- return 0
- }
- }
- proc chanpub {nick userhost hand chan arg} {
- global okipub badpub check_recidive botnick pubfile moderation
- if {![trouvchan $chan $pubfile] || ![botisop $chan] } { return 0 }
- if {[isop $nick $chan]} { return 0 }
- if {[matchattr $hand $moderation(flagexept) $chan]} { return 0 }
- if {[string match *$chan* $arg]} { return 0 }
- set hostban [lindex [split $userhost @] 1]
- foreach okip $moderation(puboklist) {
- if {[string match *$okip* $arg]} {
- return 0
- }
- }
- foreach badp $moderation(pubnolist) {
- if {[string match *$badp* $arg]} {
- if {[info exists moderation($userhost)]} {
- if {$moderation($userhost)>=1} {
- if {[unixtime]>[expr $moderation($userhost.TIME)+$moderation(pubtime)]} {
- putserv "NOTICE $nick :4Attention! Evitez vos Publicités! La prochaine fois vous serez Expulsé!"
- set moderation($userhost) 1
- set moderation($userhost.TIME) [unixtime]
- return 0
- }
- if {$moderation(pubban)=="1"} { newchanban $chan *!*@$hostban moderation "$moderation(pubkickraison)" $moderation(pubbantime) }
- if {$moderation(pubkick)=="1"} { putserv "KICK $chan $nick :$moderation(pubkickraison)" }
- unset moderation($userhost)
- unset moderation($userhost.TIME)
- return 0
- } else {
- if {$moderation(pubaverto)=="1"} {
- putserv "NOTICE $nick : $moderation(pubavertomsg)"
- }
- incr moderation($userhost)
- set moderation($userhost.TIME) [unixtime]
- return 0
- }
- } else {
- if {$moderation(pubaverto)=="1"} {
- putserv "NOTICE $nick : $moderation(pubavertomsg)"
- }
- set moderation($userhost) 1
- set moderation($userhost.TIME) [unixtime]
- return 0
- }
- }
- }
- return 0
- }
- proc addedchan {channel typefile} {
- global privfile dir pubfile
- set chan [string tolower $channel]
- if {![file exists ${dir}${typefile}]} {
- set create [open ${dir}${typefile} w]
- puts $create $chan
- close $create
- return 0
- }
- if {[file exists ${dir}${typefile}]} {
- set addfile [open ${dir}${typefile} a]
- puts $addfile $chan
- close $addfile
- return 0
- }
- return 0
- }
- proc trouvchan {channel typefile} {
- global privfile dir pubfile
- set chan [string tolower $channel]
- if {[file exists ${dir}${typefile}]} {
- set read [open ${dir}${typefile} r]
- while {![eof $read]} {
- set data [string tolower [gets $read]]
- if {[eof $read]} {break}
- if {$chan == $data && $data != ""} {
- close $read
- return 1
- }
- }
- close $read
- }
- return 0
- }
- proc rmchannel {channel typefile} {
- global privfile dir pubfile
- set chan [string tolower $channel]
- if {![file exists ${dir}${typefile}]} {
- return 0
- }
- if {[file exists ${dir}${typefile}]} {
- set read [open ${dir}${typefile} r]
- while {![eof $read]} {
- set data [string tolower [gets $read]]
- if {[eof $read]} {break}
- if {$chan != $data && $data !=""} {
- set addfile [open ${dir}${typefile}.new a]
- puts $addfile $data
- close $addfile
- }
- }
- close $read
- if {![file exists ${dir}${typefile}.new]} {
- set addfile [open ${dir}${typefile}.new a]
- puts $addfile ""
- close $addfile
- }
- set removefile [file delete -force ${dir}${typefile}]
- set copynew [file copy -force ${dir}${typefile}.new ${dir}${typefile}]
- set removeold [file delete -force ${dir}${typefile}.new]
- }
- return 0
- }
- bind msg - help msg:help
- proc msg:help {nick uhost handle arg} {
- global botnick
- putserv "PRIVMSG $nick /MSG commands for $botnick :"
- putserv "PRIVMSG $nick OP VOICE KICK INVITE INFO PASS"
- putserv "PRIVMSG $nick Se oper : /msg $botnick op <PASS> <SALON>"
- putserv "PRIVMSG $nick Se voicer : /msg $botnick voice <PASS> <SALON>"
- putserv "PRIVMSG $nick S'inviter : /msg $botnick invite <PASS> <SALON>"
- putserv "PRIVMSG $nick Kicker quelqu'un : /msg $botnick kick <SALON> <PSEUDO> <RAISON>"
- putserv "PRIVMSG $nick Mettre une info : /msg $botnick info #soho <INFOLINE>"
- putserv "PRIVMSG $nick Changer son password : /msg $botnick PASS <PASSWORD> <NEW_PASSWORD>"
- }
- bind msg - kick msg:kick
- proc msg:kick {nick uhost chan arg} {
- set chan [lindex $arg 0]
- if [isop $nick $chan] {
- putserv "kick [lindex $arg 0] [lindex $arg 1] :[lrange $arg 2 end]"
- }
- }
- bind dcc m xkill xkill:dcc
- proc xkill:dcc {nick idx arg} {
- putserv "KILL [lindex $arg 0] :[lrange $arg 1 end]"
- }
- bind dcc m xmode xmode:dcc
- proc xmode:dcc {hand idx arg} {
- putspeed "MODE [lindex $arg 0] [lrange $arg 1 end]"
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement