Communauté sur les Eggdrops - Community about Eggdrops
Aide - SVP - sur ce script - Printable Version

+- Communauté sur les Eggdrops - Community about Eggdrops (https://forum.eggdrop.fr)
+-- Forum: Eggdrop et TCL (https://forum.eggdrop.fr/forumdisplay.php?fid=8)
+--- Forum: Scripts TCL (https://forum.eggdrop.fr/forumdisplay.php?fid=4)
+--- Thread: Aide - SVP - sur ce script (/showthread.php?tid=376)



Aide - SVP - sur ce script - Behemoth - 13/04/2009

Soir,

J voulais savoir les codes a ajouter pour voirs les noms d Ops, masters, ou Owners, ajouter dans le bot; genre .access #salon et .access pseudo

Le script est ainsi :


tcl
###########################################################
#  #    #                   # # # #                                       #
#  #  #                    #
#  ##                      #
#  ##                       # # # #
#  #  #                              #
#  #    #                  # # # #      
###########################################################
###########################################################
#
#......................../..)...Liverpool FC..
#....................../.../....Fucks You All
#..................../    /..........................
#............./´¯/'   '/´¯¯`·¸..................
#........../'/   /    /      /¨¯\..................
#.........('(   ´   ´     ¯ /'   ')..............
#...........\                 '     /.................
#............\'   \            _.·...................
#...............\              (......................
#.................\.......... )\......................
#
###########################################################
###########################################################
###########################################################
###########################################################
###########################################################
###########################################################
#
#
#
#
#
#
#
###########################################################
#   Ce TCL est entièrement fait par Kaneda et il est   #
#           fait pour tout faire (l) :]           #
###########################################################
 
#################
# Configuration #
#################
 
# Votre channel principale
set kaneda(hom"
 
# Choisissez le caractere devant les commandes Ex.: ! @ ? $
set kaneda(prefix) "."
 
# Message de bienvenue aux joins (par défault) ? OUI ou NON
set kaneda(welcome) "NON"
set kaneda(welcome.text) "Bienvenue sur #. Pour vos commandes de Bot, venez sur #. Merci :]"
# PS: Si vous mettez la commande [userlist |n $chan] dans le texte, il dira les owners du chan.
 
# Détecteur de clone ? OUI ou NON
set kaneda(clonedetect) "NON"
 
############
# Services #
############
 
# Est-ce que votre eggdrop est pour un service (Ex.: Orange Service) ? OUI ou NON
set kaneda(service) "NON"
set kaneda(service.chan) ""
 
# Voulez-vous un message spécial lorsque quelqu'un join votre channel ? OUI ou NON
set kaneda(service.welcome) "OUI"
set kaneda(service.welcome.text) "Vous venez d`entrer dans un canal privé A vos risques et perils !!! :]"
 
# Mentionner lorsque le eggdrop est opé ou déopé ? OUI ou NON
set kaneda(service.opdeop) "NON"
 
###################################
#            Commandes            #
#     recommendé de pas toucher   #
# Risque: faire planté le eggdrop #
###################################
 
### Op, Deop, Voice, Devoice, Kick, Ban, Unban, Topic, Addowner, Addmaster,
### Addop, Addvoice, Addauto-op, Delauto-op, Deluser, Delowner, Delmaster, Delop,
### Delvoice, Join, Cycle, Remove, Mode, Addbot, Delbot, Help, List.
 
 
# Op #
bind pub o|o [string trim $kaneda(prefix)]op pub_op
proc pub_op {nick uhost hand chan text} {
 global botnick kaneda
 if {[matchattr $hand S] == 1} {
  return 0
 }
 if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
 }
 if {![botisop $chan]} {
  puthelp "NOTICE $nick : Je vais maintenant prendre controle de ton salon."
  return 0
 }
 if {[lindex $text 0]!=""} {
  if {[onchan [lindex $text 0] $chan] == 0} {
   puthelp "NOTICE $nick :[lindex $text 0] n'est pas sur $chan."
   return 0
  }
  pushmode $chan +o [lindex $text 0]
  return 0
 }
 pushmode $chan +o $nick
}
 
 
# Deop #
bind pub o|o [string trim $kaneda(prefix)]deop pub_deop
proc pub_deop {nick uhost hand chan text} {
 global botnick kaneda
 if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
 }
 if {[lindex $text 0] == $botnick} {
  putserv "KICK $chan $nick Oups... me suis tromper :P"
  return 0
 }
 if {[lindex $text 0]!=""} {
  if {[onchan [lindex $text 0] $chan] == 0} {
   puthelp "NOTICE $nick :[lindex $text 0] n'est pas sur $chan."
   return 0
  }
  pushmode $chan -o [lindex $text 0]
  return 0
 }
 pushmode $chan -o $nick
}
 
 
# Voice #
bind pub o|o [string trim $kaneda(prefix)]voice pub_voice
proc pub_voice {nick uhost hand chan text} {
 global botnick kaneda
 if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
 }
 if {[lindex $text 0]!=""} {
  if {[onchan [lindex $text 0] $chan] == 0} {
   puthelp "NOTICE $nick :[lindex $text 0] n'est pas sur $chan."
   return 0
  }
  pushmode $chan -o [lindex $text 0]
  pushmode $chan +v [lindex $text 0]
  return 0
 }
 pushmode $chan -o $nick
 pushmode $chan +v $nick
}
 
 
# Devoice #
bind pub o|o [string trim $kaneda(prefix)]devoice pub_devoice
proc pub_devoice {nick uhost hand chan text} {
 global botnick kaneda
 if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
 }
 if {[lindex $text 0]!=""} {
  if {[onchan [lindex $text 0] $chan] == 0} {
   puthelp "NOTICE $nick :[lindex $text 0] n'est pas sur $chan."
   return 0
  }
  pushmode $chan -v [lindex $text 0]
  return 0
 }
 pushmode $chan -v $nick
}
 
 
# Kick #
bind pub o|o [string trim $kaneda(prefix)]kick pub_kick
proc pub_kick {nick uhost hand chan text} {
 global botnick kaneda
 if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
 }
 if {[lindex $text 0] == $botnick} {
  putserv "KICK $chan $nick Oups... me suis tromper :P"
  return 0
 }
 if {[lindex $text 0]==""} {
  puthelp "NOTICE $nick :\002Quick HELP: [string trim $kaneda(prefix)]kick <nick> \[message\]"
  return 0
 }
 if {[onchan [lindex $text 0] $chan] == 0} {
  puthelp "NOTICE $nick :[lindex $text 0] n'est pas sur $chan."
  return 0
 }
 if {[lindex $text 0]!=""} {
  if {[matchattr [lindex $text 0] |m $chan] == 0} {
   putserv "kick $chan [lindex $text 0] [lrange $text 1 end]"
   return 0
  }
  if {[matchattr [lindex $text 0] |m $chan] == 1} {
   if {[matchattr $hand |m $chan] == 0} {
    if {[matchattr $hand o] != 1} {
     puthelp "NOTICE $nick :Tu ne peux pas kicker un superieur !"
     return 0
    }
   }
   putserv "kick $chan [lindex $text 0] [lrange $text 1 end]"
  }
 }
}
 
 
# Ban #
bind pub o|o [string trim $kaneda(prefix)]ban pub_ban
proc pub_ban {nick uhost hand chan text} {
 global botnick kaneda
 if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
 }
 if {[lindex $text 0] == $botnick} {
  putserv "KICK $chan $nick Oups... me suis tromper :P"
  return 0
 }
 if {[lindex $text 0]==""} {
  puthelp "NOTICE $nick :\002Quick HELP: [string trim $kaneda(prefix)]ban <nick> \[message\]"
  return 0
 }
 if {[onchan [lindex $text 0] $chan] == 0} {
  putserv "MODE $chan +b [lindex $text 0]"
  return 0
 }
 if {[lindex $text 0]!=""} {
  append userhost [lindex $text 0] "!*" [getchanhost [lindex $text 0] $chan]
  set hostmask [maskhost $userhost]
  if {[matchattr [lindex $text 0] |m $chan] == 0} {
   putserv "mode $chan +b $hostmask"
   putserv "kick $chan [lindex $text 0] [lrange $text 1 end]"
   return 0
  }
  if {[matchattr [lindex $text 0] |m $chan] == 1} {
   if {[matchattr $hand |m $chan] == 0} {
    if {[matchattr $hand o] != 1} {
     puthelp "NOTICE $nick :Tu ne peux pas bannir un superieur !"
     return 0
    }
   }
   putserv "mode $chan +b $hostmask"
   putserv "kick $chan [lindex $text 0] [lrange $text 1 end]"
  }
 }
}
 
 
# Unban #
bind pub o|o [string trim $kaneda(prefix)]unban pub_unban
proc pub_unban {nick uhost hand chan text} {
 global botnick kaneda
 if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
 }
 if {[lindex $text 0]==""} {
  puthelp "NOTICE $nick :\002Quick HELP: [string trim $kaneda(prefix)]unban <hostmask>"
  return 0
 }
 if {[lindex $text 0]!=""} {
  putserv "mode $chan -b [lindex $test 0]
 }
}
 
 
# Topic #
bind pub o|o [string trim $kaneda(prefix)]topic pub_topic
proc pub_topic {nick uhost hand chan text} {
 global botnick kaneda
 if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
 }
 if {[lindex $text 0]==""} {
  puthelp "NOTICE $nick :\002Quick HELP: [string trim $kaneda(prefix)]topic <texte>"
  return 0
 }
 putserv "TOPIC $chan [lrange $text 0 end]"
}
 
 
# Addowner #
 
bind pub n| [string trim $kaneda(prefix)]addowner pub_addowner
proc pub_addowner {nick uhost hand chan text} {
 global botnick kaneda
 if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
 }
 if {[lindex $text 0]==""} {
  if {[matchattr $hand n] == 1} {
   puthelp "NOTICE $nick :\002Quick HELP: [string trim $kaneda(prefix)]addowner <nick> \[all\]"
   return 0
  }
  puthelp "NOTICE $nick :\002Quick HELP: [string trim $kaneda(prefix)]addowner <nick>"
  return 0
 }
 if {[lindex $text 0] == $botnick} {
  puthelp "NOTICE $nick : Salut. On va faire une équipe."
  return 0
 }
 if {[onchan [lindex $text 0] $chan] == 0} {
  puthelp "NOTICE $nick :[lindex $text 0] n'est pas sur $chan."
  return 0
 }
 if {[lindex $text 1] == "all"} {
  if {[matchattr $hand n] == 1} {
   if {[validuser [lindex $text 0]] == 0} {
    adduser [lindex $text 0] [maskhost [getchanhost [lindex $text 0] $chan]]
    chattr [lindex $text 0] +n
    puthelp "NOTICE $nick :[lindex $text 0] est maintenant global owner."
    puthelp "NOTICE [lindex $text 0] :Tu es maintenant global owner."
    puthelp "NOTICE [lindex $text 0] :Tu dois setter ton pass (/msg $botnick pass <password_voulu>)"
    return 0
   }
   if {[validuser [lindex $text 0]] == 1} {
    chattr [lindex $text 0] +n
    puthelp "NOTICE $nick :[lindex $text 0] est maintenant global owner."
    puthelp "NOTICE [lindex $text 0] :Tu es maintenant global owner."
    return 0
   }
  }
 }
 if {[validuser [lindex $text 0]] == 0} {
  adduser [lindex $text 0] [maskhost [getchanhost [lindex $text 0] $chan]]
  chattr [lindex $text 0] |+n $chan
  puthelp "NOTICE $nick :[lindex $text 0] est maintenant owner de $chan."
  puthelp "NOTICE [lindex $text 0] :Tu es maintenant owner de $chan."
  puthelp "NOTICE [lindex $text 0] :Tu dois setter ton pass (/msg $botnick pass <password_voulu>)"
  putserv "MODE $chan +o [lindex $text 0]"
  return 0
 }
 if {[validuser [lindex $text 0]] == 1} {
  chattr [lindex $text 0] |+n $chan
  puthelp "NOTICE $nick :[lindex $text 0] est maintenant owner de $chan."
  puthelp "NOTICE [lindex $text 0] :Tu es maintenant owner de $chan."
  putserv "MODE $chan +o [lindex $text 0]"
 }
}
 
 
# Addmaster #
 
bind pub n|n [string trim $kaneda(prefix)]addmaster pub_addmaster
proc pub_addmaster {nick uhost hand chan text} {
 global botnick kaneda
 if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
 }
 if {[lindex $text 0] == $botnick} {
  puthelp "NOTICE $nick :l Salut. On va faire une équipe."
  return 0
 }
 if {[lindex $text 0]==""} {
  if {[matchattr $hand n] == 1} {
   puthelp "NOTICE $nick :\002Quick HELP: [string trim $kaneda(prefix)]addmaster <nick> \[all\]"
   return 0
  }
  puthelp "NOTICE $nick :\002Quick HELP: [string trim $kaneda(prefix)]addmaster <nick>"
  return 0
 }
 if {[onchan [lindex $text 0] $chan] == 0} {
  puthelp "NOTICE $nick :[lindex $text 0] n'est pas sur $chan."
  return 0
 }
 if {[lindex $text 1] == "all"} {
  if {[matchattr $hand n] == 1} {
   if {[validuser [lindex $text 0]] == 0} {
    adduser [lindex $text 0] [maskhost [getchanhost [lindex $text 0] $chan]]
    chattr [lindex $text 0] +m
    puthelp "NOTICE $nick :[lindex $text 0] est maintenant global master."
    puthelp "NOTICE [lindex $text 0] :Tu es maintenant global master."
    puthelp "NOTICE [lindex $text 0] :Tu dois setter ton pass (/msg $botnick pass <password_voulu>)"
    return 0
   }
   if {[validuser [lindex $text 0]] == 1} {
    chattr [lindex $text 0] +m
    puthelp "NOTICE $nick :[lindex $text 0] est maintenant global master."
    puthelp "NOTICE [lindex $text 0] :Tu es maintenant global master."
    return 0
   }
  }
 }
 if {[validuser [lindex $text 0]] == 0} {
  adduser [lindex $text 0] [maskhost [getchanhost [lindex $text 0] $chan]]
  chattr [lindex $text 0] |+m $chan
  puthelp "NOTICE $nick :[lindex $text 0] est maintenant master de $chan."
  puthelp "NOTICE [lindex $text 0] :Tu es maintenant master de $chan."
  puthelp "NOTICE [lindex $text 0] :Tu dois setter ton pass (/msg $botnick pass <password_voulu>)"
  putserv "MODE $chan +o [lindex $text 0]"
  return 0
 }
 if {[validuser [lindex $text 0]] == 1} {
  chattr [lindex $text 0] -|+m $chan
  puthelp "NOTICE $nick :[lindex $text 0] est maintenant master de $chan."
  puthelp "NOTICE [lindex $text 0] :Tu es maintenant master de $chan."
  putserv "MODE $chan +o [lindex $text 0]"
 }
}
 
 
# Addop #
 
bind pub m|m [string trim $kaneda(prefix)]addop pub_addop
proc pub_addop {nick uhost hand chan text} {
 global botnick kaneda
 if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
 }
 if {[lindex $text 0] == $botnick} {
  puthelp "NOTICE $nick : Salut. Bienvenue dans notre équipe."
  return 0
 }
 if {[lindex $text 0]==""} {
  if {[matchattr $hand m] == 1} {
   puthelp "NOTICE $nick :\002Quick HELP: [string trim $kaneda(prefix)]addop <nick> \[all\]"
   return 0
  }
  puthelp "NOTICE $nick :\002Quick HELP: [string trim $kaneda(prefix)]addop <nick>"
  return 0
 }
 if {[onchan [lindex $text 0] $chan] == 0} {
  puthelp "NOTICE $nick :[lindex $text 0] n'est pas sur $chan."
  return 0
 }
 if {[lindex $text 1] == "all"} {
  if {[matchattr $hand m] == 1} {
   if {[validuser [lindex $text 0]] == 0} {
    adduser [lindex $text 0] [maskhost [getchanhost [lindex $text 0] $chan]]
    chattr [lindex $text 0] +o
    puthelp "NOTICE $nick :[lindex $text 0] est maintenant global operateur."
    puthelp "NOTICE [lindex $text 0] :Tu es maintenant global operateur."
    puthelp "NOTICE [lindex $text 0] :Tu dois setter ton pass (/msg $botnick pass <password_voulu>)"
    return 0
   }
   if {[validuser [lindex $text 0]] == 1} {
    chattr [lindex $text 0] +o
    puthelp "NOTICE $nick :[lindex $text 0] est maintenant global operateur."
    puthelp "NOTICE [lindex $text 0] :Tu es maintenant global operateur."
    return 0
   }
  }
 }
 if {[validuser [lindex $text 0]] == 0} {
  adduser [lindex $text 0] [maskhost [getchanhost [lindex $text 0] $chan]]
  chattr [lindex $text 0] |+o $chan
  puthelp "NOTICE $nick :[lindex $text 0] est maintenant operateur de $chan."
  puthelp "NOTICE [lindex $text 0] :Tu es maintenant operateur de $chan."
  puthelp "NOTICE [lindex $text 0] :Tu dois setter ton pass (/msg $botnick pass <password_voulu>)"
  putserv "MODE $chan +o [lindex $text 0]"
  return 0
 }
 if {[validuser [lindex $text 0]] == 1} {
  chattr [lindex $text 0] |+o $chan
  puthelp "NOTICE $nick :[lindex $text 0] est maintenant operateur de $chan."
  puthelp "NOTICE [lindex $text 0] :Tu es maintenant operateur de $chan."
  putserv "MODE $chan +o [lindex $text 0]"
 }
}
 
 
# Addvoice #
 
bind pub o|o [string trim $kaneda(prefix)]addvoice pub_addvoice
proc pub_addvoice {nick uhost hand chan text} {
 global botnick kaneda
 if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
 }
 if {[lindex $text 0] == $botnick} {
  puthelp "NOTICE $nick : Bienvenue parmi les Actifs du salon."
  return 0
 }
 if {[lindex $text 0]==""} {
  if {[matchattr $hand o] == 1} {
   puthelp "NOTICE $nick :\002Quick HELP: [string trim $kaneda(prefix)]addvoice <nick> \[all\]"
   return 0
  }
  puthelp "NOTICE $nick :\002Quick HELP: [string trim $kaneda(prefix)]addvoice <nick>"
  return 0
 }
 if {[onchan [lindex $text 0] $chan] == 0} {
  puthelp "NOTICE $nick :[lindex $text 0] n'est pas sur $chan."
  return 0
 }
 if {[lindex $text 1] == "all"} {
  if {[matchattr $hand o] == 1} {
   if {[validuser [lindex $text 0]] == 0} {
    adduser [lindex $text 0] [maskhost [getchanhost [lindex $text 0] $chan]]
    chattr [lindex $text 0] +v
    puthelp "NOTICE $nick :[lindex $text 0] est maintenant global voice."
    puthelp "NOTICE [lindex $text 0] :Tu es maintenant global voice."
    puthelp "NOTICE [lindex $text 0] :Tu dois setter ton pass (/msg $botnick pass <password_voulu>)"
    return 0
   }
   if {[validuser [lindex $text 0]] == 1} {
    chattr [lindex $text 0] +v
    puthelp "NOTICE $nick :[lindex $text 0] est maintenant global voice."
    puthelp "NOTICE [lindex $text 0] :Tu es maintenant global voice."
    return 0
   }
  }
 }
 if {[validuser [lindex $text 0]] == 0} {
  adduser [lindex $text 0] [maskhost [getchanhost [lindex $text 0] $chan]]
  chattr [lindex $text 0] |+v $chan
  puthelp "NOTICE $nick :[lindex $text 0] est maintenant voice de $chan."
  puthelp "NOTICE [lindex $text 0] :Tu es maintenant voice de $chan."
  puthelp "NOTICE [lindex $text 0] :Tu dois setter ton pass (/msg $botnick pass <password_voulu>)"
  putserv "MODE $chan +v [lindex $text 0]"
  return 0
 }
 if {[validuser [lindex $text 0]] == 1} {
  chattr [lindex $text 0] |+v $chan
  puthelp "NOTICE $nick :[lindex $text 0] est maintenant voice de $chan."
  puthelp "NOTICE [lindex $text 0] :Tu es maintenant voice de $chan."
  putserv "MODE $chan +v [lindex $text 0]"
 }
}
 
 
# Addauto-op #
 
bind pub m|m [string trim $kaneda(prefix)]addauto-op pub_addauto-op
proc pub_addauto-op {nick uhost hand chan text} {
 global botnick kaneda
 if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
 }
 if {[lindex $text 0] == $botnick} {
  puthelp "NOTICE $nick : A toi de jouer!"
  return 0
 }
 if {[lindex $text 0]==""} {
  if {[matchattr $hand m] == 1} {
   puthelp "NOTICE $nick :\002Quick HELP: [string trim $kaneda(prefix)]addauto-op <nick> \[all\]"
   return 0
  }
  puthelp "NOTICE $nick :\002Quick HELP: [string trim $kaneda(prefix)]addauto-op <nick>"
  return 0
 }
 if {[onchan [lindex $text 0] $chan] == 0} {
  puthelp "NOTICE $nick :[lindex $text 0] n'est pas sur $chan."
  return 0
 }
 if {[lindex $text 1] == "all"} {
  if {[matchattr $hand m] == 1} {
   if {[validuser [lindex $text 0]] == 0} {
    adduser [lindex $text 0] [maskhost [getchanhost [lindex $text 0] $chan]]
    chattr [lindex $text 0] +a
    puthelp "NOTICE $nick :[lindex $text 0] a maintenant un global auto-op."
    puthelp "NOTICE [lindex $text 0] :Tu as maintenant un global auto-op."
    puthelp "NOTICE [lindex $text 0] :Tu dois setter ton pass (/msg $botnick pass <password_voulu>)"
    return 0
   }
   if {[validuser [lindex $text 0]] == 1} {
    chattr [lindex $text 0] +a
    puthelp "NOTICE $nick :[lindex $text 0] a maintenant un global auto-op."
    puthelp "NOTICE [lindex $text 0] :Tu as maintenant un global auto-op."
    return 0
   }
  }
 }
 if {[validuser [lindex $text 0]] == 0} {
  adduser [lindex $text 0] [maskhost [getchanhost [lindex $text 0] $chan]]
  chattr [lindex $text 0] |+a $chan
  puthelp "NOTICE $nick :[lindex $text 0] a maintenant un auto-op sur $chan."
  puthelp "NOTICE [lindex $text 0] :Tu as maintenant un auto-op sur $chan."
  puthelp "NOTICE [lindex $text 0] :Tu dois setter ton pass (/msg $botnick pass <password_voulu>)"
  putserv "MODE $chan +o [lindex $text 0]"
  return 0
 }
 if {[validuser [lindex $text 0]] == 1} {
  chattr [lindex $text 0] |+a $chan
  puthelp "NOTICE $nick :[lindex $text 0] a maintenant un auto-op sur $chan."
  puthelp "NOTICE [lindex $text 0] :Tu as maintenant un auto-op sur $chan."
  putserv "MODE $chan +o [lindex $text 0]"
 }
}
 
 
# Delauto-op #
 
bind pub m|m [string trim $kaneda(prefix)]delauto-op pub_delauto-op
proc pub_delauto-op {nick uhost hand chan text} {
 global botnick kaneda
 if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
 }
 if {[lindex $text 0] == $botnick} {
  puthelp "NOTICE $nick : Tu as trop joué avec nous et voilà, reste au bas."
  return 0
 }
 if {[lindex $text 0]==""} {
  puthelp "NOTICE $nick :\002Quick HELP: [string trim $kaneda(prefix)]delauto-op <nick>"
  return 0
 }
 if {[lindex $text 1] == "all"} {
  if {[matchattr $hand m] == 1} {
   if {[matchattr [lindex $text 0] a] == 0} {
    puthelp "NOTICE $nick :[lindex $text 0] n'a pas de global auto-op."
    return 0
   }
   chattr [lindex $text 0] -a
   puthelp "NOTICE $nick :[lindex $text 0] n'a plus de global auto-op."
   puthelp "NOTICE [lindex $text 0] :Tu n'as plus de global auto-op."
   return 0
  }
 }
 if {[matchattr [lindex $text 0] |a $chan] == 0} {
  puthelp "NOTICE $nick :[lindex $text 0] n'a pas d'auto-op sur $chan."
  return 0
 }
 chattr [lindex $text 0] |-a $chan
 puthelp "NOTICE $nick :[lindex $text 0] n'a plus d'auto-op sur $chan."
 puthelp "NOTICE [lindex $text 0] :Tu n'as plus d'auto-op sur $chan."
}
 
 
# Deluser #
 
bind pub n|n [string trim $kaneda(prefix)]deluser pub_deluser
proc pub_deluser {nick uhost hand chan text} {
 global botnick kaneda
 if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
 }
 if {[lindex $text 0] == $botnick} {
  puthelp "NOTICE $nick : Tu n'es plus un Membre de notre équipe. Tchao!"
  return 0
 }
 if {[lindex $text 0]==""} {
  if {[matchattr $hand n] == 1} {
   puthelp "NOTICE $nick :\002Quick HELP: [string trim $kaneda(prefix)]deluser <nick> \[all\]"
   return 0
  }
  puthelp "NOTICE $nick :\002Quick HELP: [string trim $kaneda(prefix)]deluser <nick>"
  return 0
 }
 if {[validuser [lindex $text 0]] == 0} {
  puthelp "NOTICE $nick :[lindex $text 0] n'a pas d'access"
  return 0
 }
 if {[lindex $text 1] == "all"} {
  if {[matchattr $hand n] == 1} {
   deluser [lindex $text 0]
   puthelp "NOTICE $nick :[lindex $text 0] est enlever de ma userlist."
   puthelp "NOTICE [lindex $text 0] :Tu est enlever de ma userlist."
   return 0
  }
 }
 chattr [lindex $text 0] |-nmofv $chan
 puthelp "NOTICE $nick :[lindex $text 0] est enlever de ma userlist de $chan."
 puthelp "NOTICE [lindex $text 0] :Tu est enlever de ma userlist de $chan."
}
 
 
# Delowner #
 
bind pub n| [string trim $kaneda(prefix)]delowner pub_delowner
proc pub_delowner {nick uhost hand chan text} {
 global botnick kaneda
 if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
 }
 if {[lindex $text 0] == $botnick} {
  puthelp "NOTICE $nick : Tu méritais mieux! :["
  return 0
 }
 if {[lindex $text 0]==""} {
  puthelp "NOTICE $nick :\002Quick HELP: [string trim $kaneda(prefix)]delowner <nick>"
  return 0
 }
 if {[validuser [lindex $text 0]] == 0} {
  puthelp "NOTICE $nick :[lindex $text 0] n'a pas d'access"
  return 0
 }
 if {[lindex $text 1] == "all"} {
  if {[matchattr $hand n] == 1} {
   if {[matchattr [lindex $text 0] n] == 0} {
    puthelp "NOTICE $nick :[lindex $text 0] n'est pas global owner."
    return 0
   }
   chattr [lindex $text 0] -n
   puthelp "NOTICE $nick :[lindex $text 0] n'est plus global owner."
   puthelp "NOTICE [lindex $text 0] :Tu n'est plus global owner."
   return 0
  }
 }
 if {[matchattr [lindex $text 0] |n $chan] == 0} {
  puthelp "NOTICE $nick :[lindex $text 0] n'est pas owner de $chan."
  return 0
 }
 chattr [lindex $text 0] |-n $chan
 puthelp "NOTICE $nick :[lindex $text 0] n'est plus owner de $chan."
 putserv "MODE $chan -o [lindex $text 0]"
}
 
 
# Delmaster #
 
bind pub n|n [string trim $kaneda(prefix)]delmaster pub_delmaster
proc pub_delmaster {nick uhost hand chan text} {
 global botnick kaneda
 if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
 }
 if {[lindex $text 0] == $botnick} {
  puthelp "NOTICE $nick : Tu l'as bien mérité :]"
  return 0
 }
 if {[lindex $text 0]==""} {
  puthelp "NOTICE $nick :\002Quick HELP: [string trim $kaneda(prefix)]delmaster <nick>"
  return 0
 }
 if {[validuser [lindex $text 0]] == 0} {
  puthelp "NOTICE $nick :[lindex $text 0] n'a pas d'access"
  return 0
 }
 if {[lindex $text 1] == "all"} {
  if {[matchattr $hand n] == 1} {
   if {[matchattr [lindex $text 0] m] == 0} {
    puthelp "NOTICE $nick :[lindex $text 0] n'est pas global master."
    return 0
   }
   chattr [lindex $text 0] -m
   puthelp "NOTICE $nick :[lindex $text 0] n'est plus global master."
   puthelp "NOTICE [lindex $text 0] :Tu n'est plus global master."
   return 0
  }
 }
 if {[matchattr [lindex $text 0] |m $chan] == 0} {
  puthelp "NOTICE $nick :[lindex $text 0] n'est pas master de $chan."
  return 0
 }
 chattr [lindex $text 0] |-m $chan
 puthelp "NOTICE $nick :[lindex $text 0] n'est plus master de $chan."
 putserv "MODE $chan -o [lindex $text 0]"
}
 
 
# Delop #
 
bind pub m|m [string trim $kaneda(prefix)]delop pub_delop
proc pub_delop {nick uhost hand chan text} {
 global botnick kaneda
 if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
 }
 if {[lindex $text 0] == $botnick} {
  puthelp "NOTICE $nick : Tu fais pas ton boulot comme prévue!"
  return 0
 }
 if {[lindex $text 0]==""} {
  puthelp "NOTICE $nick :\002Quick HELP: [string trim $kaneda(prefix)]delop <nick>"
  return 0
 }
 if {[validuser [lindex $text 0]] == 0} {
  puthelp "NOTICE $nick :[lindex $text 0] n'a pas d'access"
  return 0
 }
 if {[lindex $text 1] == "all"} {
  if {[matchattr $hand m] == 1} {
   if {[matchattr [lindex $text 0] o] == 0} {
    puthelp "NOTICE $nick :[lindex $text 0] n'est pas global operateur."
    return 0
   }
   chattr [lindex $text 0] -o
   puthelp "NOTICE $nick :[lindex $text 0] n'est plus global operateur."
   puthelp "NOTICE [lindex $text 0] :Tu n'est plus global operateur."
   return 0
  }
 }
 if {[matchattr [lindex $text 0] |o $chan] == 0} {
  puthelp "NOTICE $nick :[lindex $text 0] n'est pas operateur de $chan."
  return 0
 }
 chattr [lindex $text 0] |-o $chan
 puthelp "NOTICE $nick :[lindex $text 0] n'est plus operateur de $chan."
 putserv "MODE $chan -o [lindex $text 0]"
}
 
 
# Delvoice #
 
bind pub o|o [string trim $kaneda(prefix)]delvoice pub_delvoice
proc pub_delvoice {nick uhost hand chan text} {
 global botnick kaneda
 if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
 }
 if {[lindex $text 0] == $botnick} {
  puthelp "NOTICE $nick : Trop de Idle n'est pas accepté."
  return 0
 }
 if {[lindex $text 0]==""} {
  puthelp "NOTICE $nick :\002Quick HELP: [string trim $kaneda(prefix)]delvoice <nick>"
  return 0
 }
 if {[validuser [lindex $text 0]] == 0} {
  puthelp "NOTICE $nick :[lindex $text 0] n'a pas d'access."
  return 0
 }
 if {[lindex $text 1] == "all"} {
  if {[matchattr $hand o] == 1} {
   if {[matchattr [lindex $text 0] v] == 0} {
    puthelp "NOTICE $nick :[lindex $text 0] n'est pas global voice."
    return 0
   }
   chattr [lindex $text 0] -v
   puthelp "NOTICE $nick :[lindex $text 0] n'est plus global voice."
   puthelp "NOTICE [lindex $text 0] :Tu n'est plus global voice."
   return 0
  }
 }
 if {[matchattr [lindex $text 0] |v $chan] == 0} {
  puthelp "NOTICE $nick :[lindex $text 0] n'est pas voice de $chan."
  return 0
 }
 chattr [lindex $text 0] |-v $chan
 puthelp "NOTICE $nick :[lindex $text 0] n'est plus voice de $chan."
 putserv "MODE $chan -v [lindex $text 0]"
}
 
 
# Join #
 
bind pub n| [string trim $kaneda(prefix)]join pub_join
proc pub_join {nick uhost hand chan text} {
 global botnick kaneda
 if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
 }
 if {[lindex $text 0]==""} {
  puthelp "NOTICE $nick :\002Quick HELP: [string trim $kaneda(prefix)]join <#channel>"
  return 0
 }
 if {[validchan [lindex $text 0]]} {
  puthelp "NOTICE $nick :Je suis deja sur [lindex $text 0]."
  return 0
 }
 puthelp "NOTICE $nick :Je garde maintenant [lindex $text 0]."
 channel add [lindex $text 0]
 putserv "JOIN [lindex $text 0]"
}
 
 
# Cycle #
 
bind pub n|n [string trim $kaneda(prefix)]cycle pub_cycle
proc pub_cycle {nick uhost hand chan text} {
 global botnick kaneda
 if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
 }
 if {[lindex $text 0]==""} {
  puthelp "NOTICE $nick :\002Quick HELP: [string trim $kaneda(prefix)]cycle <#channel>"
  return 0
 }
 if {[validchan [lindex $text 0]] == 0} {
  puthelp "NOTICE $nick :Je ne suis pas sur [lindex $text 0]."
  return 0
 }
 puthelp "NOTICE $nick :Je fait un cycle sur [lindex $text 0]."
 putserv "PART [lindex $text 0]"
}
 
 
# Remove #
 
bind pub n| [string trim $kaneda(prefix)]remove pub_remove
proc pub_remove {nick uhost hand chan text} {
 global botnick kaneda
 if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
 }
 if {[lindex $text 0]==""} {
  puthelp "NOTICE $nick :\002Quick HELP: [string trim $kaneda(prefix)]remove <#channel>"
  return 0
 }
 if {[validchan [lindex $text 0]] == 0} {
  puthelp "NOTICE $nick :Je ne suis pas sur [lindex $text 0]."
  return 0
 }
 puthelp "NOTICE $nick :Je ne protege plus [lindex $text 0]."
 channel remove [lindex $text 0]
 putserv "PART [lindex $text 0]"
}
 
 
# Mode #
 
bind pub o|o [string trim $kaneda(prefix)]mode pub_mode
proc pub_mode {nick uhost hand chan text} {
 global botnick kaneda
 if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
 }
 if {[lindex $text 0]==""} {
  puthelp "NOTICE $nick :\002Quick HELP: [string trim $kaneda(prefix)]mode <modes>"
  return 0
 }
 putserv "MODE $chan [lrange $text 0 end]"
}
 
 
# Addbot #
 
bind pub n| [string trim $kaneda(prefix)]addbot pub_addbot
proc pub_addbot {nick uhost hand chan text} {
 global botnick kaneda
 if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
 }
 if {[lindex $text 0] == $botnick} {
  puthelp "NOTICE $nick : Nous sommes frères."
  return 0
 }
 if {[lindex $text 0]=="" || [lindex $text 1]==""} {
  puthelp "NOTICE $nick :\002Quick HELP: [string trim $kaneda(prefix)]addbot <nick> <port>"
  return 0
 }
 if {[onchan [lindex $text 0] $chan] == 0} {
  puthelp "NOTICE $nick :[lindex $text 0] n'est pas sur $chan."
  return 0
 }
 if {[validuser [lindex $text 0]] == 1} {
  puthelp "NOTICE $nick :Ce bot existe deja !"
  return 0
 }
 if {[validuser [lindex $text 0]] == 0} {
  addbot [lindex $text 0] [lindex [split [getchanhost [lindex $text 0] $chan] "@"] 1]:[lindex $text 1]
  setuser [lindex $text 0] hosts [maskhost [getchanhost [lindex $text 0] $chan]]
  chattr [lindex $text 0] +o
  puthelp "NOTICE $nick :Ce bot est bien ajouter."
 }
}
 
 
# Delbot #
 
bind pub n| [string trim $kaneda(prefix)]delbot pub_delbot
proc pub_delbot {nick uhost hand chan text} {
 global botnick kaneda
 if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
 }
 if {[lindex $text 0] == $botnick} {
  puthelp "NOTICE $nick : Je me suis trompé!"
  return 0
 }
 if {[lindex $text 0]==""} {
  puthelp "NOTICE $nick :\002Quick HELP: [string trim $kaneda(prefix)]delbot <nick>"
  return 0
 }
 if {[validuser [lindex $text 0]] == 0} {
  puthelp "NOTICE $nick :[lindex $text 0] n'est pas un bot valid."
  return 0
 }
 deluser [lindex $text 0]
 puthelp "NOTICE $nick :Ce bot est bien enlever."
}
 
 
# List #
 
bind pub f|f [string trim $kaneda(prefix)]list pub_list
proc pub_list {nick uhost hand chan rest} {
 if {[lindex $rest 0] == ""} {
  puthelp "NOTICE $nick :Voici la liste des \002GLOBALS\002 utilisateurs:"
  puthelp "NOTICE $nick :\002OWNER:\002 [userlist n] ([llength [userlist +n]]) \002MASTER:\002 [userlist m] ([llength [userlist +m]]) \002OP:\002 [userlist o] ([llength [userlist +o]]) \002Auto-op:\002 [userlist a] ([llength [userlist +a]]) \002VOICE:\002 [userlist v] ([llength [userlist +v]])"
 }
 if {[lindex $rest 0] != ""} {
  if {[validchan [lindex $rest 0]] == 0} {
   puthelp "NOTICE $nick :Je ne suis pas sur [lindex $rest 0]."
   return 0
  }
  puthelp "NOTICE $nick :Voici la liste des utilisateurs du channel \002[lindex $rest 0]\002:"
  puthelp "NOTICE $nick :\002OWNER:\002 [userlist |n [lindex $rest 0]] ([llength [userlist |n [lindex $rest 0]]]) \002MASTER:\002 [userlist |m [lindex $rest 0]] ([llength [userlist |m [lindex $rest 0]]]) \002OP:\002 [userlist |o [lindex $rest 0]] ([llength [userlist |o [lindex $rest 0]]]) \002Auto-op:\002 [userlist |a [lindex $rest 0]] ([llength [userlist |a [lindex $rest 0]]]) \002VOICE:\002 [userlist |v [lindex $rest 0]] ([llength [userlist |v [lindex $rest 0]]])"
 }
}
 
 
# Help #
 
bind pub o|o [string trim $kaneda(prefix)]help pub_help
proc pub_help {nick uhost hand chan text} {
 global botnick kaneda
 if {[matchattr $hand n] == 1} {
  puthelp "NOTICE $nick :\002¤-¤-¤ OWNER ¤-¤-¤"
  puthelp "NOTICE $nick :[string trim $kaneda(prefix)]op \[nick\], [string trim $kaneda(prefix)]deop \[nick\], [string trim $kaneda(prefix)]voice \[nick\], [string trim $kaneda(prefix)]devoice \[nick\], [string trim $kaneda(prefix)]kick <nick> \[reason\], [string trim $kaneda(prefix)]ban <nick> \[reason\], [string trim $kaneda(prefix)]unban <nick ou host>, [string trim $kaneda(prefix)]topic <texte>, [string trim $kaneda(prefix)]addowner <nick> \[all\], [string trim $kaneda(prefix)]addmaster <nick> \[all\], [string trim $kaneda(prefix)]addop <nick> \[all\], [string trim $kaneda(prefix)]addvoice <nick> \[all\], [string trim $kaneda(prefix)]addauto-op <nick> \[all\], [string trim $kaneda(prefix)]delowner <nick> \[all\]"
  puthelp "NOTICE $nick :[string trim $kaneda(prefix)]delmaster <nick> \[all\], [string trim $kaneda(prefix)]delop <nick> \[all\], [string trim $kaneda(prefix)]delauto-op <nick> \[all\], [string trim $kaneda(prefix)]delvoice <nick> \[all\], [string trim $kaneda(prefix)]deluser <nick> \[all\], [string trim $kaneda(prefix)]join <#channel>, [string trim $kaneda(prefix)]cycle <#channel>, [string trim $kaneda(prefix)]remove <#channel>, [string trim $kaneda(prefix)]mode <mode>, [string trim $kaneda(prefix)]addbot <nick> <port>, [string trim $kaneda(prefix)]delbot <nick>, [string trim $kaneda(prefix)]list \[#channel\]"
 }
 if {([matchattr $hand n] == 0) && ([matchattr $hand m] == 1)} {
  puthelp "NOTICE $nick :\002¤-¤-¤ MASTER ¤-¤-¤"
  puthelp "NOTICE $nick :[string trim $kaneda(prefix)]op \[nick\], [string trim $kaneda(prefix)]deop \[nick\], [string trim $kaneda(prefix)]voice \[nick\], [string trim $kaneda(prefix)]devoice \[nick\], [string trim $kaneda(prefix)]kick <nick> \[reason\], [string trim $kaneda(prefix)]ban <nick> \[reason\], [string trim $kaneda(prefix)]unban <nick ou host>, [string trim $kaneda(prefix)]topic <texte>, [string trim $kaneda(prefix)]addop <nick> \[all\], [string trim $kaneda(prefix)]addvoice <nick> \[all\], [string trim $kaneda(prefix)]addauto-op <nick> \[all\], [string trim $kaneda(prefix)]delop <nick> \[all\], [string trim $kaneda(prefix)]delauto-op <nick> \[all\], [string trim $kaneda(prefix)]delvoice <nick> \[all\], [string trim $kaneda(prefix)]list \[#channel\]"
 }
 if {([matchattr $hand n] == 0) && ([matchattr $hand o] == 1)} {
  puthelp "NOTICE $nick :\002¤-¤-¤ OP ¤-¤-¤"
  puthelp "NOTICE $nick :[string trim $kaneda(prefix)]op \[nick\], [string trim $kaneda(prefix)]deop \[nick\], [string trim $kaneda(prefix)]voice \[nick\], [string trim $kaneda(prefix)]devoice \[nick\], [string trim $kaneda(prefix)]kick <nick> \[reason\], [string trim $kaneda(prefix)]ban <nick> \[reason\], [string trim $kaneda(prefix)]unban <nick ou host>, [string trim $kaneda(prefix)]topic <texte>, [string trim $kaneda(prefix)]addvoice <nick> \[all\], [string trim $kaneda(prefix)]delvoice <nick> \[all\], [string trim $kaneda(prefix)]list \[#channel\]"
 }
 if {[matchattr $hand |n $chan] == 1} {
  puthelp "NOTICE $nick :\002¤-¤-¤ CHAN OWNER ¤-¤-¤"
  puthelp "NOTICE $nick :[string trim $kaneda(prefix)]op \[nick\], [string trim $kaneda(prefix)]deop \[nick\], [string trim $kaneda(prefix)]voice \[nick\], [string trim $kaneda(prefix)]devoice \[nick\], [string trim $kaneda(prefix)]kick <nick> \[reason\], [string trim $kaneda(prefix)]ban <nick> \[reason\], [string trim $kaneda(prefix)]unban <nick ou host>, [string trim $kaneda(prefix)]topic <texte>, [string trim $kaneda(prefix)]addmaster <nick>, [string trim $kaneda(prefix)]addop <nick>, [string trim $kaneda(prefix)]addvoice <nick>, [string trim $kaneda(prefix)]addauto-op <nick>"
  puthelp "NOTICE $nick :[string trim $kaneda(prefix)]delmaster <nick>, [string trim $kaneda(prefix)]delop <nick>, [string trim $kaneda(prefix)]delauto-op <nick>, [string trim $kaneda(prefix)]delvoice <nick>, [string trim $kaneda(prefix)]deluser <nick>, [string trim $kaneda(prefix)]cycle <#channel>, [string trim $kaneda(prefix)]mode <mode>, [string trim $kaneda(prefix)]list \[#channel\]"
 }
 if {([matchattr $hand |n $chan] == 0) && ([matchattr $hand |m $chan] == 1)} {
  puthelp "NOTICE $nick :\002¤-¤-¤ CHAN MASTER ¤-¤-¤"
  puthelp "NOTICE $nick :[string trim $kaneda(prefix)]op \[nick\], [string trim $kaneda(prefix)]deop \[nick\], [string trim $kaneda(prefix)]voice \[nick\], [string trim $kaneda(prefix)]devoice \[nick\], [string trim $kaneda(prefix)]kick <nick> \[reason\], [string trim $kaneda(prefix)]ban <nick> \[reason\], [string trim $kaneda(prefix)]unban <nick ou host>, [string trim $kaneda(prefix)]topic <texte>, [string trim $kaneda(prefix)]addop <nick>, [string trim $kaneda(prefix)]addvoice <nick>, [string trim $kaneda(prefix)]addauto-op <nick>, [string trim $kaneda(prefix)]delop <nick>, [string trim $kaneda(prefix)]delauto-op <nick>, [string trim $kaneda(prefix)]delvoice <nick>, [string trim $kaneda(prefix)]list \[#channel\]"
 }
 if {([matchattr $hand |n $chan] == 0) && ([matchattr $hand |o $chan] == 1)} {
  puthelp "NOTICE $nick :\002¤-¤-¤ CHAN OP ¤-¤-¤"
  puthelp "NOTICE $nick :[string trim $kaneda(prefix)]op \[nick\], [string trim $kaneda(prefix)]deop \[nick\], [string trim $kaneda(prefix)]voice \[nick\], [string trim $kaneda(prefix)]devoice \[nick\], [string trim $kaneda(prefix)]kick <nick> \[reason\], [string trim $kaneda(prefix)]ban <nick> \[reason\], [string trim $kaneda(prefix)]unban <nick ou host>, [string trim $kaneda(prefix)]topic <texte>, [string trim $kaneda(prefix)]addvoice <nick>, [string trim $kaneda(prefix)]delvoice <nick>, [string trim $kaneda(prefix)]list \[#channel\]"
 }
}
 
###################################
#            Fonctions            #
#     recommendé de pas toucher   #
# Risque: faire planté le eggdrop #
###################################
 
### Identification, Shutup, Auto-op, Désidentification,
### Unshutup, Détecteur de clone, Message de bienvenue.
 
 
# Identification #
 
bind msg | id msg_ident
proc msg_ident {nick uhost hand text} {
 global botnick
 if {[matchattr $hand Q] == 1} {
  puthelp "NOTICE $nick :Tu es déjà identifier."
  return 0
 }
 if {[passwdok $hand ""] == 1} {
  puthelp "NOTICE $nick :Tu n'as pas de password. Fait /msg $botnick pass <password_voulu>"
  return 0
 }
 if {[passwdok $hand [lindex $text 0]] == 1} {
  chattr $hand +Q
  putcmdlog "#$hand# id..."
  puthelp "NOTICE $nick :Vous êtes maintenant identifier, pour vous désidentifier: /msg $botnick unident <password>"
 }
 if {[passwdok $hand [lindex $text 0]] == 0} {
  puthelp "NOTICE $nick :Votre identification a fouarré :P \002Password incorrect\002"
 }
}
 
 
# Désidentification #
 
bind sign | * sign_delogin
proc sign_delogin {nick uhost hand chan text} {
 if {[matchattr $hand Q] == 1} {
  chattr $hand -Q
 }
 if {[matchattr $hand Q] == 0} {
  return 0
 }
}
bind msg | unident msg_unident
proc msg_unident {nick uhost hand text} {
 global botnick
 if {$text == ""} {
  puthelp "NOTICE $nick :\002Quick HELP: /msg $botnick unident <password>"
  return 0
 }
 if {[matchattr $hand Q] == 0} {
  puthelp "NOTICE $nick :Tu ne t'es jamais identifier."
  return 0
 }
 if {[passwdok $hand $text] == 1} {
  chattr $hand -Q
  puthelp "NOTICE $nick :Tu n'es plus identifier."
 }
 if {[passwdok $hand $text] == 0} {
  puthelp "NOTICE $nick :Votre désidentification a fouarré :P \002Password incorrect\002"
 }
}
 
 
# Shutup #
 
bind msg | shutup msg_shutup
proc msg_shutup {nick uhost hand text} {
 global botnick
 if {[matchattr $hand S] == 1} {
  puthelp "NOTICE $nick :Le mode shutup est déjà activer."
  return 0
 }
 if {[lindex $text 0] == ""} {
  puthelp "NOTICE $nick :\002Quick HELP: /msg $botnick shutup <password>"
 }
 if {[passwdok $hand ""] == 1} {
  puthelp "NOTICE $nick :Tu n'as pas de password. Fait /msg $botnick pass <password_voulu>"
  return 0
 }
 if {[passwdok $hand [lindex $text 0]] == 1} {
  chattr $hand +S
  putcmdlog "#$hand# shutup..."
  puthelp "NOTICE $nick :Le mode shutup est maintenant activer. Pour le désactiver: /msg $botnick unshutup <password>"
 }
 if {[passwdok $hand [lindex $text 0]] == 0} {
  puthelp "NOTICE $nick :Le mode shutup n'est pas activer. \002Password incorrect\002"
 }
}
 
 
# Unshutup #
 
bind msg | unshutup msg_unshutup
proc msg_unshutup {nick uhost hand text} {
 global botnick
 if {[matchattr $hand S] == 0} {
  puthelp "NOTICE $nick :Le mode shutup n'est pas activer."
  return 0
 }
 if {[lindex $text 0] == ""} {
  puthelp "NOTICE $nick :\002Quick HELP: /msg $botnick unshutup <password>"
 }
 if {[passwdok $hand ""] == 1} {
  puthelp "NOTICE $nick :Tu n'as pas de password. Fait /msg $botnick pass <password_voulu>"
  return 0
 }
 if {[passwdok $hand [lindex $text 0]] == 1} {
  chattr $hand -S
  putcmdlog "#$hand# unshutup..."
  puthelp "NOTICE $nick :Le mode shutup est maintenant desactiver. Pour l'activer: /msg $botnick shutup <password>"
 }
 if {[passwdok $hand [lindex $text 0]] == 0} {
  puthelp "NOTICE $nick :Le mode shutup n'est pas desactiver. \002Password incorrect\002"
 }
}
 
 
# Auto-op #
 
bind join a|a * pubcommand_auto-op
proc pubcommand_auto-op {nick uhost hand chan} {
 putserv "MODE $chan +o $nick"
}
 
 
# Message de bienvenue #
 
bind join - * join_welcome
proc join_welcome {nick uhost hand chan} {
 global botnick owner kaneda
 if {$kaneda(welcome) == "OUI"} {
  if {$chan == $kaneda(service.chan)} {
   if {$kaneda(service) == "OUI"} {
    if {$kaneda(service.welcome) == "OUI"} {
     puthelp "NOTICE $nick :$kaneda(service.welcome.text)"
     return 0
    }
   }
  }
  if {$nick != $botnick} {
   putserv "NOTICE $nick :$kaneda(welcome.text)"
  }
 }
}
 
# Détecteur de clone #
 
bind join - * join_clone
proc join_clone {nick uhost hand chan} {
 global clone_chans botnick owner kaneda
 if {$kaneda(clonedetect) == "OUI"} {
  if {(([lsearch -exact [string tolower $chan] [string tolower $chan]] != -1) || ($chan == "*")) && ($nick != $botnick) && ($nick != $owner)} {
   foreach i [chanlist $chan] {
    set clone_temp [lindex [split [getchanhost $i $chan] @] 1]
    if {($clone_temp == [lindex [split $uhost @] 1]) && ($i != $nick) && ($i != $botnick) && ($i != $owner)} {
    putserv "PRIVMSG $chan :Hum... ya des clones: $nick & $i (*!*@$clone_temp)"
     return 1
    }
   }
  }
 }
}
 
 
# Mentionner les op, deop #
 
bind mode -o "% -o" got_deoped
proc got_deoped {nick uhost hand chan -o victim} {
global botnick kaneda
 if {$kaneda(service) == "OUI"} {
  if {$kaneda(service.opdeop) == "OUI"} {
   if {$chan==$kaneda(service.chan)} {
    return 0
   }
   if {$victim==$botnick} {
    putserv "PRIVMSG $kaneda(service.chan) :ALERTE: $nick ($uhost) m'a deop de $chan"
    flushmode $chan
    putserv "PRIVMSG $chan :ALERTE: $nick ($uhost) m'a deop de $chan, pour pouvoir me garder, vous devez me op maintenant, ce message est envoyer sur $kaneda(service.chan), et quelqu'un va venir, et si je ne suis pas op, votre channel sera enlever de ma liste..."
    return 0
   }
  }
 }
}
 
bind mode +o "% +o" got_oped
proc got_oped {nick uhost hand chan +o victim} {
global botnick kaneda
 if {$kaneda(service) == "OUI"} {
  if {$kaneda(service.opdeop) == "OUI"} {
   if {$victim==$botnick} {
    putserv "PRIVMSG $chan :Merci $nick. Je suis maintenant fonctionnel."
    return 0
   }
  }
 }
}
 
###################################### Fin #######################################




RE: Aide - SVP - sur ce script - fedora - 13/04/2009

bonsoir
as tu essaye .list ou .help comme indiquer dans le TCL ?


RE: Aide - SVP - sur ce script - Behemoth - 13/04/2009

Re bsr,

j ai fais le '.help' et quand j ai tapper .list #salon ou .list, j ai rien

:S


RE: Aide - SVP - sur ce script - cestlemien - 13/04/2009

Salut ,
Quand on lis un peu ton tcl , on peux voir des choses de ce genre :


tcl
# Message de bienvenue aux joins (par défault) ? OUI ou NON
set kaneda(welcome) "NON"
set kaneda(welcome.text) "Bienvenue sur #. Pour vos commandes de Bot, venez sur #. Merci :]"
# PS: Si vous mettez la commande [userlist |n $chan] dans le texte, il dira les owners du chan.


(lire le PS)

bonne continuation :)


RE: Aide - SVP - sur ce script - aliasangelius - 11/04/2010


tcl
###########################################################
#   Ce TCL est entièrement fait par Kaneda modifier par alias_angelius et il est                 #
#           fait pour tout faire :)                                                                                       #
###########################################################
 
#################
# Configuration #
#################
 
# Votre channel principale
set kaneda "#salon"
 
# Choisissez le caractere devant les commandes Ex.: ! @ ? $
set prefixcmd "!"
 
# Message de bienvenue aux joins (par défault) ? OUI ou NON
set welcome "NON"
set welcometexte "Bienvenue sur $chan Nous te shouaitont un agréable t'chat en notre compagnie en respectant les règles du salon ! Owner du salon [userlist |n $chan]"
# PS: Si vous mettez la commande [userlist |n $chan] dans le texte, il dira les owners du chan.
 
# Détecteur de clone ? OUI ou NON
set clonedetect "NON"
 
############
# Services #
############
 
# Est-ce que votre eggdrop est pour un service (Ex.: Orange Service) ? OUI ou NON
set service "OUI"
set servicechan "#salon"
set servicebackchan "#ops.salon"
 
# Voulez-vous un message spécial lorsque quelqu'un join votre channel ? OUI ou NON
set servicewelcome "NON"
set servicewelcometext "Vous venez d`entrer dans un canal privé A vos risques et perils !!! :)"
 
# Mentionner lorsque le eggdrop est opé ou déopé ? OUI ou NON
set serviceopdeop "NON"
 
###################################
#            Commandes            #
#     recommendé de pas toucher   #
# Risque: faire planté le eggdrop #
###################################
 
### Op, Deop, Voice, Devoice, Kick, Ban, Unban, Topic, Addowner, Addmaster,
### Addop, Addvoice, Addauto-op, Delauto-op, Deluser, Delowner, Delmaster, Delop,
### Delvoice, Join, Cycle, Remove, Mode, Addbot, Delbot, Help, List.
 
 
# Op #
bind pub o|o [string trim $prefixcmd]op pub_op
proc pub_op {nick uhost hand chan text} {
global botnick kaneda
if {[matchattr $hand S] == 1} {
  return 0
}
if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
}
if {![botisop $chan]} {
  puthelp "NOTICE $nick : Je vais maintenant prendre controle de ton salon."
  return 0
}
if {[lindex $text 0]!=""} {
  if {[onchan [lindex $text 0] $chan] == 0} {
   puthelp "NOTICE $nick :[lindex $text 0] n'est pas sur $chan."
   return 0
  }
  pushmode $chan +o [lindex $text 0]
  return 0
}
pushmode $chan +o $nick
}
 
 
# Deop #
bind pub o|o [string trim $prefixcmd]deop pub_deop
proc pub_deop {nick uhost hand chan text} {
global botnick kaneda
if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
}
if {[lindex $text 0] == $botnick} {
  putserv "KICK $chan $nick Oups... me suis tromper :P"
  return 0
}
if {[lindex $text 0]!=""} {
  if {[onchan [lindex $text 0] $chan] == 0} {
   puthelp "NOTICE $nick :[lindex $text 0] n'est pas sur $chan."
   return 0
  }
  pushmode $chan -o [lindex $text 0]
  return 0
}
pushmode $chan -o $nick
}
 
 
# Voice #
bind pub o|o [string trim $prefixcmd]voice pub_voice
proc pub_voice {nick uhost hand chan text} {
global botnick kaneda
if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
}
if {[lindex $text 0]!=""} {
  if {[onchan [lindex $text 0] $chan] == 0} {
   puthelp "NOTICE $nick :[lindex $text 0] n'est pas sur $chan."
   return 0
  }
  pushmode $chan -o [lindex $text 0]
  pushmode $chan +v [lindex $text 0]
  return 0
}
pushmode $chan -o $nick
pushmode $chan +v $nick
}
 
 
# Devoice #
bind pub o|o [string trim $prefixcmd]devoice pub_devoice
proc pub_devoice {nick uhost hand chan text} {
global botnick kaneda
if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
}
if {[lindex $text 0]!=""} {
  if {[onchan [lindex $text 0] $chan] == 0} {
   puthelp "NOTICE $nick :[lindex $text 0] n'est pas sur $chan."
   return 0
  }
  pushmode $chan -v [lindex $text 0]
  return 0
}
pushmode $chan -v $nick
}
 
 
# Kick #
bind pub o|o [string trim $prefixcmd]kick pub_kick
proc pub_kick {nick uhost hand chan text} {
global botnick kaneda prefixcmd
if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
}
if {[lindex $text 0] == $botnick} {
  putserv "KICK $chan $nick Oups... me suis tromper :P"
  return 0
}
if {[lindex $text 0]==""} {
  puthelp "NOTICE $nick :\002Quick HELP: [string trim $prefixcmd]kick <nick> \[message\]"
  return 0
}
if {[onchan [lindex $text 0] $chan] == 0} {
  puthelp "NOTICE $nick :[lindex $text 0] n'est pas sur $chan."
  return 0
}
if {[lindex $text 0]!=""} {
  if {[matchattr [lindex $text 0] |m $chan] == 0} {
   putserv "kick $chan [lindex $text 0] [lrange $text 1 end]"
   return 0
  }
  if {[matchattr [lindex $text 0] |m $chan] == 1} {
   if {[matchattr $hand |m $chan] == 0} {
    if {[matchattr $hand o] != 1} {
     puthelp "NOTICE $nick :Tu ne peux pas kicker un superieur c'est pas disney-land !"
     return 0
    }
   }
   putserv "kick $chan [lindex $text 0] [lrange $text 1 end]"
  }
}
}
 
 
# Ban #
bind pub o|o [string trim $prefixcmd]ban pub_ban
proc pub_ban {nick uhost hand chan text} {
global botnick kaneda prefixcmd
if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
}
if {[lindex $text 0] == $botnick} {
  putserv "KICK $chan $nick Oups... me suis tromper :P"
  return 0
}
if {[lindex $text 0]==""} {
  puthelp "NOTICE $nick :\002Quick HELP: [string trim $prefixcmd]ban <nick> \[message\]"
  return 0
}
if {[onchan [lindex $text 0] $chan] == 0} {
  putserv "MODE $chan +b [lindex $text 0]"
  return 0
}
if {[lindex $text 0]!=""} {
  append userhost [lindex $text 0] "!*" [getchanhost [lindex $text 0] $chan]
  set hostmask [maskhost $userhost]
  if {[matchattr [lindex $text 0] |m $chan] == 0} {
   putserv "mode $chan +b $hostmask"
   putserv "kick $chan [lindex $text 0] [lrange $text 1 end]"
   return 0
  }
  if {[matchattr [lindex $text 0] |m $chan] == 1} {
   if {[matchattr $hand |m $chan] == 0} {
    if {[matchattr $hand o] != 1} {
     puthelp "NOTICE $nick :Tu ne peux pas bannir un superieur c'est pas disney-land !"
     return 0
    }
   }
   putserv "mode $chan +b $hostmask"
   putserv "kick $chan [lindex $text 0] [lrange $text 1 end]"
  }
}
}
 
 
# Unban #
bind pub o|o [string trim $prefixcmd]unban pub_unban
proc pub_unban {nick uhost hand chan text} {
global botnick kaneda prefixcmd
if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
}
if {[lindex $text 0]==""} {
  puthelp "NOTICE $nick :\002Quick HELP: [string trim $prefixcmd]unban <hostmask>"
  return 0
}
if {[lindex $text 0]!=""} {
  putserv "mode $chan -b [lindex $test 0]"
}
}
 
 
# Topic #
bind pub o|o [string trim $prefixcmd]topic pub_topic
proc pub_topic {nick uhost hand chan text} {
global botnick kaneda prefixcmd
if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
}
if {[lindex $text 0]==""} {
  puthelp "NOTICE $nick :\002Quick HELP: [string trim $prefixcmd]topic <texte>"
  return 0
}
putserv "TOPIC $chan [lrange $text 0 end]"
}
 
 
# Addowner #
 
bind pub n|n [string trim $prefixcmd]addowner pub_addowner
proc pub_addowner {nick uhost hand chan text} {
global botnick kaneda prefixcmd
if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
}
if {[lindex $text 0]==""} {
  if {[matchattr $hand n] == 1} {
   puthelp "NOTICE $nick :\002Quick HELP: [string trim $prefixcmd]addowner <nick> \[all\]"
   return 0
  }
  puthelp "NOTICE $nick :\002Quick HELP: [string trim $prefixcmd]addowner <nick>"
  return 0
}
if {[lindex $text 0] == $botnick} {
  puthelp "NOTICE $nick : Salut. On va faire une équipe."
  return 0
}
if {[onchan [lindex $text 0] $chan] == 0} {
  puthelp "NOTICE $nick :[lindex $text 0] n'est pas sur $chan."
  return 0
}
if {[lindex $text 1] == "all"} {
  if {[matchattr $hand n] == 1} {
   if {[validuser [lindex $text 0]] == 0} {
    adduser [lindex $text 0] [maskhost [getchanhost [lindex $text 0] $chan]]
    chattr [lindex $text 0] +n
    puthelp "NOTICE $nick :[lindex $text 0] est maintenant global owner."
    puthelp "NOTICE [lindex $text 0] :Tu es maintenant global owner."
    puthelp "NOTICE [lindex $text 0] :Tu dois setter ton pass (/msg $botnick pass <password_voulu>)"
    return 0
   }
   if {[validuser [lindex $text 0]] == 1} {
    chattr [lindex $text 0] +n
    puthelp "NOTICE $nick :[lindex $text 0] est maintenant global owner."
    puthelp "NOTICE [lindex $text 0] :Tu es maintenant global owner."
    return 0
   }
  }
}
if {[validuser [lindex $text 0]] == 0} {
  adduser [lindex $text 0] [maskhost [getchanhost [lindex $text 0] $chan]]
  chattr [lindex $text 0] |+n $chan
  puthelp "NOTICE $nick :[lindex $text 0] est maintenant owner de $chan."
  puthelp "NOTICE [lindex $text 0] :Tu es maintenant owner de $chan."
  puthelp "NOTICE [lindex $text 0] :Tu dois setter ton pass (/msg $botnick pass <password_voulu>)"
  putserv "MODE $chan +o [lindex $text 0]"
  return 0
}
if {[validuser [lindex $text 0]] == 1} {
  chattr [lindex $text 0] |+n $chan
  puthelp "NOTICE $nick :[lindex $text 0] est maintenant owner de $chan."
  puthelp "NOTICE [lindex $text 0] :Tu es maintenant owner de $chan."
  putserv "MODE $chan +o [lindex $text 0]"
}
}
 
 
# Addmaster #
 
bind pub n|n [string trim $prefixcmd]addmaster pub_addmaster
proc pub_addmaster {nick uhost hand chan text} {
global botnick kaneda prefixcmd
if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
}
if {[lindex $text 0] == $botnick} {
  puthelp "NOTICE $nick :l Salut. On va faire une équipe."
  return 0
}
if {[lindex $text 0]==""} {
  if {[matchattr $hand n] == 1} {
   puthelp "NOTICE $nick :\002Quick HELP: [string trim $prefixcmd]addmaster <nick> \[all\]"
   return 0
  }
  puthelp "NOTICE $nick :\002Quick HELP: [string trim $prefixcmd]addmaster <nick>"
  return 0
}
if {[onchan [lindex $text 0] $chan] == 0} {
  puthelp "NOTICE $nick :[lindex $text 0] n'est pas sur $chan."
  return 0
}
if {[lindex $text 1] == "all"} {
  if {[matchattr $hand n] == 1} {
   if {[validuser [lindex $text 0]] == 0} {
    adduser [lindex $text 0] [maskhost [getchanhost [lindex $text 0] $chan]]
    chattr [lindex $text 0] +m
    puthelp "NOTICE $nick :[lindex $text 0] est maintenant global master."
    puthelp "NOTICE [lindex $text 0] :Tu es maintenant global master."
    puthelp "NOTICE [lindex $text 0] :Tu dois setter ton pass (/msg $botnick pass <password_voulu>)"
    return 0
   }
   if {[validuser [lindex $text 0]] == 1} {
    chattr [lindex $text 0] +m
    puthelp "NOTICE $nick :[lindex $text 0] est maintenant global master."
    puthelp "NOTICE [lindex $text 0] :Tu es maintenant global master."
    return 0
   }
  }
}
if {[validuser [lindex $text 0]] == 0} {
  adduser [lindex $text 0] [maskhost [getchanhost [lindex $text 0] $chan]]
  chattr [lindex $text 0] |+m $chan
  puthelp "NOTICE $nick :[lindex $text 0] est maintenant master de $chan."
  puthelp "NOTICE [lindex $text 0] :Tu es maintenant master de $chan."
  puthelp "NOTICE [lindex $text 0] :Tu dois setter ton pass (/msg $botnick pass <password_voulu>)"
  putserv "MODE $chan +o [lindex $text 0]"
  return 0
}
if {[validuser [lindex $text 0]] == 1} {
  chattr [lindex $text 0] -|+m $chan
  puthelp "NOTICE $nick :[lindex $text 0] est maintenant master de $chan."
  puthelp "NOTICE [lindex $text 0] :Tu es maintenant master de $chan."
  putserv "MODE $chan +o [lindex $text 0]"
}
}
 
 
# Addop #
 
bind pub m|m [string trim $prefixcmd]addop pub_addop
proc pub_addop {nick uhost hand chan text} {
global botnick kaneda prefixcmd
if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
}
if {[lindex $text 0] == $botnick} {
  puthelp "NOTICE $nick : Salut. Bienvenue dans notre équipe."
  return 0
}
if {[lindex $text 0]==""} {
  if {[matchattr $hand m] == 1} {
   puthelp "NOTICE $nick :\002Quick HELP: [string trim $prefixcmd]addop <nick> \[all\]"
   return 0
  }
  puthelp "NOTICE $nick :\002Quick HELP: [string trim $prefixcmd]addop <nick>"
  return 0
}
if {[onchan [lindex $text 0] $chan] == 0} {
  puthelp "NOTICE $nick :[lindex $text 0] n'est pas sur $chan."
  return 0
}
if {[lindex $text 1] == "all"} {
  if {[matchattr $hand m] == 1} {
   if {[validuser [lindex $text 0]] == 0} {
    adduser [lindex $text 0] [maskhost [getchanhost [lindex $text 0] $chan]]
    chattr [lindex $text 0] +o
    puthelp "NOTICE $nick :[lindex $text 0] est maintenant global operateur."
    puthelp "NOTICE [lindex $text 0] :Tu es maintenant global operateur."
    puthelp "NOTICE [lindex $text 0] :Tu dois setter ton pass (/msg $botnick pass <password_voulu>)"
    return 0
   }
   if {[validuser [lindex $text 0]] == 1} {
    chattr [lindex $text 0] +o
    puthelp "NOTICE $nick :[lindex $text 0] est maintenant global operateur."
    puthelp "NOTICE [lindex $text 0] :Tu es maintenant global operateur."
    return 0
   }
  }
}
if {[validuser [lindex $text 0]] == 0} {
  adduser [lindex $text 0] [maskhost [getchanhost [lindex $text 0] $chan]]
  chattr [lindex $text 0] |+o $chan
  puthelp "NOTICE $nick :[lindex $text 0] est maintenant operateur de $chan."
  puthelp "NOTICE [lindex $text 0] :Tu es maintenant operateur de $chan."
  puthelp "NOTICE [lindex $text 0] :Tu dois setter ton pass (/msg $botnick pass <password_voulu>)"
  putserv "MODE $chan +o [lindex $text 0]"
  return 0
}
if {[validuser [lindex $text 0]] == 1} {
  chattr [lindex $text 0] |+o $chan
  puthelp "NOTICE $nick :[lindex $text 0] est maintenant operateur de $chan."
  puthelp "NOTICE [lindex $text 0] :Tu es maintenant operateur de $chan."
  putserv "MODE $chan +o [lindex $text 0]"
}
}
 
 
# Addvoice #
 
bind pub o|o [string trim $prefixcmd]addvoice pub_addvoice
proc pub_addvoice {nick uhost hand chan text} {
global botnick kaneda prefixcmd
if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
}
if {[lindex $text 0] == $botnick} {
  puthelp "NOTICE $nick : Bienvenue parmi les Actifs du salon."
  return 0
}
if {[lindex $text 0]==""} {
  if {[matchattr $hand o] == 1} {
   puthelp "NOTICE $nick :\002Quick HELP: [string trim $prefixcmd]addvoice <nick> \[all\]"
   return 0
  }
  puthelp "NOTICE $nick :\002Quick HELP: [string trim $prefixcmd]addvoice <nick>"
  return 0
}
if {[onchan [lindex $text 0] $chan] == 0} {
  puthelp "NOTICE $nick :[lindex $text 0] n'est pas sur $chan."
  return 0
}
if {[lindex $text 1] == "all"} {
  if {[matchattr $hand o] == 1} {
   if {[validuser [lindex $text 0]] == 0} {
    adduser [lindex $text 0] [maskhost [getchanhost [lindex $text 0] $chan]]
    chattr [lindex $text 0] +v
    puthelp "NOTICE $nick :[lindex $text 0] est maintenant global voice."
    puthelp "NOTICE [lindex $text 0] :Tu es maintenant global voice."
    puthelp "NOTICE [lindex $text 0] :Tu dois setter ton pass (/msg $botnick pass <password_voulu>)"
    return 0
   }
   if {[validuser [lindex $text 0]] == 1} {
    chattr [lindex $text 0] +v
    puthelp "NOTICE $nick :[lindex $text 0] est maintenant global voice."
    puthelp "NOTICE [lindex $text 0] :Tu es maintenant global voice."
    return 0
   }
  }
}
if {[validuser [lindex $text 0]] == 0} {
  adduser [lindex $text 0] [maskhost [getchanhost [lindex $text 0] $chan]]
  chattr [lindex $text 0] |+v $chan
  puthelp "NOTICE $nick :[lindex $text 0] est maintenant voice de $chan."
  puthelp "NOTICE [lindex $text 0] :Tu es maintenant voice de $chan."
  puthelp "NOTICE [lindex $text 0] :Tu dois setter ton pass (/msg $botnick pass <password_voulu>)"
  putserv "MODE $chan +v [lindex $text 0]"
  return 0
}
if {[validuser [lindex $text 0]] == 1} {
  chattr [lindex $text 0] |+v $chan
  puthelp "NOTICE $nick :[lindex $text 0] est maintenant voice de $chan."
  puthelp "NOTICE [lindex $text 0] :Tu es maintenant voice de $chan."
  putserv "MODE $chan +v [lindex $text 0]"
}
}
 
 
# Addauto-op #
 
bind pub m|m [string trim $prefixcmd]addauto-op pub_addauto-op
proc pub_addauto-op {nick uhost hand chan text} {
global botnick kaneda prefixcmd
if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
}
if {[lindex $text 0] == $botnick} {
  puthelp "NOTICE $nick : A toi de jouer!"
  return 0
}
if {[lindex $text 0]==""} {
  if {[matchattr $hand m] == 1} {
   puthelp "NOTICE $nick :\002Quick HELP: [string trim $prefixcmd]addauto-op <nick> \[all\]"
   return 0
  }
  puthelp "NOTICE $nick :\002Quick HELP: [string trim $prefixcmd]addauto-op <nick>"
  return 0
}
if {[onchan [lindex $text 0] $chan] == 0} {
  puthelp "NOTICE $nick :[lindex $text 0] n'est pas sur $chan."
  return 0
}
if {[lindex $text 1] == "all"} {
  if {[matchattr $hand m] == 1} {
   if {[validuser [lindex $text 0]] == 0} {
    adduser [lindex $text 0] [maskhost [getchanhost [lindex $text 0] $chan]]
    chattr [lindex $text 0] +a
    puthelp "NOTICE $nick :[lindex $text 0] a maintenant un global auto-op."
    puthelp "NOTICE [lindex $text 0] :Tu as maintenant un global auto-op."
    puthelp "NOTICE [lindex $text 0] :Tu dois setter ton pass (/msg $botnick pass <password_voulu>)"
    return 0
   }
   if {[validuser [lindex $text 0]] == 1} {
    chattr [lindex $text 0] +a
    puthelp "NOTICE $nick :[lindex $text 0] a maintenant un global auto-op."
    puthelp "NOTICE [lindex $text 0] :Tu as maintenant un global auto-op."
    return 0
   }
  }
}
if {[validuser [lindex $text 0]] == 0} {
  adduser [lindex $text 0] [maskhost [getchanhost [lindex $text 0] $chan]]
  chattr [lindex $text 0] |+a $chan
  puthelp "NOTICE $nick :[lindex $text 0] a maintenant un auto-op sur $chan."
  puthelp "NOTICE [lindex $text 0] :Tu as maintenant un auto-op sur $chan."
  puthelp "NOTICE [lindex $text 0] :Tu dois setter ton pass (/msg $botnick pass <password_voulu>)"
  putserv "MODE $chan +o [lindex $text 0]"
  return 0
}
if {[validuser [lindex $text 0]] == 1} {
  chattr [lindex $text 0] |+a $chan
  puthelp "NOTICE $nick :[lindex $text 0] a maintenant un auto-op sur $chan."
  puthelp "NOTICE [lindex $text 0] :Tu as maintenant un auto-op sur $chan."
  putserv "MODE $chan +o [lindex $text 0]"
}
}
 
 
# Delauto-op #
 
bind pub m|m [string trim $prefixcmd]delauto-op pub_delauto-op
proc pub_delauto-op {nick uhost hand chan text} {
global botnick kaneda prefixcmd
if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
}
if {[lindex $text 0] == $botnick} {
  puthelp "NOTICE $nick : Tu as trop joué avec nous et voilà, reste au bas."
  return 0
}
if {[lindex $text 0]==""} {
  puthelp "NOTICE $nick :\002Quick HELP: [string trim $prefixcmd]delauto-op <nick>"
  return 0
}
if {[lindex $text 1] == "all"} {
  if {[matchattr $hand m] == 1} {
   if {[matchattr [lindex $text 0] a] == 0} {
    puthelp "NOTICE $nick :[lindex $text 0] n'a pas de global auto-op."
    return 0
   }
   chattr [lindex $text 0] -a
   puthelp "NOTICE $nick :[lindex $text 0] n'a plus de global auto-op."
   puthelp "NOTICE [lindex $text 0] :Tu n'as plus de global auto-op."
   return 0
  }
}
if {[matchattr [lindex $text 0] |a $chan] == 0} {
  puthelp "NOTICE $nick :[lindex $text 0] n'a pas d'auto-op sur $chan."
  return 0
}
chattr [lindex $text 0] |-a $chan
puthelp "NOTICE $nick :[lindex $text 0] n'a plus d'auto-op sur $chan."
puthelp "NOTICE [lindex $text 0] :Tu n'as plus d'auto-op sur $chan."
}
 
 
# Deluser #
 
bind pub n|n [string trim $prefixcmd]deluser pub_deluser
proc pub_deluser {nick uhost hand chan text} {
global botnick kaneda prefixcmd
if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
}
if {[lindex $text 0] == $botnick} {
  puthelp "NOTICE $nick : Tu n'es plus un Membre de notre équipe. Tchao!"
  return 0
}
if {[lindex $text 0]==""} {
  if {[matchattr $hand n] == 1} {
   puthelp "NOTICE $nick :\002Quick HELP: [string trim $prefixcmd]deluser <nick> \[all\]"
   return 0
  }
  puthelp "NOTICE $nick :\002Quick HELP: [string trim $prefixcmd]deluser <nick>"
  return 0
}
if {[validuser [lindex $text 0]] == 0} {
  puthelp "NOTICE $nick :[lindex $text 0] n'a pas d'access"
  return 0
}
if {[lindex $text 1] == "all"} {
  if {[matchattr $hand n] == 1} {
   deluser [lindex $text 0]
   puthelp "NOTICE $nick :[lindex $text 0] est enlever de ma userlist."
   puthelp "NOTICE [lindex $text 0] :Tu est enlever de ma userlist."
   return 0
  }
}
chattr [lindex $text 0] |-nmofv $chan
puthelp "NOTICE $nick :[lindex $text 0] est enlever de ma userlist de $chan."
puthelp "NOTICE [lindex $text 0] :Tu est enlever de ma userlist de $chan."
}
 
 
# Delowner #
 
bind pub n|n [string trim $prefixcmd]delowner pub_delowner
proc pub_delowner {nick uhost hand chan text} {
global botnick kaneda prefixcmd
if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
}
if {[lindex $text 0] == $botnick} {
  puthelp "NOTICE $nick : Tu méritais mieux! :["
  return 0
}
if {[lindex $text 0]==""} {
  puthelp "NOTICE $nick :\002Quick HELP: [string trim $prefixcmd]delowner <nick>"
  return 0
}
if {[validuser [lindex $text 0]] == 0} {
  puthelp "NOTICE $nick :[lindex $text 0] n'a pas d'access"
  return 0
}
if {[lindex $text 1] == "all"} {
  if {[matchattr $hand n] == 1} {
   if {[matchattr [lindex $text 0] n] == 0} {
    puthelp "NOTICE $nick :[lindex $text 0] n'est pas global owner."
    return 0
   }
   chattr [lindex $text 0] -n
   puthelp "NOTICE $nick :[lindex $text 0] n'est plus global owner."
   puthelp "NOTICE [lindex $text 0] :Tu n'est plus global owner."
   return 0
  }
}
if {[matchattr [lindex $text 0] |n $chan] == 0} {
  puthelp "NOTICE $nick :[lindex $text 0] n'est pas owner de $chan."
  return 0
}
chattr [lindex $text 0] |-n $chan
puthelp "NOTICE $nick :[lindex $text 0] n'est plus owner de $chan."
putserv "MODE $chan -o [lindex $text 0]"
}
 
 
# Delmaster #
 
bind pub n|n [string trim $prefixcmd]delmaster pub_delmaster
proc pub_delmaster {nick uhost hand chan text} {
global botnick kaneda prefixcmd
if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
}
if {[lindex $text 0] == $botnick} {
  puthelp "NOTICE $nick : Tu l'as bien mérité :)"
  return 0
}
if {[lindex $text 0]==""} {
  puthelp "NOTICE $nick :\002Quick HELP: [string trim $prefixcmd]delmaster <nick>"
  return 0
}
if {[validuser [lindex $text 0]] == 0} {
  puthelp "NOTICE $nick :[lindex $text 0] n'a pas d'access"
  return 0
}
if {[lindex $text 1] == "all"} {
  if {[matchattr $hand n] == 1} {
   if {[matchattr [lindex $text 0] m] == 0} {
    puthelp "NOTICE $nick :[lindex $text 0] n'est pas global master."
    return 0
   }
   chattr [lindex $text 0] -m
   puthelp "NOTICE $nick :[lindex $text 0] n'est plus global master."
   puthelp "NOTICE [lindex $text 0] :Tu n'est plus global master."
   return 0
  }
}
if {[matchattr [lindex $text 0] |m $chan] == 0} {
  puthelp "NOTICE $nick :[lindex $text 0] n'est pas master de $chan."
  return 0
}
chattr [lindex $text 0] |-m $chan
puthelp "NOTICE $nick :[lindex $text 0] n'est plus master de $chan."
putserv "MODE $chan -o [lindex $text 0]"
}
 
 
# Delop #
 
bind pub m|m [string trim $prefixcmd]delop pub_delop
proc pub_delop {nick uhost hand chan text} {
global botnick kaneda prefixcmd
if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
}
if {[lindex $text 0] == $botnick} {
  puthelp "NOTICE $nick : Tu fais pas ton boulot comme prévue!"
  return 0
}
if {[lindex $text 0]==""} {
  puthelp "NOTICE $nick :\002Quick HELP: [string trim $prefixcmd]delop <nick>"
  return 0
}
if {[validuser [lindex $text 0]] == 0} {
  puthelp "NOTICE $nick :[lindex $text 0] n'a pas d'access"
  return 0
}
if {[lindex $text 1] == "all"} {
  if {[matchattr $hand m] == 1} {
   if {[matchattr [lindex $text 0] o] == 0} {
    puthelp "NOTICE $nick :[lindex $text 0] n'est pas global operateur."
    return 0
   }
   chattr [lindex $text 0] -o
   puthelp "NOTICE $nick :[lindex $text 0] n'est plus global operateur."
   puthelp "NOTICE [lindex $text 0] :Tu n'est plus global operateur."
   return 0
  }
}
if {[matchattr [lindex $text 0] |o $chan] == 0} {
  puthelp "NOTICE $nick :[lindex $text 0] n'est pas operateur de $chan."
  return 0
}
chattr [lindex $text 0] |-o $chan
puthelp "NOTICE $nick :[lindex $text 0] n'est plus operateur de $chan."
putserv "MODE $chan -o [lindex $text 0]"
}
 
 
# Delvoice #
 
bind pub o|o [string trim $prefixcmd]delvoice pub_delvoice
proc pub_delvoice {nick uhost hand chan text} {
global botnick kaneda prefixcmd
if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
}
if {[lindex $text 0] == $botnick} {
  puthelp "NOTICE $nick : Trop de Idle n'est pas accepté."
  return 0
}
if {[lindex $text 0]==""} {
  puthelp "NOTICE $nick :\002Quick HELP: [string trim $prefixcmd]delvoice <nick>"
  return 0
}
if {[validuser [lindex $text 0]] == 0} {
  puthelp "NOTICE $nick :[lindex $text 0] n'a pas d'access."
  return 0
}
if {[lindex $text 1] == "all"} {
  if {[matchattr $hand o] == 1} {
   if {[matchattr [lindex $text 0] v] == 0} {
    puthelp "NOTICE $nick :[lindex $text 0] n'est pas global voice."
    return 0
   }
   chattr [lindex $text 0] -v
   puthelp "NOTICE $nick :[lindex $text 0] n'est plus global voice."
   puthelp "NOTICE [lindex $text 0] :Tu n'est plus global voice."
   return 0
  }
}
if {[matchattr [lindex $text 0] |v $chan] == 0} {
  puthelp "NOTICE $nick :[lindex $text 0] n'est pas voice de $chan."
  return 0
}
chattr [lindex $text 0] |-v $chan
puthelp "NOTICE $nick :[lindex $text 0] n'est plus voice de $chan."
putserv "MODE $chan -v [lindex $text 0]"
}
 
 
# Join #
 
bind pub n|n [string trim $prefixcmd]join pub_join
proc pub_join {nick uhost hand chan text} {
global botnick kaneda prefixcmd
if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
}
if {[lindex $text 0]==""} {
  puthelp "NOTICE $nick :\002Quick HELP: [string trim $prefixcmd]join <#channel>"
  return 0
}
if {[validchan [lindex $text 0]]} {
  puthelp "NOTICE $nick :Je suis deja sur [lindex $text 0]."
  return 0
}
puthelp "NOTICE $nick :Je garde maintenant [lindex $text 0]."
channel add [lindex $text 0]
putserv "JOIN [lindex $text 0]"
}
 
 
# Cycle #
 
bind pub n|n [string trim $prefixcmd]cycle pub_cycle
proc pub_cycle {nick uhost hand chan text} {
global botnick kaneda prefixcmd
if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
}
if {[lindex $text 0]==""} {
  puthelp "NOTICE $nick :\002Quick HELP: [string trim $prefixcmd]cycle <#channel>"
  return 0
}
if {[validchan [lindex $text 0]] == 0} {
  puthelp "NOTICE $nick :Je ne suis pas sur [lindex $text 0]."
  return 0
}
puthelp "NOTICE $nick :Je fait un cycle sur [lindex $text 0]."
putserv "PART [lindex $text 0]"
}
 
 
# Remove #
 
bind pub n|n [string trim $prefixcmd]remove pub_remove
proc pub_remove {nick uhost hand chan text} {
global botnick kaneda prefixcmd
if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
}
if {[lindex $text 0]==""} {
  puthelp "NOTICE $nick :\002Quick HELP: [string trim $prefixcmd]remove <#channel>"
  return 0
}
if {[validchan [lindex $text 0]] == 0} {
  puthelp "NOTICE $nick :Je ne suis pas sur [lindex $text 0]."
  return 0
}
puthelp "NOTICE $nick :Je ne protege plus [lindex $text 0]."
channel remove [lindex $text 0]
putserv "PART [lindex $text 0]"
}
 
 
# Mode #
 
bind pub o|o [string trim $prefixcmd]mode pub_mode
proc pub_mode {nick uhost hand chan text} {
global botnick kaneda prefixcmd
if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
}
if {[lindex $text 0]==""} {
  puthelp "NOTICE $nick :\002Quick HELP: [string trim $prefixcmd]mode <modes>"
  return 0
}
putserv "MODE $chan [lrange $text 0 end]"
}
 
 
# Addbot #
 
bind pub n|n [string trim $prefixcmd]addbot pub_addbot
proc pub_addbot {nick uhost hand chan text} {
global botnick kaneda prefixcmd
if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
}
if {[lindex $text 0] == $botnick} {
  puthelp "NOTICE $nick : Nous sommes frères.. Je t'aime mon frère !!"
  return 0
}
if {[lindex $text 0]=="" || [lindex $text 1]==""} {
  puthelp "NOTICE $nick :\002Quick HELP: [string trim $prefixcmd]addbot <nick> <port>"
  return 0
}
if {[onchan [lindex $text 0] $chan] == 0} {
  puthelp "NOTICE $nick :[lindex $text 0] n'est pas sur $chan."
  return 0
}
if {[validuser [lindex $text 0]] == 1} {
  puthelp "NOTICE $nick :Ce bot existe deja !"
  return 0
}
if {[validuser [lindex $text 0]] == 0} {
  addbot [lindex $text 0] [lindex [split [getchanhost [lindex $text 0] $chan] "@"] 1]:[lindex $text 1]
  setuser [lindex $text 0] hosts [maskhost [getchanhost [lindex $text 0] $chan]]
  chattr [lindex $text 0] +o
  puthelp "NOTICE $nick :Ce bot est bien ajouter."
}
}
 
 
# Delbot #
 
bind pub n|n [string trim $prefixcmd]delbot pub_delbot
proc pub_delbot {nick uhost hand chan text} {
global botnick kaneda prefixcmd
if {[matchattr $hand S] == 0} {
  if {[matchattr $hand Q] == 0} {
   puthelp "NOTICE $nick :Vous devez vous identifier (/msg $botnick id <password>)"
   return 0
  }
}
if {[lindex $text 0] == $botnick} {
  puthelp "NOTICE $nick : Je me suis trompé!"
  return 0
}
if {[lindex $text 0]==""} {
  puthelp "NOTICE $nick :\002Quick HELP: [string trim $prefixcmd]delbot <nick>"
  return 0
}
if {[validuser [lindex $text 0]] == 0} {
  puthelp "NOTICE $nick :[lindex $text 0] n'est pas un bot valid."
  return 0
}
deluser [lindex $text 0]
puthelp "NOTICE $nick :Ce bot est bien enlever."
}
 
 
# List #
 
bind pub f|f [string trim $prefixcmd]list pub_list
proc pub_list {nick uhost hand chan rest} {
global prefixcmd
if {[lindex $rest 0] == ""} {
  puthelp "NOTICE $nick :Voici la liste des \002GLOBALS\002 utilisateurs:"
  puthelp "NOTICE $nick :\002OWNER:\002 [userlist n] ([llength [userlist +n]])" 
  puthelp "NOTICE $nick :\002MASTER:\002 [userlist m] ([llength [userlist +m]])" 
  puthelp "NOTICE $nick :\002OP:\002 [userlist o] ([llength [userlist +o]])" 
  puthelp "NOTICE $nick :\002Auto-op:\002 [userlist a] ([llength [userlist +a]])" 
  puthelp "NOTICE $nick :\002VOICE:\002 [userlist v] ([llength [userlist +v]])"
}
if {[lindex $rest 0] != ""} {
  if {[validchan [lindex $rest 0]] == 0} {
   puthelp "NOTICE $nick :Je ne suis pas sur [lindex $rest 0]."
   return 0
  }
  puthelp "NOTICE $nick :Voici la liste des utilisateurs du channel \002[lindex $rest 0]\002:"
  puthelp "NOTICE $nick :\002OWNER:\002 [userlist |n [lindex $rest 0]] ([llength [userlist |n [lindex $rest 0]]])" 
  puthelp "NOTICE $nick :\002MASTER:\002 [userlist |m [lindex $rest 0]] ([llength [userlist |m [lindex $rest 0]]])" 
  puthelp "NOTICE $nick :\002OP:\002 [userlist |o [lindex $rest 0]] ([llength [userlist |o [lindex $rest 0]]])" 
  puthelp "NOTICE $nick :\002Auto-op:\002 [userlist |a [lindex $rest 0]] ([llength [userlist |a [lindex $rest 0]]])" 
  puthelp "NOTICE $nick :\002VOICE:\002 [userlist |v [lindex $rest 0]] ([llength [userlist |v [lindex $rest 0]]])"
}
}
 
 
# Help #
 
bind pub o|o [string trim $prefixcmd]help pub_help
proc pub_help {nick uhost hand chan text} {
global botnick kaneda prefixcmd
if {[matchattr $hand n] == 1} {
  puthelp "NOTICE $nick :\002¤-¤-¤ OWNER ¤-¤-¤"
  puthelp "NOTICE $nick :[string trim $prefixcmd]op \[nick\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]deop \[nick\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]voice \[nick\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]devoice \[nick\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]kick <nick> \[reason\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]ban <nick> \[reason\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]unban <nick ou host>, [string trim $prefixcmd]topic <texte>" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]addowner <nick> \[all\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]addmaster <nick> \[all\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]addop <nick> \[all\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]addvoice <nick> \[all\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]addauto-op <nick> \[all\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]delowner <nick> \[all\]"
  puthelp "NOTICE $nick :[string trim $prefixcmd]delmaster <nick> \[all\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]delop <nick> \[all\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]delauto-op <nick> \[all\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]delvoice <nick> \[all\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]deluser <nick> \[all\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]join <#channel>" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]cycle <#channel>" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]remove <#channel>" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]mode <mode>" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]addbot <nick> <port>" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]delbot <nick>" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]list \[#channel\]"
}
if {([matchattr $hand n] == 0) && ([matchattr $hand m] == 1)} {
  puthelp "NOTICE $nick :\002¤-¤-¤ MASTER ¤-¤-¤"
  puthelp "NOTICE $nick :[string trim $prefixcmd]op \[nick\]"
  puthelp "NOTICE $nick :[string trim $prefixcmd]deop \[nick\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]voice \[nick\]"
  puthelp "NOTICE $nick :  [string trim $prefixcmd]devoice \[nick\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]kick <nick> \[reason\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]ban <nick> \[reason\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]unban <nick ou host>" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]topic <texte>" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]addop <nick> \[all\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]addvoice <nick> \[all\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]addauto-op <nick> \[all\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]delop <nick> \[all\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]delauto-op <nick> \[all\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]delvoice <nick> \[all\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]list \[#channel\]"
}
if {([matchattr $hand n] == 0) && ([matchattr $hand o] == 1)} {
  puthelp "NOTICE $nick :\002¤-¤-¤ OP ¤-¤-¤"
  puthelp "NOTICE $nick :[string trim $prefixcmd]op \[nick\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]deop \[nick\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]voice \[nick\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]devoice \[nick\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]kick <nick> \[reason\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]ban <nick> \[reason\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]unban <nick ou host>" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]topic <texte>" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]addvoice <nick> \[all\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]delvoice <nick> \[all\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]list \[#channel\]"
}
if {[matchattr $hand |n $chan] == 1} {
  puthelp "NOTICE $nick :\002¤-¤-¤ CHAN OWNER ¤-¤-¤"
  puthelp "NOTICE $nick :[string trim $prefixcmd]op \[nick\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]deop \[nick\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]voice \[nick\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]devoice \[nick\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]kick <nick> \[reason\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]ban <nick> \[reason\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]unban <nick ou host>" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]topic <texte>" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]addmaster <nick>" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]addop <nick>" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]addvoice <nick>" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]addauto-op <nick>"
  puthelp "NOTICE $nick :[string trim $prefixcmd]delmaster <nick>" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]delop <nick>" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]delauto-op <nick>" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]delvoice <nick>" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]deluser <nick>" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]cycle <#channel>" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]mode <mode>" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]list \[#channel\]"
}
if {([matchattr $hand |n $chan] == 0) && ([matchattr $hand |m $chan] == 1)} {
  puthelp "NOTICE $nick :\002¤-¤-¤ CHAN MASTER ¤-¤-¤"
  puthelp "NOTICE $nick :[string trim $prefixcmd]op \[nick\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]deop \[nick\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]voice \[nick\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]devoice \[nick\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]kick <nick> \[reason\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]ban <nick> \[reason\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]unban <nick ou host>" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]topic <texte>" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]addop <nick>" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]addvoice <nick>" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]addauto-op <nick>" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]delop <nick>" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]delauto-op <nick>" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]delvoice <nick>" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]list \[#channel\]"
}
if {([matchattr $hand |n $chan] == 0) && ([matchattr $hand |o $chan] == 1)} {
  puthelp "NOTICE $nick :\002¤-¤-¤ CHAN OP ¤-¤-¤"
  puthelp "NOTICE $nick :[string trim $prefixcmd]op \[nick\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]deop \[nick\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]voice \[nick\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]devoice \[nick\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]kick <nick> \[reason\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]ban <nick> \[reason\]" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]unban <nick ou host>" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]topic <texte>" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]addvoice <nick>" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]delvoice <nick>" 
  puthelp "NOTICE $nick :[string trim $prefixcmd]list \[#channel\]"
}
}
 
###################################
#            Fonctions            #
#     recommendé de pas toucher   #
# Risque: faire planté le eggdrop #
###################################
 
### Identification, Shutup, Auto-op, Désidentification,
### Unshutup, Détecteur de clone, Message de bienvenue.
 
 
# Identification #
 
bind msg | id msg_ident
proc msg_ident {nick uhost hand text} {
global botnick
if {[matchattr $hand Q] == 1} {
  puthelp "NOTICE $nick :Tu es déjà identifier."
  return 0
}
if {[passwdok $hand ""] == 1} {
  puthelp "NOTICE $nick :Tu n'as pas de password. Fait /msg $botnick pass <password_voulu>"
  return 0
}
if {[passwdok $hand [lindex $text 0]] == 1} {
  chattr $hand +Q
  putcmdlog "#$hand# id..."
  puthelp "NOTICE $nick :Vous êtes maintenant identifier, pour vous désidentifier: /msg $botnick unident <password>" 
  puthelp "PRIVMSG #SySops Identification de $nick réussi auto-invite pour le salon #SySops activée"
  puthelp "INVITE $nick #SySops"
}
if {[passwdok $hand [lindex $text 0]] == 0} {
  puthelp "NOTICE $nick :Votre identification a fouarré :P \002Password incorrect\002"
}
}
 
 
# Désidentification #
 
bind sign | * sign_delogin
proc sign_delogin {nick uhost hand chan text} {
if {[matchattr $hand Q] == 1} {
  chattr $hand -Q
}
if {[matchattr $hand Q] == 0} {
  return 0
}
}
bind msg | unident msg_unident
proc msg_unident {nick uhost hand text} {
global botnick
if {$text == ""} {
  puthelp "NOTICE $nick :\002Quick HELP: /msg $botnick unident <password>"
  return 0
}
if {[matchattr $hand Q] == 0} {
  puthelp "NOTICE $nick :Tu ne t'es jamais identifier."
  return 0
}
if {[passwdok $hand $text] == 1} {
  chattr $hand -Q
  puthelp "NOTICE $nick :Tu n'es plus identifier."
  puthelp "KICK $nick #SySops Seul les personnes identifier peuvent rester sur le salon #SySops"
}
if {[passwdok $hand $text] == 0} {
  puthelp "NOTICE $nick :Votre désidentification a fouarré :P \002Password incorrect\002"
}
}
 
 
# Shutup #
 
bind msg | shutup msg_shutup
proc msg_shutup {nick uhost hand text} {
global botnick
if {[matchattr $hand S] == 1} {
  puthelp "NOTICE $nick :Le mode shutup est déjà activer."
  return 0
}
if {[lindex $text 0] == ""} {
  puthelp "NOTICE $nick :\002Quick HELP: /msg $botnick shutup <password>"
}
if {[passwdok $hand ""] == 1} {
  puthelp "NOTICE $nick :Tu n'as pas de password. Fait /msg $botnick pass <password_voulu>"
  return 0
}
if {[passwdok $hand [lindex $text 0]] == 1} {
  chattr $hand +S
  putcmdlog "#$hand# shutup..."
  puthelp "NOTICE $nick :Le mode shutup est maintenant activer. Pour le désactiver: /msg $botnick unshutup <password>"
}
if {[passwdok $hand [lindex $text 0]] == 0} {
  puthelp "NOTICE $nick :Le mode shutup n'est pas activer. \002Password incorrect\002"
}
}
 
 
# Unshutup #
 
bind msg | unshutup msg_unshutup
proc msg_unshutup {nick uhost hand text} {
global botnick
if {[matchattr $hand S] == 0} {
  puthelp "NOTICE $nick :Le mode shutup n'est pas activer."
  return 0
}
if {[lindex $text 0] == ""} {
  puthelp "NOTICE $nick :\002Quick HELP: /msg $botnick unshutup <password>"
}
if {[passwdok $hand ""] == 1} {
  puthelp "NOTICE $nick :Tu n'as pas de password. Fait /msg $botnick pass <password_voulu>"
  return 0
}
if {[passwdok $hand [lindex $text 0]] == 1} {
  chattr $hand -S
  putcmdlog "#$hand# unshutup..."
  puthelp "NOTICE $nick :Le mode shutup est maintenant desactiver. Pour l'activer: /msg $botnick shutup <password>"
}
if {[passwdok $hand [lindex $text 0]] == 0} {
  puthelp "NOTICE $nick :Le mode shutup n'est pas desactiver. \002Password incorrect\002"
}
}
 
 
# Auto-op #
 
bind join a|a * pubcommand_auto-op
proc pubcommand_auto-op {nick uhost hand chan} {
putserv "MODE $chan +o $nick"
}
 
 
# Message de bienvenue #
 
bind join - * join_welcome
proc join_welcome {nick uhost hand chan} {
global botnick owner kaneda welcome service servicechan servicewelcome servicewelcometext welcometexte
  if {$chan == $servicechan} {
if {$welcome == "OUI"} {
   if {$service == "OUI"} {
    if {$servicewelcome == "OUI"} {
     puthelp "NOTICE $nick :$servicewelcometext"
     return 0
    }
   }
  }
  if {$nick != $botnick} {
   putserv "NOTICE $nick :$welcometexte"
  }
}
}
 
# Détecteur de clone #
 
bind join - * join_clone
proc join_clone {nick uhost hand chan} {
global clone_chans botnick owner kaneda clonedetect
if {$clonedetect == "OUI"} {
  if {(([lsearch -exact [string tolower $chan] [string tolower $chan]] != -1) || ($chan == "*")) && ($nick != $botnick) && ($nick != $owner)} {
   foreach i [chanlist $chan] {
    set clone_temp [lindex [split [getchanhost $i $chan] @] 1]
    if {($clone_temp == [lindex [split $uhost @] 1]) && ($i != $nick) && ($i != $botnick) && ($i != $owner)} {
    putserv "PRIVMSG $chan :Hum... ya des clones: $nick & $i (*!*@$clone_temp)"
     return 1
    }
   }
  }
}
}
 
 
# Mentionner les op, deop #
 
bind mode -o "% -o" got_deoped
proc got_deoped {nick uhost hand chan -o victim} {
global botnick kaneda service serviceopdeop servicechan servicebackchan
if {$service == "OUI"} {
  if {$serviceopdeop == "OUI"} {
    if {$victim==$botnick} {
    putserv "PRIVMSG $servicebackchan :ALERTE: $nick ($uhost) m'a deop de $chan"
    putserv "PRIVMSG $chan :ALERTE: $nick ($uhost) m'a deop de $chan" 
	flushmode $chan
    return 0
   }
  }
}
}
 
bind mode +o "% +o" got_oped
proc got_oped {nick uhost hand chan +o victim} {
global botnick kaneda service serviceopdeop
if {$service == "OUI"} {
  if {$serviceopdeop == "OUI"} {
   if {$victim==$botnick} {
    putserv "PRIVMSG $chan :Merci $nick. Je suis maintenant fonctionnel."
    return 0
   }
  }
}
}
 
###################################### Fin #######################################
 
putlog "*** kaneda.tcl corriger lancé."




RE: Aide - SVP - sur ce script - heretoc - 11/04/2010

Coute trop chere les balises [ tcl ] [ /tcl ]?


RE: Aide - SVP - sur ce script - aliasangelius - 11/04/2010

possible lol


RE: Aide - SVP - sur ce script - Marc - 11/04/2010

La prochaine fois si vous postez un script long comme ceux-ci, je vous conseilles de les mettres en pièces-jointe !

Sinon comme heretoc dit utiliser les balise [ tcl ][ /tcl ] (sans espace) pour mettre vos codes-sources.

Exemple

tcl
Code TCL