Kaynağa Gözat

Delete BlackTools.tcl

Florian 8 yıl önce
ebeveyn
işleme
680fd01310
1 değiştirilmiş dosya ile 0 ekleme ve 14637 silme
  1. 0 14637
      BlackTools2.3/lang/BlackTools.tcl

+ 0 - 14637
BlackTools2.3/lang/BlackTools.tcl

@@ -1,14637 +0,0 @@
-###########################################################################
-#                      ® BLaCkShaDoW ProductionS ®                        #
-#                                                                         # 
-#                               Presents                                  # 
-                                                                     
-####   #        ####    #####   #   #  #####  #####    ####   #      #####                  
-#   #  #       #    #   #       #  #     #   #     #  #    #  #      # 
-#   #  #       #    #   #       # #      #   #     #  #    #  #      #
-## #   #       ######   #       ##       #   #     #  #    #  #      #####
-#   #  #       #    #   #       # #      #   #     #  #    #  #          #
-#   #  #       #    #   #       #  #     #   #     #  #    #  #          #
-####   #####   #    #   #####   #   #    #    #####    ####   #####  #####
-              
-#                                                                         # 
-#                                                                         #
-#                          #####   #####                                  #
-#                              #       #                                  #         
-#                              #       #                                  #
-#                          ####    #####                                  #
-#                          #           #                                  #
-#                          #           #                                  #       
-#                          ##### # #####                                  # 
-#                                                                         #  
-#                                                                         #
-#                   THE    NEXT    GENERATION    TCL                      #
-#                                                                         #
-#            - #TCL-HELP @ UNDERNET - WwW.TclScripts.Net -                #  
-###########################################################################
-#A Next Generation Channel Control Script that contains a lot of commands #
-#modules, and protections that make`s your life easy for you and for your #
-#                              Eggdrop.                                   #
-###########################################################################
-#                                                                         #
-#      Many thanks for without this script wouldn't got this far to:      #
-#                                                                         #  
-#                      Time2Go@Oradea(#Bihor Admin)                       #
-#                                                                         #
-#        Offcourse i thanks all the users who participate with ideas,     #
-# opinions, which took the script to this version.                        #                                                                                                                                                                                    
-#                                                                         #
-#      cola @ #Tcl-Help                          btw @ #ialomita          #                    
-#                                                                         #                                
-#      Cacique @ #mures                          bandyt @ #bandyt         #
-#                                                                         #
-###########################################################################
-#
-#Please specify the folder name that contains the BlackTools.tcl and the lang
-#folder (Default "scripts")
-#
-set black(dirname) "scripts"
-#
-###########################################################################                
-#First Char ( "- . !" ) - ( "none" ) (for no char)
-#
-set black(cmdchar) ". !"
-#                           
-###########################################################################       
-                            
-#-------------------------- Default Language -----------------------------#
-
-#Default language ( RO / EN )
-
-set black(default_lang) "RO" 
-
-#-------------------------------------------------------------------------#
-
-#----------------------------- Max Handle --------------------------------#
-
-#Max Handle ( 1 - for handle < 9 ; 0 - for handle > 9 )
-
-set black(maxhand) "0"
-
-#-------------------------------------------------------------------------#
-
-
-#######################################################################
-#                                                                     #
-#        Command Help              - h -          Command Help        #
-#                                                                     #
-#######################################################################
-
-#---------------------------------------------------------------------#
-
-#######################################################################
-#                             Chanserv Name
-#
-set black(chanserv) "X"
-#
-#######################################################################
-
-#---------------------------------------------------------------------#
-
-#######################################################################
-#                                                                     #
-#---------------------------------------------------------------------#
-#                                                                     #
-####################################################################### 
- 
-#------------------------- Chanserv Login ----------------------------#             
-
-#Login On Connect ( 1 - ON ; 0 - OFF)
-
-set black(logonconect) "1" 
-                                                                     
-#------------------------- Chanserv User ----------------------------## 
-                                   
-set black(username) "username"                      
-                                                                     
-#------------------------- Chanserv Pass ----------------------------## 
-                        
-set black(password) "password"
-
-#------------------------- Login Command ----------------------------##
-
-set black(login) "PRIVMSG x@channels.undernet.org :login $black(username) $black(password)"
-
-                                                                     
-#--------------------------- Login Mode ------------------------------##                                                   
-                                                                     
-set black(xmod) "+x"                                                    
-                                                                     
-#######################################################################
-#                                                                     #
-#---------------------------------------------------------------------#
-#                                                                     #
-#######################################################################
-
-#---------------------------------------------------------------------#
-
-################################# add #################################
-#
-#       add <level> <user> (level : manager,admin,senior,op voice)
-#
-#######################################################################
-
-#Default Hostname for - add <user> command -
-
-set black(hostadd) "*!*@%user%.users.undernet.org"
-
-
-#######################################################################
-#
-#
-#                           Protection
-#
-#
-#
-#######################################################################
-
-#Op Protect (1 - ON ; 0 - OFF)
-
-set black(vprotect) "1"
-
-
-#VOICE Protect (1 - ON ; 0 - OFF)
-
-set black(oprotect) "1"
-
-#######################################################################
-#
-#                        Antipub Protection
-#
-#
-#
-#######################################################################
-
-
-#Ban-Time
-
-set black(antipubbantime) "2880"
-
-#Words
-
-set black(antipubword) {
-"*#*"
- "*www.*"
- "*http://*"
- "*.ro"
- "*.com"
- "*/server*"
-}
-
-#Ban-Mode
-
-set black(antipubmode) "m"
-
-#Ban-mode Time (Seconds)
-
-set black(antipubsecunde) "5"
-
-#######################################################################
-#
-#                      AntiNotice Protection
-#
-#
-#######################################################################
-
-#Ban-Time
-
-set black(antinoticebantime) "2880"
-
-#Ban-Mode
-
-set black(antinoticemode) "mr"
-
-#Ban-mode Time (Seconds)
-
-set black(antinoticesecunde) "7"
-
-#######################################################################
-#
-#                         AntiCTCP Protection
-#
-#
-#######################################################################
-
-#Ban-Time
-
-set black(antictcpbantime) "2880"
-
-#Ban-Mode
-
-set black(antictcpmode) "mr"
-
-#Ban-mode Time (Seconds)
-
-set black(antictcpsecunde) "8"
-
-#######################################################################
-#
-#                       AntiBadWord Protection
-#
-#
-#######################################################################
-
-
-#Ban-Time
-
-set black(antibadwordbantime) "360"
-
-#Words
-
-set black(antibadword) {
-"*pula*"
- "*pizda*"
- "*muie*"
- "*sugi"
- "mwie"
- "*pwla*"
- "*muisti*"
- "*fut*"
- "*fwt*"
- "tarfa"
-
-
-}
-
-#######################################################################
-#
-#                        AntiLongText Protection
-#
-#
-#######################################################################
-
-#Char length
-
-set black(longchar) "400"
-
-#Ban-Time
-
-set black(longbantime) "30"
-
-#Ban-Mode
-
-set black(longmode) "mr"
-
-#Ban-mode Time (Seconds)
-
-set black(longtimemode) "10"
-
-#######################################################################
-#
-#                       AntiBAdQuitPart Protection
-#
-#
-#######################################################################
-
-#Ban-Time
-
-set black(badquitparttime) "60"
-
-#Words
-
-set black(badquitpartwords) {
-"*www.*"
-"*http://*"
-"*#*"
-
-}
-
-#Ban on COLORS (1 - ON ; 0 - OFF)
-
-set black(badquitpartcolour) "1"
-
-#######################################################################
-#
-#                       Protectia AntiJoinPart
-#
-#
-#######################################################################
-
-#Ban-Time
-
-set black(joinpartbantime) "30"
-
-#Stay-Time
-
-set black(joinparttime) "2"
-
-#Ban-Mode
-
-set black(joinpartmode) "mr"
-
-#Ban-Mode Time (Seconds)
-
-set black(joinparttimemode) "10"
-
-#######################################################################
-#
-#                       AntiSpam Protection
-#
-#
-#######################################################################
-
-
-#Ban-Time
-
-set black(spamban) "2880"
-
-#Words
-
-set black(spamword) {
-"*#*"
- "*www.*"
- "*http://*"
-}
-
-#Cycle-Time
-
-set black(spamcycle) "30"
-
-#ON-JOIN Message ( 1 - ON ; 0 - OFF)
-
-set black(spamreq) "1"
-
-#Part Message
-
-set black(spammsgcycle) "Checking for spam.."
-
-#######################################################################
-#
-#                       AntiRepeat Protection
-#
-#
-#######################################################################
-
-#Repeat Setting (number repeats:seconds)
-
-set black(repeats) "3:5"
-
-#Ban-Type (1 - KICK -> BAN ; 0 - BAN )
-
-set black(antirepeattype) "1"
-
-#Ban-Time
-
-set black(antirepeatbantime) "10"
-
-#######################################################################
-# 
-#                          Anticolor Protection
-# 
-#
-#######################################################################
-
-#Ban-Type (1 - KICK -> BAN ; 0 - BAN )
-
-set black(anticolortype) "1"
-
-#Ban-Time
-
-set black(anticolorbantime) "10"
-
-#######################################################################
-# 
-#                          AntiBold Protection
-# 
-#
-#######################################################################
-
-#Ban-Type (1 - KICK -> BAN ; 0 - BAN )
-
-set black(antiboldtype) "1"
-
-#Ban-Time
-
-set black(antiboldbantime) "10"
-
-#######################################################################
-# 
-#                          AntiUnderline Protection
-# 
-#
-#######################################################################
-
-#Ban-Type (1 - KICK -> BAN ; 0 - BAN )
-
-set black(antiunderlinetype) "1"
-
-#Ban-Time
-
-set black(antiunderlinebantime) "10"
-
-#######################################################################
-# 
-#                          AntiCaps Protection
-# 
-#
-#######################################################################
-
-#Ban-Type (1 - KICK -> BAN ; 0 - BAN )
-
-set black(anticapstype) "1"
-
-#Caps Char Length
-
-set black(anticapscount) "40"
-
-#Ban-Time
-
-set black(anticapsbantime) "10"
-
-#######################################################################
-# 
-#                          BadFullName Protection
-# 
-#
-#######################################################################
-
-#Ban-Time
-
-set black(badfbantime) "60"
-
-#Words
-
-set black(badfwords) {
-"*www.*"
-"*#*"
-"*http://*"
-
-}
-
-#######################################################################
-# 
-#                          BadNick Protection
-# 
-#
-#######################################################################
-
-#Ban-Time
-
-set black(badnickbantime) "60"
-
-#Words
-
-set black(badnickwords) {
-
-"*pula*"
-"*muie *"
-"pwla*"
-"pizda*"
-"laba*"
-
-}
-
-
-#######################################################################
-# 
-#                          BadIdent Protection
-# 
-#
-#######################################################################
-
-#Ban-Time
-
-set black(badidentbantime) "60"
-
-#Words
-
-set black(badidentwords) {
-
-"*pula*"
-"*muie *"
-"pwla*"
-"pizda*"
-"laba*"
-
-}
-
-
-#######################################################################
-# 
-#                          AntiJoinFlood Protection
-# 
-#
-#######################################################################
-
-#Join-Mode
-
-set black(modes) "mir"
-
-
-#Join-Mode Time (Seconds)
-
-set black(nomodetime) "15"
-
-
-#Op ALERT (1 - ON ; 0 - OFF)
-
-set black(fjoinhow) "1"
-
-#######################################################################
-# 
-#                          AntiChanFlood Protection
-# 
-#
-#######################################################################
-
-#Ban-Type (1 - KICK -> BAN ; 0 - BAN )
-
-set black(antifloodchantype) "1"
-
-#Ban-Time
-
-set black(antifloodchanbantime) "10"
-
-#######################################################################
-# 
-#                                Module
-# 
-#
-#######################################################################
-
-
-#######################################################################
-# 
-#                            Topic refresh
-#
-#
-#######################################################################
-
-#Refresh Time
-
-set black(topic_time) "60"
-
-#Standard Topic
-
-set black(topics) "Reloading topic..."
-
-
-########################################################################
-#
-#                                 Count
-#
-#                  count <on> / <off> / <display> / <reset>
-#
-#######################################################################
-
-#MSg Type ( 1 - NOTICE ; 0 - PRIVMSG )
-
-set black(counthow) "1"
-
-
-#######################################################################
-# 
-#                               BadChan
-#
-#              badchan | <on> | <off> | add | del | | list |
-#
-#######################################################################
-
-#Ban-Time
-
-set black(badcbantime) "360"
-
-#User Message ( 1 - ON ; 0 - OFF)
-
-set black(badcwhyreason) "1"
-
-########################################################################
-#
-#                                 Anunt
-#
-#                  Anunt <on> | <off> | <add> | <list> | <del>
-#
-#######################################################################
-
-#Anunt Time ( 60 min max )
-
-set black(anunttime) "45"
-
-#MSg Type ( 1 - ACTION ; 0 - PRIVMSG )
-
-set black(anunthow) "0"
-
-########################################################################
-#
-#                             AutoBroadcast
-#
-#                  bt <on> | <off> | <add> | <list> | <del>
-#
-#######################################################################
-
-
-#BRoadcast Time
-
-set black(bttime) "60"
-
-#MSg Type ( 1 - ACTION ; 0 - PRIVMSG )
-
-set black(bthow) "1"
-
-
-#######################################################################
-# 
-#                               CloneScan
-#
-#
-#######################################################################
-
-#Max Clones
-
-set black(maxclone) "2"
-
-#Ban-Type ( 0 - OP Message ; 1 - Ban )
-
-set black(what) "0"
-
-#Ban-Time
-
-set black(clonebtime) "180"
-
-#######################################################################
-# 
-#                               AntiBoTidle
-#
-#
-#######################################################################
-
-#Random Object
-
-set black(noobject) "blacky:P"
-
-#Max Idle
-
-set black(noidlemax) "10"
-
-#######################################################################
-#                            
-#                                Seen
-#
-#                         seen <host> / <nick>
-#
-#######################################################################
-
-#Flood-Protection (searches : seconds)
-
-set black(seenflood) "4:5"
-
-#MSg Type ( 1 - NOTICE ; 0 - PRIVMSG )
-
-set black(seenmet) "1"
-
-
-########################################################################
-#
-#                                 Greet
-#
-#                  greet <on> | <off> | <add> | <list> | <del>
-#
-#######################################################################
-
-#MSg Type ( 1 - NOTICE ; 0 - PRIVMSG )
-
-set black(howgreet) "1"
-
-
-########################################################################
-#
-#                                 Leave
-#
-#                  leave <on> | <off> | <add> | <list> | <del>
-#
-#######################################################################
-
-#MSg Type ( 1 - NOTICE ; 0 - PRIVMSG )
-
-set black(howleave) "0"
-
-########################################################################
-#
-#                                 idle
-#
-#                
-#  idle <on> | <off> | voice <on>/<off> | op <on>/<off> | add <nick> 
-#
-#######################################################################
-
-#Idle Scan Time
-
-set black(idleinterval) "60"
-
-#Op max idle
-
-set black(idleopmax) "30"
-
-#Voice idle Max
-
-set black(idlevoicemax) "60"
-
-########################################################################
-#
-#                                Private
-#
-#                
-#          private <on> | <off> | <add> <user> | <list> | del <nume>
-#
-#######################################################################
-
-#Ban-Time
-
-set black(privatebantime) "10"
-
-
-#######################################################################
-# 
-#                           
-#                               Commands
-#
-#
-#######################################################################
-
-
-#######################################################################
-#
-#                              dr <nick> / <host>
-#
-#######################################################################
-
-#Ban-Time
-
-set black(drtime) "20160"
-
-#######################################################################
-#
-#                              bot <nick> / <host>
-#
-#######################################################################
-
-#Ban-Time
-
-set black(bottime) "10160"
-
-
-########################################################################
-#       
-#                              b <nick> / <host>
-#
-#######################################################################
-
-#Ban-Time
-
-set black(btime) "2880"
-
-
-#######################################################################
-#
-#                                 n <nick>
-#
-#######################################################################
-
-#Ban-Time
-
-set black(ntime) "120"
-
-######################################################################
-#
-#                                 id <nick> 
-#
-######################################################################
-
-#Ban-Time
-
-set black(idtime) "120"
-
-
-######################################################################
-#
-#                   spam <nick> / <host> (pentru spammeri)
-#
-######################################################################
-
-#Ban-Time
-
-set black(spamtime) "10080"
-
-
-######################################################################
-#
-#                          k <nick> <reason>
-#
-######################################################################
-
-
-#Access Except ( 1 - ON ; 0 - OFF )
-
-set black(kaccess) "1"
-
-
-#######################################################################
-#
-#                    bw <nick> / <host> ( bad word)
-#
-#######################################################################
-
-#Ban-Time
-
-set black(bwtime) "360"
-
-########################################################################
-#
-#              stick <nick> / <host> <timp> <motiv>
-#
-########################################################################
-
-#Ban-Time
-
-set black(dfstickbantime) "5040"
-
-########################################################################
-#
-#                           l <seconds>                            
-#
-########################################################################
-
-#Mode Type
-
-set black(lmode) "m"
-
-########################################################################
-#
-#                               ul                             
-#
-########################################################################
-
-#Mode Type
-
-set black(ulmodes) "mir"
-
-########################################################################
-#
-#
-#                            This is the END !
-#
-#
-########################################################################
-
-
-set black(exceptflags) "nm|HAMOVSo"
-
-setudef flag antipub
-setudef flag antinotice
-setudef flag antictcp
-setudef flag antilongtext
-setudef flag antibadword
-setudef flag antijoinpart
-setudef flag antispam
-setudef flag antirepeat
-setudef flag badquitpart
-setudef flag anticolor
-setudef flag antibold
-setudef flag antiunderline
-setudef flag anticaps
-setudef flag badfullname
-setudef flag badnick
-setudef flag badident
-setudef flag antijoinflood
-setudef flag antichanflood
-setudef flag xtools
-setudef flag topicrefresh
-setudef flag count
-setudef flag antibadchan
-setudef flag anunt
-setudef flag limit
-setudef flag refresh
-setudef flag clonescan
-setudef flag seen
-setudef flag antidle
-setudef flag antividle
-setudef flag antididle
-setudef flag autoop
-setudef flag autovoice
-setudef flag leave
-setudef flag chanreport
-setudef flag topwords
-setudef flag xban
-setudef flag protectop
-setudef flag protectvoice
-setudef flag dontop
-setudef flag dontdeop
-setudef flag private
-setudef flag silent
-setudef flag showtime
-setudef flag showhandle
-setudef flag showcount
-
-setudef int idlevoicemax
-setudef int idleopmax
-setudef int countnumber
-setudef int kickcount
-setudef int xbantime
-setudef int xbanlevel
-setudef int blacklimit
-setudef str backchan
-
-
-#Motive / Bantime
-
-#Protection
-
-setudef str antipub-reason
-setudef int antipub-bantime
-setudef str antinotice-reason
-setudef int antinotice-bantime
-setudef str antictcp-reason
-setudef int antictcp-bantime
-setudef str antibadword-reason
-setudef int antibadword-bantime
-setudef str antilongtext-reason
-setudef int antilongtext-bantime
-setudef str antibadquitpart-reason
-setudef int antibadquitpart-bantime
-setudef str antijoinpart-reason
-setudef int antijoinpart-bantime
-setudef str antispam-reason
-setudef int antispam-bantime
-setudef str antispam-message
-setudef str antirepeat-reason
-setudef int antirepeat-bantime
-setudef str anticolor-reason
-setudef int anticolor-bantime
-setudef str antibold-reason
-setudef int antibold-bantime
-setudef str antiunderline-reason
-setudef int antiunderline-bantime
-setudef str anticaps-reason
-setudef int anticaps-bantime
-setudef str badfullname-reason
-setudef int badfullname-bantime
-setudef str badnick-reason
-setudef int badnick-bantime
-setudef str badident-reason
-setudef int badident-bantime
-setudef str antichanflood-reason
-setudef int antichanflood-bantime
-setudef str joinflood
-setudef str chanflood
-setudef int private-bantime
-setudef str private-reason
-setudef int antilongtextmax
-setudef str antirepeat-setting
-
-#commands
-
-setudef str dr-reason
-setudef int dr-bantime
-setudef str n-reason
-setudef int n-bantime
-setudef int b-bantime
-setudef str id-reason
-setudef int id-bantime
-setudef str w-reason
-setudef str spam-reason
-setudef int spam-bantime
-setudef str bw-reason
-setudef int bw-bantime
-setudef int bot-bantime
-setudef str bot-reason
-
-#module
-
-setudef str badchan-reason
-setudef int badchan-bantime
-setudef str count-message
-setudef str lang
-
-if {$black(logonconect) == "1"} {
-bind evnt - init-server loginpublic
-}
-
-bind pubm - * topwordspublic
-bind pubm - * antipub:protect
-bind ctcp - ACTION antipub:protect:me
-bind notc - * antinotice:protect
-bind ctcp - * antictcp:protect
-
-bind pubm - * antibadword:protect
-bind ctcp - ACTION antibadword:protect:me
-bind pubm - * antilongtext:protect
-bind ctcp - ACTION antilongtext:protect:me
-bind part - * antipubpart:protect
-bind sign - * antipubsign:protect
-bind part - * anticolorpart:protect
-bind sign - * anticolorquit:protect
-bind part - * antijoinpart:protect
-bind join - * antispam:protect:msg
-bind msgm - * antispam:protect
-bind time - * antispam:protect:cycle
-bind time - "30 * * * *" clonescanner
-bind time - "* * * * *" limit:timer
-bind pubm - * antirepeat:protect
-bind pubm - * antifloodchan:protect
-bind ctcp - version blackreply
-bind ctcp - ACTION antirepeat:protect:me
-bind ctcp - ACTION antifloodchan:protect:me
-bind pubm - * anticolor:protect
-bind ctcp - ACTION anticolor:protect:me
-bind pubm - * antibold:protect
-bind ctcp - ACTION antibold:protect:me
-bind pubm - * antiunderline:protect
-bind ctcp - ACTION antiunderline:protect:me
-bind pubm - * anticaps:protect
-bind ctcp - ACTION anticaps:protect:me
-bind join - * badfullname:protect:join
-bind join - * badnick:protect:join
-bind join - * badident:protect:join
-bind nick - * badnick:protect:change
-bind mode - "*+b*" protectpublic
-bind join - * joinflood:protect
-bind join - * rebanpublic
-bind need - * toolspublic
-bind join - * countpublic:join
-bind join - * badchanpublic:join
-bind join - * seen:join
-bind part - * seen:part
-bind sign - * seen:sign
-bind kick - * seen:kick
-bind splt - * seen:split
-bind nick - * seen:changenick
-bind join - * greetpublic:join
-bind part - * leavepublic:part
-bind time - * idlewhoispublic
-bind evnt - init-server setaway
-bind join - * autovonjoin
-bind join - * autoponjoin
-bind join - * addopjoin
-bind join - * addvoicejoin
-bind join - * private:module
-bind join - * timeban:module
-bind ctcr mn|MOSAV PING pingpublic
-bind ctcr - VERSION ctcpvers
-bind mode - *+o* dontoppublic
-bind mode - *-o* dontdeoppublic
-
-
-
-bind pubm nm|MmvVNnoOSA * comand:pubme 
-foreach black(char) $black(cmdchar) {
-if {[string match -nocase "$black(char)" "none"]} {
-set black(char) ""
-}
-bind pub nm|MAS $black(char)clonescan scannerpublic
-bind pub nm|MASO $black(char)r refreshpublic
-bind pub nm|M $black(char)count countpublic
-bind pub nm|M $black(char)badchan badchanpublic
-bind pub nm|M $black(char)badword antibadword:command:public
-bind pub nm|M $black(char)anunt anuntpublic
-bind pub nm|M $black(char)limit limitpublic
-bind pub nm|M $black(char)topic topicpublic
-bind pub -|- $black(char)seen seenpublic
-bind pub nm|M $black(char)greet greetpublic
-bind pub nm|M $black(char)leave leavepublic
-bind pub nm|M $black(char)idle antidlepublic
-bind pub nm|OSMA $black(char)dr drpublic
-bind pub nm|OSMA $black(char)bot botpublic
-bind pub nm|OSMA $black(char)b bpublic
-bind pub nm|OSMA $black(char)n npublic
-bind pub nm|OSMA $black(char)id idpublic
-bind pub nm|SMA $black(char)black blackpublic
-bind pub nm|SMA $black(char)bl blackpublic
-bind pub nm|VOSMA $black(char)w wpublic
-bind pub nm|OSMA $black(char)spam spampublic
-bind pub nm|VOSMA $black(char)k kpublic
-bind pub nm|OSMA $black(char)bw bwpublic
-bind pub nm|OSMA $black(char)ub ubpublic
-bind pub nm|VOSMA $black(char)sb sbpublic
-bind pub nm|SMA $black(char)d dpublic
-bind pub nm|SMA $black(char)stick stickpublic
-bind pub nm|VOSMA $black(char)t tpublic
-bind pub nm|M $black(char)show showpublic
-bind pub nm|- $black(char)status statuspublic
-bind pub nm|- $black(char)channels channelspublic
-bind pub nm|- $black(char)chat chatpublic
-bind pub nm|- $black(char)uptime uptimepublic
-bind pub nm|VOSMA $black(char)i ipublic
-bind pub nm|VOSMA $black(char)addinfo addinfopublic
-bind pub nm|VOSMA $black(char)v vpublic
-bind pub nm|VOSMA $black(char)myset mysetpublic
-bind pub nm|OSMA $black(char)o opublic
-bind pub nm|VOSMA $black(char)l lpublic
-bind pub nm|VOSMA $black(char)ul ulpublic
-bind pub nm|SMA $black(char)say saypublic
-bind pub nm|SMA $black(char)act actpublic
-bind pub nm|- $black(char)broadcast broadcastpublic
-bind pub nm|OSMA $black(char)check checkpublic
-bind pub nm|VOSMA $black(char)version versionpublic
-bind pub nm|OSMA $black(char)cycle cyclepublic
-bind pub nm|- $black(char)away awaypublic
-bind pub nm|M $black(char)private privatepublic
-bind pub nm|OSMA $black(char)mode modepublic
-bind pub nm|M $black(char)set setpublic
-bind pub nm|- $black(char)silence silencepublic
-bind pub nm|- $black(char)msg msgpublic
-bind pub nm|MA $black(char)add publicadd
-bind pub nm|MA $black(char)adduser adduserpublic
-bind pub nm|MA $black(char)delacc delaccpublic
-bind pub nm|- $black(char)del delpublic
-bind pub nm|- $black(char)ignore ignorepublic
-bind pub nm|- $black(char)botidle botidlepublic
-bind pub nm|M $black(char)addhost addhostpublic
-bind pub nm|M $black(char)delhost delhostpuplic
-bind pub nm|OSMA $black(char)banlist banlistpublic
-bind pub nm|M $black(char)purge purgepublic
-bind pub nm|M $black(char)chuser chuserpublic
-bind pub nm|MASOV $black(char)userlist publicuserlist
-bind pub nm|MASOV $black(char)info infopublic
-bind pub nm|MA $black(char)s spublic
-bind pub nm|MA $black(char)us uspublic
-bind pub nm|MAOSV $black(char)ping pings
-bind pub nm|MASOV $black(char)time timepublic
-bind pub nm|MAOSV $black(char)vers verspublic
-bind pub nm|MAOSV $black(char)whois whoispublic
-bind pub nm|MAOS $black(char)gag gagpublic
-bind pub nm|M $black(char)reset resetpublic
-bind pub nm|M $black(char)clear clearpublic
-bind pub nm|- $black(char)addbot addbotpublic
-bind pub nm|M $black(char)addop addoppublic
-bind pub nm|M $black(char)addvoice addvoicepublic
-bind pub nm|M $black(char)delop deloppublic
-bind pub nm|M $black(char)delvoice delvoicepublic
-bind pub nm|- $black(char)addmyhost addmyhostpublic
-bind pub nm|- $black(char)delmyhost delmyhostpublic
-bind pub nm|VOSAM $black(char)activ activpublic
-bind pub nm|MASOV $black(char)h hpublic
-bind pub nm|MASO $black(char)cc ccpublic
-bind pub nm|MAOSV $black(char)top toppublic
-bind pub nm|M $black(char)secure securepublic
-bind pub nm|- $black(char)bt broadcastpublic:module
-bind pub nm|- $black(char)login publiclogin:Cmd
-bind pub nm|MASO $black(char)stats statspublic
-}
-bind msg nm|- addchan addchanpublic
-bind msg nm|- delchan delchanpublic
-bind msg nm|- suspend suspendpublic
-bind msg nm|- unsuspend unsuspendpublic
-bind msg nm|- nick nickpublic
-bind msg nm|- rehash rehashme
-bind msg nm|- restart restartme
-bind msg nm|- save saveme
-bind msg nm|- jump jumpme
-bind msg nm|- die dieme
-bind msg nm|OSAM op oppublic
-bind msg nm|OSAM deop deoppublic
-bind msg nm|OSAM voice voicepublic
-bind msg nm|OSAM devoice devoicepublic
-bind msg nm|OSAM invite invitepublic
-
-
-##########################################################################
-#
-#
-#         Dont try to modify if you dont know what are you doing !
-#
-#
-#########################################################################
-
-
-set black(name) "BlackToolS"
-set black(author) "BLaCkShaDoW"
-set black(vers) "2.3"
-set black(site) "WwW.TclScripts.Net"
-set sdir "$username.status.txt"
-set wdir "$username.away.txt"
-set seendir "$username.Seen.db"
-set statsdir "$username.stats.db"
-set bwordir "$username.bword.db"
-
-set black(loader_error) [catch {source $black(dirname)/lang/loader.tcl} black(loader_error_stats)]
-
-if {$black(loader_error) == "1"} {
-die "4BlackTools :I didnt find the 12loader.tcl in the 12lang folder. This file contains the language for the script.PLease load it."
-}
-
-if {![info exists anuntpublic:show_running]} { 
-timer $black(anunttime) anuntpublic:show
-set anuntpublic:show_running 1
-}
-
-if {![info exists times_topic_running]} { 
-timer $black(topic_time) times_topic
-set times_topic_running 1
-}
-
-
-if {![file exists $seendir]} {
-set file [open $seendir w]
-close $file
-}
-
-if {![file exists $sdir]} {
-set file [open $sdir w]
-close $file
-}
-
-if {![file exists $wdir]} {
-set file [open $wdir w]
-close $file
-}
-
-if {![file exists $bwordir]} {
-set file [open $bwordir w]
-close $file
-}
-
-
-if {![file exists $statsdir]} {
-set file [open $statsdir w]
-close $file
-}
-
-if {![info exists antibotidle:module_running]} {
-set file [open $sdir "r"]
-set database [read -nonewline $file]
-close $file
-set data [split $database "\n"]
-if {$data != ""} {
-foreach line $data {
-set type [lindex [split $line] 0]
-set stats [lindex [split $line] 1]
-if {($type == "antibotidle:module") && ($stats == "ON")} {
-timer $black(noidlemax) antibotidle:module
-}
-}
-}
-set antibotidle:module_running 1
-}
-
-if {![info exists broadcastpublic:show_running]} {
-set file [open $sdir "r"]
-set database [read -nonewline $file]
-close $file
-set data [split $database "\n"]
-if {$data != ""} {
-foreach line $data {
-set type [lindex [split $line] 0]
-set stats [lindex [split $line] 1]
-if {($type == "broadcastpublic:show") && ($stats == "ON")} {
-timer $black(bttime) broadcastpublic:show
-}
-}
-}
-set broadcastpublic:show_running 1
-}
-
-proc blacktools:tell:prv {nick host hand type arg} {
-global botnick black
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set replace(%botnick%) $botnick
-set replace(%char%) $char(p)
-set replace(%msg%) [lrange [split $arg] 0 end]
-set replace(%msg.1%) [lindex [split $arg] 0]
-set replace(%msg.2%) [lindex [split $arg] 1]
-set replace(%msg.3%) [lindex [split $arg] 2]
-set replace(%msg.4%) [lrange [split $arg] 1 end]
-set getlang [string tolower [getuser $hand XTRA OUTPUT_LANG]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-if {[info exists black(say.$getlang.$type)]} {
-set reply [string map [array get replace] $black(say.$getlang.$type)]
-puthelp "PRIVMSG $nick :$reply"
-}
-}
-
-proc blacktools:tell {nick host hand chan chan1 type arg} {
-global black botnick
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set replace(%botnick%) $botnick
-set replace(%char%) $char(p)
-set replace(%chan%) $chan
-set replace(%msg%) [lrange $arg 0 end]
-set replace(%msg.set%) [lrange $arg 1 end]
-set replace(%msg.1%) [lindex $arg 0]
-set replace(%msg.2%) [lindex $arg 1]
-set replace(%msg.3%) [lindex $arg 2]
-set replace(%msg.4%) [lindex $arg 3]
-set replace(%msg.5%) [lrange $arg 4 end]
-set replace(%msg.6%) [lrange $arg 3 end]
-set replace(%msg.7%) [lrange $arg 2 end]
-set replace(%msg.8%) [lrange $arg 1 end]
-set getlang [string tolower [getuser $hand XTRA OUTPUT_LANG]]
-set getmethod [getuser $hand XTRA OUTPUT_TYPE]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-if {$getmethod == ""} { set getmethod "1" }
-if {[info exists black(say.$getlang.$type)]} {
-set reply [string map [array get replace] $black(say.$getlang.$type)]
-if {$getmethod == "1"} {
-putserv "NOTICE $nick :$reply"
-} else {
-putserv "PRIVMSG $chan1 :$reply"
-}
-}
-}
-
-proc blacktools:banner:1 {banmask botnick chan reason mode timer bantime} {
-global black
-if {[channel get $chan xban]} {
-set getcount [channel get $chan kickcount]
-set getxtime [channel get $chan xbantime]
-set getxlevel [channel get $chan xbanlevel]
-if {$getxlevel == "0"} { set getxlevel "100"}
-if {$getxtime == "0"} { set getxtime "1" }
-set kcount [expr $getcount +1]
-channel set $chan kickcount $kcount
-if {[channel get $chan showcount]} {
-set reason "$reason - $kcount -" 
-} else {
-set reason "$reason" 
-}
-putquick "MODE $chan +$mode" -next ;utimer $timer [list putquick "MODE $chan -$mode"]
-putquick "PRIVMSG $black(chanserv) :ban $chan $banmask $getxtime $getxlevel $reason"
-newchanban $chan $banmask $botnick $reason $bantime
-if {![channel get $chan chanreport]} {
-return 0
-}
-set backchan [channel get $chan backchan]
-if {$backchan == ""} { 
-return 0
-}
-if {!([validchan $backchan]) || !([onchan $botnick $backchan])} {
-return 0
-}
-if {[info exists black($chan:anounce)]} {
-return 0
-}
-set black($chan:anounce) 1
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set replace(%banmask%) $banmask
-set replace(%bantime%) $bantime
-set replace(%reason%) $reason
-set replace(%chan%) $chan
-puthelp "PRIVMSG $backchan :[string map [array get replace] $black(say.$getlang.reportchan)]"
-} else {
-set getcount [channel get $chan kickcount]
-set kcount [expr $getcount +1]
-channel set $chan kickcount $kcount
-if {[channel get $chan showcount]} {
-set reason "$reason - $kcount -" } else {
-set reason "$reason" }
-putquick "MODE $chan +$mode" -next ;utimer $timer [list putquick "MODE $chan -$mode"]
-newchanban $chan $banmask $botnick $reason $bantime
-if {![channel get $chan chanreport]} {
-return 0
-}
-set backchan [channel get $chan backchan]
-if {$backchan == ""} { 
-return 0
-}
-if {!([validchan $backchan]) || !([onchan $botnick $backchan])} {
-return 0
-}
-if {[info exists black($chan:anounce)]} {
-return 0
-}
-set black($chan:anounce) 1
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set replace(%banmask%) $banmask
-set replace(%bantime%) $bantime
-set replace(%reason%) $reason
-set replace(%chan%) $chan
-puthelp "PRIVMSG $backchan :[string map [array get replace] $black(say.$getlang.reportchan)]"
-}
-utimer 5 [list unset black($chan:anounce)]
-}
-
-proc blacktools:banner:2 {banmask botnick chan reason bantime} {
-global black
-if {[channel get $chan xban]} {
-set getcount [channel get $chan kickcount]
-set getxtime [channel get $chan xbantime]
-if {$getxtime == "0"} { set getxtime "1" }
-set getxlevel [channel get $chan xbanlevel]
-if {$getxlevel == "0"} { set getxlevel "100"}
-set kcount [expr $getcount +1]
-channel set $chan kickcount $kcount
-if {[channel get $chan showcount]} {
-set reason "$reason - $kcount -" 
-} else {
-set reason "$reason" 
-}
-putquick "PRIVMSG $black(chanserv) :ban $chan $banmask $getxtime $getxlevel $reason"
-newchanban $chan $banmask $botnick $reason $bantime
-if {![channel get $chan chanreport]} {
-return 0
-}
-set backchan [channel get $chan backchan]
-if {$backchan == ""} { 
-return 0
-}
-
-if {!([validchan $backchan]) || !([onchan $botnick $backchan])} {
-return 0
-}
-
-if {[info exists black($chan:anounce)]} {
-return 0
-}
-
-set black($chan:anounce) 1
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set replace(%banmask%) $banmask
-set replace(%bantime%) $bantime
-set replace(%reason%) $reason
-set replace(%chan%) $chan
-puthelp "PRIVMSG $backchan :[string map [array get replace] $black(say.$getlang.reportchan)]"
-
-} else {
-
-set getcount [channel get $chan kickcount]
-set kcount [expr $getcount +1]
-channel set $chan kickcount $kcount
-if {[channel get $chan showcount]} {
-set reason "$reason - $kcount -" } else {
-set reason "$reason" }
-newchanban $chan $banmask $botnick $reason $bantime
-if {![channel get $chan chanreport]} {
-return 0
-}
-set backchan [channel get $chan backchan]
-if {$backchan == ""} { 
-return 0
-}
-
-if {!([validchan $backchan]) || !([onchan $botnick $backchan])} {
-return 0
-}
-if {[info exists black($chan:anounce)]} {
-return 0
-}
-set black($chan:anounce) 1
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set replace(%banmask%) $banmask
-set replace(%bantime%) $bantime
-set replace(%reason%) $reason
-set replace(%chan%) $chan
-puthelp "PRIVMSG $backchan :[string map [array get replace] $black(say.$getlang.reportchan)]"
-}
-utimer 5 [list unset black($chan:anounce)]
-}
-
-
-proc blacktools:banner:3 {mask hand chan reason bantime type} {
-global black botnick
-if {[channel get $chan xban]} {
-set getcount [channel get $chan kickcount]
-set getxtime [channel get $chan xbantime]
-if {$getxtime == "0"} { set getxtime "1" }
-set getxlevel [channel get $chan xbanlevel]
-if {$getxlevel == "0"} { set getxlevel "100"}
-set getcount [channel get $chan kickcount]
-set kcount [expr $getcount +1]
-channel set $chan kickcount $kcount
-set countz [getuser $hand XTRA $type]
-if {$countz == ""} { set countz 0 }
-set counts [expr $countz + 1]
-setuser $hand XTRA $type $counts
-if {[channel get $chan showcount]} {
-set reason "$reason - $kcount -" 
-} else {
-set reason "$reason" 
-}
-putquick "PRIVMSG $black(chanserv) :ban $chan $mask $getxtime $getxlevel $reason"
-utimer 1 [list newchanban $chan $mask $hand $reason $bantime]
-putquick "MODE $chan +b $mask"
-if {![channel get $chan chanreport]} {
-return 0
-}
-set backchan [channel get $chan backchan]
-if {$backchan == ""} { 
-return 0
-}
-if {!([validchan $backchan]) || !([onchan $botnick $backchan])} {
-return 0
-}
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set replace(%banmask%) $mask
-set replace(%bantime%) $bantime
-set replace(%reason%) $reason
-set replace(%chan%) $chan
-puthelp "PRIVMSG $backchan :[string map [array get replace] $black(say.$getlang.reportchan)]"
-} else {
-set getcount [channel get $chan kickcount]
-set kcount [expr $getcount +1]
-channel set $chan kickcount $kcount
-set countz [getuser $hand XTRA $type]
-if {$countz == ""} { set countz 0 }
-set counts [expr $countz + 1]
-setuser $hand XTRA $type $counts
-if {[channel get $chan showcount]} {
-set reason "$reason - $kcount -" } else {
-set reason "$reason" }
-newchanban $chan $mask $hand $reason $bantime
-putquick "MODE $chan +b $mask"
-if {![channel get $chan chanreport]} {
-return 0
-}
-set backchan [channel get $chan backchan]
-if {$backchan == ""} { 
-return 0
-}
-if {!([validchan $backchan]) || !([onchan $botnick $backchan])} {
-return 0
-}
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set replace(%banmask%) $mask
-set replace(%bantime%) $bantime
-set replace(%reason%) $reason
-set replace(%chan%) $chan
-puthelp "PRIVMSG $backchan :[string map [array get replace] $black(say.$getlang.reportchan)]"
-}
-}
-
-proc blacktools:banner:4 {mask hand chan reason bantime type} {
-global black botnick
-if {[channel get $chan xban]} {
-set getcount [channel get $chan kickcount]
-set getxtime [channel get $chan xbantime]
-if {$getxtime == "0"} { set getxtime "1" }
-set getxlevel [channel get $chan xbanlevel]
-if {$getxlevel == "0"} { set getxlevel "100"}
-set getcount [channel get $chan kickcount]
-set kcount [expr $getcount +1]
-channel set $chan kickcount $kcount
-set countz [getuser $hand XTRA $type]
-if {$countz == ""} { set countz 0 }
-set counts [expr $countz + 1]
-setuser $hand XTRA $type $counts
-if {[channel get $chan showcount]} {
-set reason "$reason - $kcount -" 
-} else {
-set reason "$reason" 
-}
-putquick "PRIVMSG $black(chanserv) :ban $chan $mask $getxtime $getxlevel $reason"
-utimer 1 [list newchanban $chan $mask $hand $reason $bantime sticky]
-putquick "MODE $chan +b $mask"
-if {![channel get $chan chanreport]} {
-return 0
-}
-set backchan [channel get $chan backchan]
-if {$backchan == ""} { 
-return 0
-}
-if {!([validchan $backchan]) || !([onchan $botnick $backchan])} {
-return 0
-}
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set replace(%banmask%) $mask
-set replace(%bantime%) $bantime
-set replace(%reason%) $reason
-set replace(%chan%) $chan
-puthelp "PRIVMSG $backchan :[string map [array get replace] $black(say.$getlang.reportchan)]"
-} else {
-set getcount [channel get $chan kickcount]
-set kcount [expr $getcount +1]
-channel set $chan kickcount $kcount
-set countz [getuser $hand XTRA $type]
-if {$countz == ""} { set countz 0 }
-set counts [expr $countz + 1]
-setuser $hand XTRA $type $counts
-if {[channel get $chan showcount]} {
-set reason "$reason - $kcount -" } else {
-set reason "$reason" }
-newchanban $chan $mask $hand $reason $bantime sticky
-putquick "MODE $chan +b $mask"
-if {![channel get $chan chanreport]} {
-return 0
-}
-set backchan [channel get $chan backchan]
-if {$backchan == ""} { 
-return 0
-}
-if {!([validchan $backchan]) || !([onchan $botnick $backchan])} {
-return 0
-}
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set replace(%banmask%) $mask
-set replace(%bantime%) $bantime
-set replace(%reason%) $reason
-set replace(%chan%) $chan
-puthelp "PRIVMSG $backchan :[string map [array get replace] $black(say.$getlang.reportchan)]"
-}
-}
-
-################################ antipub ###########################
-
-
-proc antipub:filter {str} {
-  regsub -all -- {\003([0-9]{1,2}(,[0-9]{1,2})?)?|\017|\037|\002|\026|\006|\007} $str "" str
-  return $str
-}
-
-proc antipub:protect {nick host hand chan arg} {
-global black botnick
-set text [antipub:filter $arg]
-set handle [nick2hand $nick]
-if {![validchan $chan]} { return 0 }
-set getreason [channel get $chan antipub-reason]
-if {$getreason == ""} { 
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set getreason $black(say.$getlang.antipub.1)
-}
-set getbantime [channel get $chan antipub-bantime]
-if {$getbantime == "0"} { set getbantime $black(antipubbantime) }
-set replace(%chan%) $chan
-set protectreason [string map [array get replace] $getreason]
-set reason "$protectreason"
-set banmask *!*@[lindex [split $host @] 1]
-if {[matchattr $handle $black(exceptflags) $chan]} { return 0 }
-if {![botisop $chan]} { return 0 }
-if {[isvoice $nick $chan] && ($black(vprotect) == "1")} { return 0 }
-if {[isop $nick $chan] && ($black(oprotect) == "1")} { return 0 }
-if {[isbotnick $nick]} { return 0 } 
-if { [channel get $chan antipub] } {
-foreach antipub [string tolower $black(antipubword)] {
-if {[string match -nocase $antipub $arg]} {
-blacktools:banner:1 $banmask $botnick $chan $reason $black(antipubmode) $black(antipubsecunde) $getbantime
-}
-}
-}
-}
-
-proc antipub:protect:me {nick host hand chan keyword arg} {
-global black
-antipub:protect $nick $host $hand $chan $arg
-}
-
-
-############################### antinotice #############################
-
-proc antinotice:protect {nick host hand arg chan} {
-global black botnick
-set handle [nick2hand $nick]
-if {![validchan $chan]} { return 0 }
-set getreason [channel get $chan antinotice-reason]
-if {$getreason == ""} { 
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set getreason $black(say.$getlang.antinotice.1)
-}
-set getbantime [channel get $chan antinotice-bantime]
-if {$getbantime == "0"} { set getbantime $black(antinoticebantime) }
-set replace(%chan%) $chan
-set protectreason [string map [array get replace] $getreason]
-set banmask *!*@[lindex [split $host @] 1]
-set reason "$protectreason"
-if {![botisop $chan]} { return 0 }
-if {[matchattr $handle $black(exceptflags) $chan]} { return 0 }
-if {[isvoice $nick $chan] && ($black(vprotect) == "1")} { return 0 }
-if {[isop $nick $chan] && ($black(oprotect) == "1")} { return 0 }
-if {[isbotnick $nick]} { return 0 }
-if {$chan == $botnick} { return 0 }
-if { [channel get $chan antinotice] } {
-blacktools:banner:1 $banmask $botnick $chan $reason $black(antinoticemode) $black(antinoticesecunde) $getbantime
-}
-}
-
-############################## antictcp ################################
-
-
-proc antictcp:protect {nick host hand chan keyword arg} {
-global black botnick
-set handle [nick2hand $nick]
-if {![validchan $chan]} { return 0 }
-set getreason [channel get $chan antictcp-reason]
-if {$getreason == ""} { 
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set getreason $black(say.$getlang.antictcp.1)
-}
-set getbantime [channel get $chan antictcp-bantime]
-if {$getbantime == "0"} { set getbantime $black(antictcpbantime) }
-set replace(%chan%) $chan
-set protectreason [string map [array get replace] $getreason]
-set reason "$protectreason"
-set banmask *!*@[lindex [split $host @] 1]
-if {[string equal -nocase "action" $keyword] || [string equal -nocase "chat" $keyword]} {return 0}
-if {![botisop $chan]} { return 0 }
-if {[matchattr $handle $black(exceptflags) $chan]} { return 0 }
-if {[isvoice $nick $chan] && ($black(vprotect) == "1")} { return 0 }
-if {[isop $nick $chan] && ($black(oprotect) == "1")} { return 0 }
-if {[isbotnick $nick]} { return 0 }
-if { [channel get $chan antictcp] } {
-blacktools:banner:1 $banmask $botnick $chan $reason $black(antictcpmode) $black(antictcpsecunde) $getbantime
-}
-}
-
-############################## antibadword ################################
-
-proc antibadword:filter {str} {
-  regsub -all -- {\003([0-9]{1,2}(,[0-9]{1,2})?)?|\017|\037|\002|\026|\006|\007} $str "" str
-  return $str
-}
-
-
-proc antibadword:protect {nick host hand chan arg} {
-global black botnick bwordir
-set handle [nick2hand $nick]
-if {![validchan $chan]} { return 0 }
-set getreason [channel get $chan antibadword-reason]
-if {$getreason == ""} { 
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set getreason $black(say.$getlang.antibadword.1)
-}
-set getbantime [channel get $chan antibadword-bantime]
-if {$getbantime == "0"} { set getbantime $black(antibadwordbantime) }
-set replace(%chan%) $chan
-set protectreason [string map [array get replace] $getreason]
-set text [antibadword:filter $arg]
-set reason "$protectreason"
-set banmask *!*@[lindex [split $host @] 1]
-if {![botisop $chan]} { return 0 }
-if {[matchattr $handle $black(exceptflags) $chan]} { return 0 }
-if {[isvoice $nick $chan] && ($black(vprotect) == "1")} { return 0 }
-if {[isop $nick $chan] && ($black(oprotect) == "1")} { return 0 }
-if {[isbotnick $nick]} { return 0 }
-if {[channel get $chan antibadword]} {
-set file [open $bwordir "r"]
-set data [read -nonewline $file]
-close $file
-set lines [split $data "\n"]
-foreach word $lines {
-set c [lindex [split $word] 0]
-set w [lrange [split $word] 1 end]
-if {[string match -nocase $c $chan]} { 
-if {[string match -nocase $w $text]} {
-blacktools:banner:2 $banmask $botnick $chan $reason $getbantime
-}
-}
-}
-foreach antibadword [string tolower $black(antibadword)] {
-if {[string match -nocase $antibadword $text]} {
-blacktools:banner:2 $banmask $botnick $chan $reason $getbantime
-}
-}
-}
-}
-
-proc antibadword:protect:me {nick host hand chan keyword arg} {
-global black
-antibadword:protect $nick $host $hand $chan $arg
-}
-
-################################ badword ##################################
-
-proc antibadword:command:public {nick host hand chan arg} {
-global black botnick
-set why [lindex [split $arg] 0]
-set type 0
-set chan1 "$chan"
-set bdword [lrange [split $arg] 1 end]
-set bdnumber [lindex [split $arg] 1]
-if {[regexp {^[\\+!#&]} $why] && [matchattr $hand nm|- $chan]} {
-set chan "$why"
-set why [lindex [split $arg] 1]
-set bdnumber [lindex [split $arg] 2]
-set bdword [lrange [split $arg] 2 end]
-}
-antibadword:command:process $nick $host $hand $chan $chan1 $why $bdword $bdnumber $type
-}
-
-proc antibadword:command:process {nick host hand chan chan1 why bdword bdnumber type} {
-global black bwordir botnick
-set i 0
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-if {[matchattr $hand nm|- $chan]} {
-if {($why == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 badword.1 none
-return 0
-}
-if {($why == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 badword.2 none
-return 0
-}
-}
-if {($why == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 badword.3 none
-return 0
-}
-if {($why == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 badword.4 none
-return 0
-}
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-switch -exact -- [string tolower $why] {
-
-add {
-set file [open $bwordir a]
-puts $file "$chan $bdword"
-close $file
-blacktools:tell $nick $host $hand $chan $chan1 badword.5 $bdword
-}
-
-list {
-set file [open $bwordir "r"]
-set why [read -nonewline $file]
-close $file
-set data [split $why "\n"]
-if {$data == ""} { 
-blacktools:tell $nick $host $hand $chan $chan1 badword.6 none
-blacktools:tell $nick $host $hand $chan $chan1 badword.7 none
-return 0
-}
-foreach word $data {
-set c [lindex [split $word] 0]
-set word [lrange [split $word] 1 end]
-if {[string match -nocase $chan $c]} {
-set foundchan 1
-set i [expr $i +1]
-blacktools:tell $nick $host $hand $chan $chan1 badword.6 none
-blacktools:tell $nick $host $hand $chan $chan1 badword.8 "4 $i. 12$word"
-}
-if {![info exists foundchan]} {
-blacktools:tell $nick $host $hand $chan $chan1 badword.6 none
-blacktools:tell $nick $host $hand $chan $chan1 badword.7 none
-}
-
-}
-}
-
-del {
-if {![regexp {^[0-9]} $bdnumber]} {
-blacktools:tell $nick $host $hand $chan $chan1 badword.9 $bdword
-return 0
-}
-set file [open $bwordir "r"]
-set data [read -nonewline $file]
-close $file
-set lines [split $data "\n"]
-foreach word $lines {
-set c [lindex [split $word] 0]
-if {[string match -nocase $c $chan]} { 
-set i [expr $bdnumber - 1]
-set delete [lreplace $lines $i $i]
-set file [open $bwordir "w"]
-puts $file [join $delete "\n"]
-close $file
-}
-}
-set file [open $bwordir "r"]
-set data [read -nonewline $file]
-close $file
-if {$data == ""} {
-set files [open $bwordir "w"]
-close $files
-}
-blacktools:tell $nick $host $hand $chan $chan1 badword.10 $bdnumber
-}
-}
-}
-
-############################## AntiLongText ################################
-
-proc antilongtext:protect {nick uhost hand chan arg} {
-global black botnick
-set handle [nick2hand $nick]
-if {![validchan $chan]} { return 0 }
-set getreason [channel get $chan antilongtext-reason]
-if {$getreason == ""} { 
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set getreason $black(say.$getlang.antilongtext.1)
-}
-set getbantime [channel get $chan antilongtext-bantime]
-if {$getbantime == "0"} { set getbantime $black(longbantime) }
-set getlongchar [channel get $chan antilongtextmax]
-if {$getlongchar == "0"} { set getlongchar "$black(longchar)" }
-set replace(%chan%) $chan
-set protectreason [string map [array get replace] $getreason]
-set banmask "*!*@[lindex [split $uhost @] 1]"
-set reason "$protectreason"
-if {[matchattr $handle $black(exceptflags) $chan]} { return 0 }
-if {![botisop $chan]} { return 0 }
-if {[isvoice $nick $chan] && ($black(vprotect) == "1")} { return 0 }
-if {[isop $nick $chan] && ($black(oprotect) == "1")} { return 0 }
-if {[isbotnick $nick]} { return 0 } 
-if {[string length $arg] >= $getlongchar} {
-if {[channel get $chan antilongtext]} {
-blacktools:banner:1 $banmask $botnick $chan $reason $black(longmode) $black(longtimemode) $getbantime
-}
-}
-}
-
-proc antilongtext:protect:me {nick host hand chan keyword arg} {
-global black
-antilongtext:protect $nick $host $hand $chan $arg
-}
-
-############################ AntiBAdQuitPart ##############################
-
-set black(badcolors) {
-
-"*\x03*"
-"*\037*"
-"*\002*"
-
-}
-
-proc antipubpart:protect {nick host hand chan arg} {
-global botnick black
-set handle [nick2hand $nick]
-if {![validchan $chan]} { return 0 }
-set getreason [channel get $chan antibadquitpart-reason]
-if {$getreason == ""} { 
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set getreason $black(say.$getlang.antibadquitpart.1)
-}
-set getbantime [channel get $chan antibadquitpart-bantime]
-if {$getbantime == "0"} { set getbantime $black(badquitparttime) }
-set replace(%chan%) $chan
-set protectreason [string map [array get replace] $getreason]
-set banmask "*!*@[lindex [split $host @] 1]"
-set reason "$protectreason"
-if {[channel get $chan badquitpart]} {
-foreach word $black(badquitpartwords) {
-if {![botisop $chan]} { return 0 }
-if {[matchattr $handle $black(exceptflags) $chan]} { return 0 }
-if {[isvoice $nick $chan] && ($black(vprotect) == "1")} { return 0 }
-if {[isop $nick $chan] && ($black(oprotect) == "1")} { return 0 }
-if {[isbotnick $nick]} { return 0 }
-if {[string match -nocase $word $arg]} {
-blacktools:banner:2 $banmask $botnick $chan $reason $getbantime
-}
-}
-}
-}
-
-proc antipubsign:protect {nick host hand chan arg} {
-antipubpart:protect $nick $host $hand $chan $arg
-}
-
-
-proc anticolorpart:protect {nick host hand chan arg} {
-global botnick black
-set handle [nick2hand $nick]
-if {![validchan $chan]} { return 0 }
-set getreason [channel get $chan antibadquitpart-reason]
-if {$getreason == ""} {
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set getreason $black(say.$getlang.antibadquitpart.1)
-}
-set getbantime [channel get $chan antibadquitpart-bantime]
-if {$getbantime == "0"} { set getbantime $black(badquitparttime) }
-set replace(%chan%) $chan
-set protectreason [string map [array get replace] $getreason]
-set banmask "*!*@[lindex [split $host @] 1]"
-set reason "$protectreason"
-if {[channel get $chan badquitpart]} {
-foreach color $black(badcolors) {
-if {![botisop $chan]} { return 0 }
-if {[matchattr $handle $black(exceptflags) $chan]} { return 0 }
-if {[isvoice $nick $chan] && ($black(vprotect) == "1")} { return 0 }
-if {[isop $nick $chan] && ($black(oprotect) == "1")} { return 0 }
-if {[isbotnick $nick]} { return 0 }
-if {($black(badquitpartcolour) == "1") && [string match -nocase $color $arg]} {
-blacktools:banner:2 $banmask $botnick $chan $reason $getbantime
-}
-}
-}
-}
-
-proc anticolorquit:protect {nick host hand chan arg} {
-anticolorpart:protect $nick $host $hand $chan $arg
-}
-
-########################### AntiJoinPart #############################
-
-proc antijoinpart:protect {nick host hand chan arg} {
-global black botnick
-set handle [nick2hand $nick]
-if {![validchan $chan]} { return 0 }
-set getreason [channel get $chan antijoinpart-reason]
-if {$getreason == ""} {
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set getreason $black(say.$getlang.antijoinpart.1)
-}
-set getbantime [channel get $chan antijoinpart-bantime]
-if {$getbantime == "0"} { set getbantime $black(joinpartbantime) }
-set replace(%chan%) $chan
-set protectreason [string map [array get replace] $getreason]
-set banmask "*!*@[lindex [split $host @] 1]"
-set reason "$protectreason"
-if {[matchattr $handle $black(exceptflags) $chan]} { return 0 }
-if {[isbotnick $nick]} { return 0 }
-if {$chan == $botnick} { return 0 }
-if {[channel get $chan antijoinpart]} {
-if {[getchanjoin $nick $chan] >= [expr {[clock seconds]-$black(joinparttime)}]} {
-blacktools:banner:1 $banmask $botnick $chan $reason $black(joinpartmode) $black(joinparttimemode) $getbantime
-}
-}
-}
-
-proc spam:filter {str} {
-  regsub -all -- {\003([0-9]{1,2}(,[0-9]{1,2})?)?|\017|\037|\002|\026|\006|\007} $str "" str
-  return $str
-}
-
-############################# AntiSpam ##############################
-
-proc antispam:protect {nick uhost hand arg} {
-global botnick black
-set text [spam:filter $arg]
-set handle [nick2hand $nick]
-foreach spammer [string tolower $black(spamword)] { 
-if {[string match -nocase $spammer $arg]} {
-foreach chans [channels] {
-if {![validchan $chans]} { return 0 }
-set getreason [channel get $chans antispam-reason]
-if {$getreason == ""} { 
-set getlang [string tolower [channel get $chans lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set getreason $black(say.$getlang.antispam.1)
-}
-set getbantime [channel get $chans antispam-bantime]
-if {$getbantime == "0"} { set getbantime $black(spamban) }
-if {[onchan $nick $chans]} {
-if {[channel get $chans antispam]} {
-if {![botisop $chans]} { return 0 }
-if {[isbotnick $nick]} { return 0 }
-set banmask *!*@[lindex [split $uhost @] 1]
-set replace(%chan%) $chans
-set protectreason [string map [array get replace] $getreason]
-set reason "$protectreason"
-if {[matchattr $handle $black(exceptflags) $chans]} { return 0 }
-if {[isvoice $nick $chans] && ($black(vprotect) == "1")} { return 0 }
-if {[isop $nick $chans] && ($black(oprotect) == "1")} { return 0 }
-blacktools:banner:2 $banmask $botnick $chans $reason $getbantime
-}
-}
-}
-}
-}
-}
-proc antispam:protect:msg {nick host hand chan } {
-global black
-if {![validchan $chan]} { return 0 }
-if {[channel get $chan antispam]} {
-if {[isbotnick $nick]} { return 0 }
-if {$black(spamreq) == "1"} {
-set getmsg [channel get $chan antispam-message]
-if {$getmsg == ""} { 
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set getmsg $black(say.$getlang.antispam.2)
-}
-set replace(%nick%) $nick
-set replace(%chan%) $chan
-set spamsg [string map [array get replace] $getmsg]
-puthelp "PRIVMSG $nick :$spamsg"
-} 
-}
-}
-
-
-proc antispam:protect:cycle {min hour day mon year} {
-global black
-if {([scan $min %d]+([scan $hour %d]*60)) % $black(spamcycle) == 0} { 
-foreach chan [channels] {
-if { [channel get $chan antispam]} {
-putserv "PART $chan :$black(spammsgcycle)"; putserv "JOIN $chan"
-}
-}
-}
-}
-
-############################## AntiRepeat ###############################
-
-proc antirepeat:protect {nick host hand chan arg} {
-global black botnick count
-set arg [join [split $arg]]
-if {![validchan $chan]} { return 0 }
-set getreason [channel get $chan antirepeat-reason]
-if {$getreason == ""} { 
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set getreason $black(say.$getlang.antirepeat.1)
-}
-set getbantime [channel get $chan antirepeat-bantime]
-if {$getbantime == "0"} { set getbantime $black(antirepeatbantime) }
-set replace(%chan%) $chan
-set protectreason [string map [array get replace] $getreason]
-set reason "$protectreason"
-set repeatset [channel get $chan antirepeat-setting]
-if {$repeatset == ""} { set repeatset "$black(repeats)" }
-set number [scan $repeatset %\[^:\]]
-set time [scan $repeatset %*\[^:\]:%s]
-set banmask *!*@[lindex [split $host @] 1]
-set handle [nick2hand $nick]
-foreach tmr [utimers] {
-if {[string match "*count(repeat:$host:$chan:$arg)*" [join [lindex $tmr 1]]]} {
-killutimer [lindex $tmr 2]
-}
-}
-if {[channel get $chan antirepeat]} {
-if {[isvoice $nick $chan] && ($black(vprotect) == "1")} { return 0 }
-if {[isop $nick $chan] && ($black(oprotect) == "1")} { return 0 }
-if {![botisop $chan]} { return 0 }
-if {[matchattr $handle $black(exceptflags) $chan]} { return 0 }
-if {[isbotnick $nick]} { return 0 }
-
-if {![info exists count(repeat:$host:$chan:$arg)]} { 
-set count(repeat:$host:$chan:$arg) 0 
-}
-
-if {![info exists count(repeat:$host:$chan)]} { 
-set count(repeat:$host:$chan) 0 
-}
-
-incr count(repeat:$host:$chan:$arg)
-utimer $time [list unset count(repeat:$host:$chan:$arg)]
-
-if {$count(repeat:$host:$chan:$arg) >= $number} {
-if {$black(antirepeattype) == "0"} { set count(repeat:$host:$chan) 2 } 
-incr count(repeat:$host:$chan)
-if {$count(repeat:$host:$chan) == 1} {
-set getcount [channel get $chan kickcount]
-set kcount [expr $getcount +1]
-channel set $chan kickcount $kcount
-if {[channel get $chan showcount]} {
-set reason "$reason - $kcount -" 
-} else {
-set reason "$reason" 
-}
-putquick "KICK $chan $nick :$reason"
-}
-if {$count(repeat:$host:$chan) >= 2} {
-blacktools:banner:2 $banmask $botnick $chan $reason $getbantime
-unset count(repeat:$host:$chan)
-}
-}
-}
-}
-
-
-proc antirepeat:protect:me {nick host hand chan keyword arg} {
-antirepeat:protect $nick $host $hand $chan $arg
-}
-
-
-############################# AntiColor ################################
-
-proc anticolor:protect {nick host hand chan arg} {
-global black botnick count
-set arg [join [split $arg]]
-if {![validchan $chan]} { return 0 }
-set getreason [channel get $chan anticolor-reason]
-if {$getreason == ""} { 
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set getreason $black(say.$getlang.anticolor.1)
-}
-set getbantime [channel get $chan anticolor-bantime]
-if {$getbantime == "0"} { set getbantime $black(anticolorbantime) }
-set replace(%chan%) $chan
-set protectreason [string map [array get replace] $getreason]
-set reason "$protectreason"
-set banmask *!*@[lindex [split $host @] 1]
-set handle [nick2hand $nick]
-if {[channel get $chan anticolor]} {
-if {[isvoice $nick $chan] && ($black(vprotect) == "1")} { return 0 }
-if {[isop $nick $chan] && ($black(oprotect) == "1")} { return 0 }
-if {![botisop $chan]} { return 0 }
-if {[matchattr $handle $black(exceptflags) $chan]} { return 0 }
-if {[isbotnick $nick]} { return 0 }
-if {![info exists count(color:$host:$chan)]} { 
-set count(color:$host:$chan) 0 
-}
-if {[string match *\003* $arg]} {
-incr count(color:$host:$chan)
-if {$black(anticolortype) == "0" } { set count(color:$host:$chan) 2 }
-if {$count(color:$host:$chan) == 1} {
-set getcount [channel get $chan kickcount]
-set kcount [expr $getcount +1]
-channel set $chan kickcount $kcount
-if {[channel get $chan showcount]} {
-set reason "$reason - $kcount -" 
-} else {
-set reason "$reason" 
-}
-putquick "KICK $chan $nick :$reason"
-}
-if {$count(color:$host:$chan) == 2} {
-blacktools:banner:2 $banmask $botnick $chan $reason $getbantime
-unset count(color:$host:$chan)
-}
-}
-}
-}
-
-proc anticolor:protect:me {nick host hand chan keyword arg} {
-anticolor:protect $nick $host $hand $chan $arg
-}
-
-############################# AntiBold ################################
-
-proc antibold:protect {nick host hand chan arg} {
-global black botnick count
-set arg [split $arg]
-if {![validchan $chan]} { return 0 }
-set getreason [channel get $chan antibold-reason]
-if {$getreason == ""} { 
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set getreason $black(say.$getlang.antibold.1)
-}
-set getbantime [channel get $chan antibold-bantime]
-if {$getbantime == "0"} { set getbantime $black(antiboldbantime) }
-set replace(%chan%) $chan
-set protectreason [string map [array get replace] $getreason]
-set reason "$protectreason"
-set banmask *!*@[lindex [split $host @] 1]
-set handle [nick2hand $nick]
-if {[channel get $chan antibold]} {
-if {[isvoice $nick $chan] && ($black(vprotect) == "1")} { return 0 }
-if {[isop $nick $chan] && ($black(oprotect) == "1")} { return 0 }
-if {![botisop $chan]} { return 0 }
-if {[matchattr $handle $black(exceptflags) $chan]} { return 0 }
-if {[isbotnick $nick]} { return 0 }
-if {![info exists count(bold:$host:$chan)]} { 
-set count(bold:$host:$chan) 0 
-}
-if {[string match *\002* $arg]} {
-incr count(bold:$host:$chan)
-if {$black(antiboldtype) == "0" } { set count(bold:$host:$chan) 2 }
-if {$count(bold:$host:$chan) == 1} {
-set getcount [channel get $chan kickcount]
-set kcount [expr $getcount +1]
-channel set $chan kickcount $kcount
-if {[channel get $chan showcount]} {
-set reason "$reason - $kcount -" 
-} else {
-set reason "$reason" 
-}
-putquick "KICK $chan $nick :$reason"
-}
-if {$count(bold:$host:$chan) == 2} {
-blacktools:banner:2 $banmask $botnick $chan $reason $getbantime
-unset count(bold:$host:$chan)
-}
-}
-}
-}
-
-proc antibold:protect:me {nick host hand chan keyword arg} {
-antibold:protect $nick $host $hand $chan $arg
-}
-
-############################ AntiUnderline ###############################
-
-proc antiunderline:protect {nick host hand chan arg} {
-global black botnick count
-set arg [split $arg]
-if {![validchan $chan]} { return 0 }
-set getreason [channel get $chan antiunderline-reason]
-if {$getreason == ""} { 
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set getreason $black(say.$getlang.antiunderline.1)
-}
-set getbantime [channel get $chan antiunderline-bantime]
-if {$getbantime == "0"} { set getbantime $black(antiunderlinebantime) }
-set replace(%chan%) $chan
-set protectreason [string map [array get replace] $getreason]
-set reason "$protectreason"
-set banmask *!*@[lindex [split $host @] 1]
-set handle [nick2hand $nick]
-if {[channel get $chan antiunderline]} {
-if {[isvoice $nick $chan] && ($black(vprotect) == "1")} { return 0 }
-if {[isop $nick $chan] && ($black(oprotect) == "1")} { return 0 }
-if {![botisop $chan]} { return 0 }
-if {[matchattr $handle $black(exceptflags) $chan]} { return 0 }
-if {[isbotnick $nick]} { return 0 }
-if {![info exists count(underline:$host:$chan)]} { 
-set count(underline:$host:$chan) 0 
-}
-if {[string match *\037* $arg]} {
-incr count(underline:$host:$chan)
-if {$black(antiunderlinetype) == "0" } { set count(underline:$host:$chan) 2 }
-if {$count(underline:$host:$chan) == 1} {
-set getcount [channel get $chan kickcount]
-set kcount [expr $getcount +1]
-channel set $chan kickcount $kcount
-if {[channel get $chan showcount]} {
-set reason "$reason - $kcount -" 
-} else {
-set reason "$reason" 
-}
-putquick "KICK $chan $nick :$reason"
-}
-if {$count(underline:$host:$chan) == 2} {
-blacktools:banner:2 $banmask $botnick $chan $reason $getbantime
-unset count(underline:$host:$chan)
-}
-}
-}
-}
-
-proc antiunderline:protect:me {nick host hand chan keyword arg} {
-antiunderline:protect $nick $host $hand $chan $arg
-}
-
-############################## AntiCaps #################################
-
-proc anticaps:protect {nick host hand chan arg} {
-global black botnick count
-set handle [nick2hand $nick]
-if {![validchan $chan]} { return 0 }
-set getreason [channel get $chan anticaps-reason]
-if {$getreason == ""} { 
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set getreason $black(say.$getlang.anticaps.1)
-}
-set getbantime [channel get $chan anticaps-bantime]
-if {$getbantime == "0"} { set getbantime $black(anticapsbantime) }
-set replace(%chan%) $chan
-set protectreason [string map [array get replace] $getreason]
-set reason "$protectreason"
-set banmask *!*@[lindex [split $host @] 1]
-if {![info exists count(caps:$host:$chan)]} { 
-set count(caps:$host:$chan) 0 
-}
-if {[channel get $chan anticaps]} {
-if {[isvoice $nick $chan] && ($black(vprotect) == "1")} { return 0 }
-if {[isop $nick $chan] && ($black(oprotect) == "1")} { return 0 }
-if {![botisop $chan]} { return 0 }
-if {[matchattr $handle $black(exceptflags) $chan]} { return 0 }
-if {[isbotnick $nick]} { return 0 }
-
-set caps($nick:$host) 0
-foreach word [split $arg {}] {
-if [string match \[A-Z\] $word] {
-incr caps($nick:$host)
-}
-
-}
-
-if {$caps($nick:$host) == 0} {
-  return 0
-}
-  if {[string length $arg] < 20} {return 0}
-  set capchar [string length $arg]
-  set number $caps($nick:$host)/$capchar
-  if {[expr 100 * $caps($nick:$host) / $capchar] > $black(anticapscount)} {
-incr count(caps:$host:$chan)
-if {$black(anticapstype) == "0" } { set count(caps:$host:$chan) 2 }
-if {$count(caps:$host:$chan) == 1} {
-set getcount [channel get $chan kickcount]
-set kcount [expr $getcount +1]
-channel set $chan kickcount $kcount
-if {[channel get $chan showcount]} {
-set reason "$reason - $kcount -" 
-} else {
-set reason "$reason" 
-}
-putquick "KICK $chan $nick :$reason"
-}
-if {$count(caps:$host:$chan) == 2} {
-blacktools:banner:2 $banmask $botnick $chan $reason $getbantime
-unset count(caps:$host:$chan)
-}
-}
-}
-}
-
-proc anticaps:protect:me {nick host hand chan keyword arg} {
-anticaps:protect $nick $host $hand $chan $arg
-}
-
-################################ BadIdent #################################
-
-proc badident:protect:join {nick host hand chan} {
-global black botnick
-if {![validchan $chan]} { return 0 }
-set getreason [channel get $chan badident-reason]
-if {$getreason == ""} { 
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set getreason $black(say.$getlang.badident.1)
-}
-set getbantime [channel get $chan badident-bantime]
-if {$getbantime == "0"} { set getbantime $black(badidentbantime) }
-set replace(%chan%) $chan
-set protectreason [string map [array get replace] $getreason]
-set reason "$protectreason"
-set ident "[string trimleft [string tolower [lindex [split $host "@"] 0]] "~"]"
-set banmask "*!*$ident@*"
-if {![validchan $chan]} { return 0 }
-if {[channel get $chan badident]} {
-if {![botisop $chan]} { return 0 }
-if {[isvoice $nick $chan] && ($black(vprotect) == "1")} { return 0 }
-if {[isop $nick $chan] && ($black(oprotect) == "1")} { return 0 }
-if {[matchattr $hand $black(exceptflags) $chan]} { return 0 }
-foreach bit $black(badidentwords) {
-if {[string match -nocase $bit $ident]} {
-blacktools:banner:2 $banmask $botnick $chan $reason $getbantime
-}
-}
-}
-}
-
-
-############################## BadFullname ###############################
-
-proc badfullname:protect:join {nick host hand chan} {
-global botnick black
-set ::cchan $chan
-set ::nnick $nick
-set ::hhost $host
-set handle [nick2hand $nick]
-if { [channel get $chan badfullname] } {
-if {![botisop $chan]} { return 0 }
-if {[isvoice $nick $chan] && ($black(vprotect) == "1")} { return 0 }
-if {[isop $nick $chan] && ($black(oprotect) == "1")} { return 0 }
-if {[matchattr $handle $black(exceptflags) $chan]} { return 0 }
-if {[onchan $nick $chan]} {
-putquick "WHOIS $nick $nick"
-bind RAW - 311 badfullname:protect
-}
-}
-}
-
-proc badfullname:protect { from keyword arguments } {
-global botnick black
-set chan $::cchan
-set nick $::nnick
-set host $::hhost
-set getreason [channel get $chan badfullname-reason]
-if {$getreason == ""} { 
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set getreason $black(say.$getlang.badfullname.1)
-}
-set getbantime [channel get $chan badfullname-bantime]
-if {$getbantime == "0"} { set getbantime $black(badfbantime) }
-set replace(%chan%) $chan
-set protectreason [string map [array get replace] $getreason]
-set reason "$protectreason"
-set fullname [string range [join [lrange $arguments 5 end]] 1 end]
-if {[onchan $nick $chan]} {
-set banmask *!*@[lindex [split [getchanhost $nick $chan] "@"] 1] 
-}
-  foreach realname $black(badfwords) {
-if {[string match -nocase $realname $fullname]} {
-blacktools:banner:2 $banmask $botnick $chan $reason $getbantime
-}
-}
-unbind RAW - 311 badfullname:protect
-}
-
-################################ BadNick #################################
-
-proc badnick:protect:join {nick host hand chan} {
-global black botnick
-set handle [nick2hand $nick]
-if {![validchan $chan]} { return 0 }
-set getreason [channel get $chan badnick-reason]
-if {$getreason == ""} { 
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set getreason $black(say.$getlang.badnick.1)
-}
-set getbantime [channel get $chan badnick-bantime]
-if {$getbantime == "0"} { set getbantime $black(badnickbantime) }
-set replace(%chan%) $chan
-set protectreason [string map [array get replace] $getreason]
-set reason "$protectreason"
-set banmask "$nick*!*@*"
-if {![validchan $chan]} { return 0 }
-if {[channel get $chan badnick]} {
-if {![botisop $chan]} { return 0 }
-if {[isvoice $nick $chan] && ($black(vprotect) == "1")} { return 0 }
-if {[isop $nick $chan] && ($black(oprotect) == "1")} { return 0 }
-if {[matchattr $handle $black(exceptflags) $chan]} { return 0 }
-foreach badnick [string tolower $black(badnickwords)] {
-if {[string match $badnick [string tolower $nick]]} {
-blacktools:banner:2 $banmask $botnick $chan $reason $getbantime
-}
-}
-}
-}
-
-proc badnick:protect:change {nick host hand chan newnick} {
-global black botnick
-set handle [nick2hand $nick]
-if {![validchan $chan]} { return 0 }
-set getreason [channel get $chan badnick-reason]
-if {$getreason == ""} { 
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set getreason $black(say.$getlang.badnick.1)
-}
-set getbantime [channel get $chan badnick-bantime]
-if {$getbantime == "0"} { set getbantime $black(badnickbantime) }
-set replace(%chan%) $chan
-set protectreason [string map [array get replace] $getreason]
-set reason "$protectreason"
-set banmask "$newnick*!*@*"
-if {![validchan $chan]} { return 0 }
-if {[channel get $chan badnick]} {
-if {![botisop $chan]} { return 0 }
-if {[isvoice $nick $chan] && ($black(vprotect) == "1")} { return 0 }
-if {[isop $nick $chan] && ($black(oprotect) == "1")} { return 0 }
-if {[matchattr $handle $black(exceptflags) $chan]} { return 0 }
-foreach badnick [string tolower $black(badnickwords)] {
-if {[string match $badnick [string tolower $newnick]]} {
-blacktools:banner:2 $banmask $botnick $chan $reason $getbantime
-}
-}
-}
-}
-
-
-
-########################### AntiJoinFlood ################################
-
-proc joinflood:protect {nick host hand chan} {
-global black count
-if {[channel get $chan antijoinflood]} {
-set getset [channel get $chan joinflood]
-if {$getset == ""} { set getset "4 5" }
-set number [lindex [split $getset] 0]
-set time [lindex [split $getset] 1]
-set replace(%chan%) $chan
-foreach tmr [utimers] {
-if {[string match "*count(joinflood:$chan)*" [join [lindex $tmr 1]]]} {
-killutimer [lindex $tmr 2]
-}
-}
-if {![info exists count(joinflood:$chan)]} { 
-set count(joinflood:$chan) 0 
-}
-
-incr count(joinflood:$chan)
-utimer $time [list unset count(joinflood:$chan)]
-
-if {$count(joinflood:$chan) >= "$number"} {
-if {![botisop $chan]} { return 0 }
-putquick "MODE $chan +$black(modes)" ; utimer $black(nomodetime) [list putquick "MODE $chan -$black(modes)"]
-if {$black(fjoinhow) == "1"} {
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set getmessage $black(say.$getlang.antijoinflood.1)
-set message [string map [array get replace] $getmessage]
-puthelp "NOTICE @$chan :$message"
-}
-}
-}
-}
-
-
-########################## Login ###############################
-
-proc loginpublic {my} {
-     global botnick black
-        putquick "$black(login)"   
-        putquick "MODE $botnick :$black(xmod)"
-        
-}
-
-
-proc publiclogin:Cmd {nick host hand chan arg} {
-global botnick black
-putquick "$black(login)"
-putquick "MODE $botnick :$black(xmod)"
-blacktools:tell:prv $nick $host $hand login.1 $black(chanserv)
-}
-
-########################### User Protection ################################
-
-proc protectpublic {nick host hand chan args} {
-global black
-set bans [lindex $args 1]
-if {![botisop $chan]} { return 0 }
-if {$bans == "*!*@*"} { putquick "MODE $chan -b $bans"
-return 0
-}
-set list [userlist $black(exceptflags) $chan]
-foreach user $list {
- set hosts [getuser $user hosts]
-foreach host $hosts {
-if {[string match -nocase $bans $host]} {
-putquick "MODE $chan -b $bans"
-if {[onchan $black(chanserv) $chan]} {
-putquick "PRIVMSG $black(chanserv) :unban $chan $bans"
-}
-}
-}
-}
-}
-
-############################## AntiChanFlood ###############################
-
-proc antifloodchan:protect {nick host hand chan arg} {
-global black botnick count
-set arg [split $arg]
-if {![validchan $chan]} { return 0 }
-set getreason [channel get $chan antichanflood-reason]
-if {$getreason == ""} { 
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set getreason $black(say.$getlang.antichanflood.1)
-}
-set getbantime [channel get $chan antichanflood-bantime]
-if {$getbantime == "0"} { set getbantime $black(antifloodchanbantime) }
-set replace(%chan%) $chan
-set getset [channel get $chan chanflood]
-if {$getset == ""} { set getset "4 5" }
-set protectreason [string map [array get replace] $getreason]
-set reason "$protectreason"
-set number [lindex [split $getset] 0]
-set time [lindex [split $getset] 1]
-set banmask *!*@[lindex [split $host @] 1]
-set handle [nick2hand $nick]
-foreach tmr [utimers] {
-if {[string match "*count(repeat:$host:$chan:flood)*" [join [lindex $tmr 1]]]} {
-killutimer [lindex $tmr 2]
-}
-}
-if {[channel get $chan antichanflood]} {
-if {[isvoice $nick $chan] && ($black(vprotect) == "1")} { return 0 }
-if {[isop $nick $chan] && ($black(oprotect) == "1")} { return 0 }
-if {![botisop $chan]} { return 0 }
-if {[matchattr $handle $black(exceptflags) $chan]} { return 0 }
-if {[isbotnick $nick]} { return 0 }
-
-if {![info exists count(repeat:$host:$chan:flood)]} { 
-set count(repeat:$host:$chan:flood) 0 
-}
-
-if {![info exists count(repeat:$host:$chan)]} { 
-set count(repeat:$host:$chan) 0 
-}
-
-incr count(repeat:$host:$chan:flood)
-utimer $time [list unset count(repeat:$host:$chan:flood)]
-
-if {$count(repeat:$host:$chan:flood) >= $number} {
-if {$black(antifloodchantype) == "0"} { set count(repeat:$host:$chan) 2 } 
-incr count(repeat:$host:$chan)
-if {$count(repeat:$host:$chan) == 1} {
-set getcount [channel get $chan kickcount]
-set kcount [expr $getcount +1]
-channel set $chan kickcount $kcount
-if {[channel get $chan showcount]} {
-set reason "$reason - $kcount -" 
-} else {
-set reason "$reason" 
-}
-putquick "KICK $chan $nick :$reason"
-}
-if {$count(repeat:$host:$chan) >= 2} {
-blacktools:banner:2 $banmask $botnick $chan $reason $getbantime
-unset count(repeat:$host:$chan)
-}
-}
-}
-}
-
-proc antifloodchan:protect:me {nick host hand chan keyword arg} {
-antirepeat:protect $nick $host $hand $chan $arg
-}
-
-################################# reban ################################
-
-proc rebanpublic {nick host hand chan} {
-global black
-if {[channel get $chan xban]} {
-set host "$nick![getchanhost $nick $chan]"
-set getxtime [channel get $chan xbantime]
-set getxlevel [channel get $chan xbanlevel]
-if {$getxlevel == "0"} { set getxlevel "100" } 
-if {$getxtime == "0"} { set getxtime "1" }
-foreach ban [banlist $chan] {
-set reason "[lindex $ban 1]"
-if {[string match -nocase [string tolower [lindex $ban 0]] $host]} {
-putquick "PRIVMSG $black(chanserv) :ban $chan [lindex $ban 0] $getxtime $getxlevel $reason"
-}
-}
-}
-}
-
-################################# XTOOLS ################################
-
-proc toolspublic {chan type} {
-global botnick black
-if {![channel get $chan xtools]} {
-return 0
-}
-if {$type == "op"} {
-if  {![onchan "$black(chanserv)" $chan] && ![botisop $chan]} {
-return 0
-}
-putquick "PRIVMSG $black(chanserv) :unban $chan $botnick"
-putquick "PRIVMSG $black(chanserv) :op $chan $botnick"
-return 0
-}
-if {$type == "unban"} {
-putquick "PRIVMSG $black(chanserv) :unban $chan $botnick"
-return 0
-}
-if {$type == "invite" || $type == "limit"} {
-putquick "PRIVMSG $black(chanserv) :invite $chan $botnick"
-return 0
-}
-}
-
-
-################################# Clone Scan ###################################
-
-
-
-proc scannerpublic {nick host hand chan arg} {
-global black count
-set c [lindex [split $arg] 0]
-set type 0
-set chan1 "$chan"
-if {[regexp {^[\\+!#&]} $c] && [matchattr $hand nm|- $chan]} {
-set chan "$c"
-}
-scanner:process $nick $host $hand $chan $chan1
-}
-
-proc scanner:process {nick host hand chan chan1} {
-global botnick black
-array set clones [list]
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-
-blacktools:tell $nick $host $hand $chan $chan1 clonescan.4 none
-foreach user [chanlist $chan] {
-set host [string tolower [lindex [split [getchanhost $user $chan] @] 1]]
-if {![string match "*.undernet.org*" $host]} {
-if {!($black(maxclone) >= "2")} { return 0 }
-if {![info exists c($host:$chan)]} {
-set c($host:$chan) 0
-}
-set c($host:$chan) [expr $c($host:$chan) +1]
-lappend clones($user) $host
-if {$c($host:$chan) >= $black(maxclone)} {
-foreach clon [lsort -unique [array names clones]] {
-set hosts [string tolower [lindex [split [getchanhost $clon $chan] @] 1]]
-if {$host == $hosts} {
-lappend clona($host) [join $clon " , "]
-} 
-}
-blacktools:tell $nick $host $hand $chan $chan1 clonescan.1 "$c($host:$chan) $host [lsort -unique $clona($host)]"
-}
-utimer 3 [list blacktools:tell $nick $host $hand $chan $chan1 clonescan.2 none]
-}
-} 
-}
-
-proc clonescanner {minute hour day month year} {
-global black botnick
-foreach chan [channels] {
-set replace(%chan%) $chan
-if {[channel get $chan clonescan]} {
-putlog "Scaning for clones on $chan.."
-foreach user [chanlist $chan] {
-set host [string tolower [lindex [split [getchanhost $user $chan] @] 1]]
-set replace(%host%) $host
-if {![info exists c($host:$chan)]} {
-set c($host:$chan) 0
-}
-array set clones [list]
-if {![string match "*.undernet.org*" $host]} {
-if {!($black(maxclone) >= "2")} { return 0 }
-set c($host:$chan) [expr $c($host:$chan) +1]
-lappend clones($user) $host
-if {$c($host:$chan) >= $black(maxclone)} {
-foreach clon [array names clones] {
-set hosts [string tolower [lindex [split [getchanhost $clon $chan] @] 1]]
-if {$host == $hosts} {
-lappend clona($host) [join $clon " , "]
-} 
-}
-set replace(%num%) $c($host:$chan)
-set replace(%clone%) [lsort -unique $clona($host)]
-if {$black(what) == "0"} {
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-putserv "NOTICE @$chan :[string map [array get replace] $black(say.$getlang.clonescan.3)]"
-}
-if {$black(what) == "1"} {
-set banmask *!*@[lindex [split $host @] 1]
-set reason [string map [array get replace] $black(reason)]
-blacktools:banner:2 $banmask $botnick $chan $reason $black(clonebtime)
-}
-}
-}
-}
-}
-}
-}
-
-
-
-############################# Topic refresh #########################
-
-proc refreshpublic {nick host hand chan arg} {
-global botnick black
-set thetopic [topic $chan]
-puthelp "TOPIC $chan :$black(topics)"
-puthelp "TOPIC $chan :$thetopic"
-}
-
-
-proc times_topic {} {
- global black
-foreach chan [channels] {
-if {[channel get $chan topicrefresh] } {
-set thetopic [topic $chan]
-   puthelp "TOPIC $chan :$black(topics)"
-   puthelp "TOPIC $chan :$thetopic"
-
-}
-}
-timer $black(topic_time) times_topic
- return 1
-}
-
-
-
-################################ count ####################################
-
-proc countpublic {nick host hand chan arg} {
-global black
-set type 0
-set chan1 "$chan"
-set why [lindex [split $arg] 0]
-if {[regexp {^[\\+!#&]} $why] && [matchattr $hand nm|- $chan]} {
-set chan "$why"
-set why [lindex [split $arg] 1]
-}
-count:process $nick $host $hand $chan $chan1 $why $type
-}
-
-
-proc count:process {nick host hand chan chan1 why type} {
-global botnick black
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-if {[matchattr $hand nm|- $chan]} {
-if {($why == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 count.1 none
-return 0
-}
-if {($why == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 count.2 none
-return 0
-}
-}
-if {($why == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 count.3 none
-return 0
-}
-if {($why == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 count.4 none
-return 0
-}
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-if { [channel get $chan count] } { set countstats "on" } else { set countstats "off"}
-if {($countstats == "on") && ($why == "on")} { blacktools:tell $nick $host $hand $chan $chan1 count.5 none
-return 0
-}
-if {($countstats == "off") && ($why == "off")} { blacktools:tell $nick $host $hand $chan $chan1 count.6 none
-return 0
-}
-
-if {([regexp -nocase -- {(#[0-9]+|on|off|display|reset)} $why tmp counter]) && (![regexp -nocase -- {\S#} $why])} {
-    switch $counter {
-
-on {
-channel set $chan +count
-blacktools:tell $nick $host $hand $chan $chan1 count.7 none
-}
-
-off {
-channel set $chan -count
-blacktools:tell $nick $host $hand $chan $chan1 count.8 none
-}
-
-display {
-set stats [channel get $chan countnumber]
-blacktools:tell $nick $host $hand $chan $chan1 count.9 $stats
-}
-
-reset {
-channel set $chan countnumber 0
-blacktools:tell $nick $host $hand $chan $chan1 count.10 none
-
-}
-} 
-} 
-}
-
-
-proc countpublic:join {nick host hand chan} {
-global black
-if {[isbotnick $nick]} { return 0}
-if {[channel get $chan count]} {
-set stats [channel get $chan countnumber]
-set counting [expr $stats +1]
-channel set $chan countnumber $counting
-set replace(%num%) $counting
-set replace(%chan%) $chan
-set countmes [channel get $chan count-message]
-if {$countmes == ""} { 
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set countmessage [string map [array get replace] $black(say.$getlang.count.11)]
-}
-putquick "NOTICE $nick :$countmessage"
-}
-}
-
-
-############################### Private ##########################
-
-proc privatepublic {nick host hand chan arg} {
-global black
-set type 0
-set chan1 "$chan"
-set why [lindex [split $arg] 0]
-set user [lindex [split $arg] 1]
-set host [lindex [split $arg] 2]
-if {[regexp {^[\\+!#&]} $why] && [matchattr $hand nm|- $chan]} {
-set chan "$why"
-set why [lindex [split $arg] 1]
-set user [lindex [split $arg] 2]
-set host [lindex [split $arg] 3]
-}
-private:process $nick $host $hand $chan $chan1 $why $user $host $type
-}
-
-proc private:process {nick host hand chan chan1 why user host type} {
-global botnick black
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set flags "-|f"
-if {[matchattr $hand nm|- $chan]} {
-if {($why == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 private.1 none
-return 0
-}
-if {($why == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 private.2 none
-return 0
-}
-}
-if {($why == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 private.3 none
-return 0
-}
-if {($why == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 private.4 none
-return 0
-}
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-
-if {([regexp -nocase -- {(#[0-9]+|on|off|add|list|del)} $why tmp privat]) && (![regexp -nocase -- {\S#} $why])} {
-    switch $privat {
-on {
-     channel set $chan +private
-blacktools:tell $nick $host $hand $chan $chan1 private.5 none
-}
-
-off {
-     channel set $chan -private
-blacktools:tell $nick $host $hand $chan $chan1 private.6 none
-}
-
-add {
-
-if {[validuser $user]} { 
-chattr $user $flags $chan
-blacktools:tell $nick $host $hand $chan $chan1 private.7 $user
-return 0
-}
-adduser $user $host
-chattr $user $flags $chan
-blacktools:tell $nick $host $hand $chan $chan1 private.8 "$user $host"
-}
-
-
-del {
-
-if {[validuser $user]} {
-chattr $user -|-f $chan
-blacktools:tell $nick $host $hand $chan $chan1 private.9 $user
-} else { blacktools:tell $nick $host $hand $chan $chan1 private.10 $user
-return 0
-}
-}
-
-list {
-set list [userlist $flags $chan]
-blacktools:tell $nick $host $hand $chan $chan1 private.11 $list
-}
-
-}
-}
-}
-
-
-
-proc private:module {nick host hand chan} {
-global black botnick
-set getreason [channel get $chan private-reason]
-if {$getreason == ""} { 
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set getreason $black(say.$getlang.private.12)
-}
-set getbantime [channel get $chan private-bantime]
-if {$getbantime == "0"} { set getbantime $black(privatebantime) }
-set handle [nick2hand $nick]
-set mask "*!*@[lindex [split $host @] 1]"
-if {[channel get $chan private]} {
-if {[matchattr $handle nm|oMASOVf $chan]} { 
-return 0 
-}
-newchanban $chan $mask $botnick $getreason $getbantime
-}
-}
-
-
-############################### BadChan ###########################
-
-proc badchanpublic {nick host hand chan arg} {
-global black
-set why [lindex [split $arg] 0]
-set type 0
-set chan1 "$chan"
-set bdchan [join [lindex [split $arg] 1]]
-if {[regexp {^[\\+!#&]} $why] && [matchattr $hand nm|- $chan]} {
-set chan "$why"
-set why [lindex [split $arg] 1]
-set bdchan [join [lindex [split $arg] 2]]
-}
-badchan:process $nick $host $hand $chan $chan1 $why $bdchan $type
-}
-
-proc badchan:process {nick host hand chan chan1 why bdchan type} {
-global botnick black
-set flag "antibadchan"
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set dir "logs/badchan($chan).txt"
-if {[matchattr $hand nm|- $chan]} {
-if {($why == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 badchan.1 none
-return 0
-}
-if {($why == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 badchan.2 none
-return 0
-}
-}
-if {($why == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 badchan.3 none
-return 0
-}
-if {($why == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 badchan.4 none
-return 0
-}
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-
-
-if {([regexp -nocase -- {(#[0-9]+|on|off|add|list|del)} $why tmp bc]) && (![regexp -nocase -- {\S#} $why])} {
-    switch $bc {
-on {
-channel set $chan +$flag
-blacktools:tell $nick $host $hand $chan $chan1 badchan.5 none
-}
-off {
-channel set $chan -$flag
-blacktools:tell $nick $host $hand $chan $chan1 badchan.6 none
-
-}
-
-add {
-if {[file exists $dir] == 0} {
-set file [open $dir w]
-close $file
-}
-set file [open $dir a]
-puts $file $bdchan
-close $file
-blacktools:tell $nick $host $hand $chan $chan1 badchan.7 $bdchan
-}
-
-list {
-
-if {[file exists $dir] == 0} {
-set file [open $dir w]
-close $file
-}
-set dir "logs/badchan($chan).txt"
-set file [open $dir "r"]
-set w [read -nonewline $file]
-close $file
-set data [split $w "\n"]
-set i 0
-if {$data == ""} { blacktools:tell $nick $host $hand $chan $chan1 badchan.8 none
-return 0
-}
-foreach cc $data {
-set i [expr $i +1]
-blacktools:tell $nick $host $hand $chan $chan1 badchan.9 none
-blacktools:tell $nick $host $hand $chan $chan1 badchan.10 "$i. $cc"
-}
-}
-
-del {
-if {![regexp {^[0-9]} $bdchan]} {
-blacktools:tell $nick $host $hand $chan $chan1 badchan.11 none
-return 0
-}
-
-if {[file exists $dir] == 0} {
-set file [open $dir w]
-close $file
-}
-
-set file [open $dir "r"]
-set data [read -nonewline $file]
-close $file
-set lines [split $data "\n"] 
-set i [expr $bdchan - 1]
-set delete [lreplace $lines $i $i]
-set file [open $dir "w"]
-puts $file [join $delete "\n"]
-close $file
-set file [open $dir "r"]
-set data [read -nonewline $file]
-close $file
-if {$data == ""} {
-set files [open $dir "w"]
-close $files
-}
-blacktools:tell $nick $host $hand $chan $chan1 badchan.12 $bdchan
-blacktools:tell $nick $host $hand $chan $chan1 badchan.13 none
-}
-
-
-}
-}
-}
-
-
-
-proc badchanpublic:join {nick host hand chan} {
-global black
-set handle [nick2hand $nick]
-set ::ccchan $chan
-if {![validchan $chan]} {
-return 0
-}
-if {[matchattr $handle nm|MASoOVv $chan]} { return 0 }
-if {![botisop $chan]} { return 0 }
-if {[isbotnick $nick]} { return 0 }
-if {[channel get $chan antibadchan]} {
-if {[onchan $nick $chan]} {
-utimer 5 [list putquick "WHOIS $nick $nick"]
-bind RAW - 319 badchanpublic:ban
-}
-}
-}
-
-proc badchanpublic:ban {from keyword arguments } {
-global botnick black
-set chan $::ccchan
-set arguments [join $arguments]
-set nick [string tolower [lindex $arguments 1]] 
-set replace(%chan%) $chan
-set replace(%nick%) $nick
-set handle [nick2hand $nick]
-set args [join $arguments]
-set getreason [channel get $chan badchan-reason]
-if {$getreason == ""} { 
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set getreason $black(say.$getlang.badchan.14)
-}
-set getbantime [channel get $chan badchan-bantime]
-if {$getbantime == "0"} { set getbantime $black(badcbantime) }
-if {[channel get $chan antibadchan]} {
-if {[matchattr $handle $black(exceptflags) $chan]} { return 0 }
-set protectreason [string map [array get replace] $getreason]
-set reason "$protectreason"
-set channels [string tolower [lrange $args 2 end]]
-set banmask *!*@[lindex [split [getchanhost $nick $chan] "@"] 1]
-set dir "logs/badchan($chan).txt"
-if {[file exists $dir] == 0} {
-set file [open $dir w]
-close $file
-}
-set file [open $dir "r"]
-set w [read -nonewline $file]
-close $file
-set bchan [split $w "\n"]
-if {$w == ""} { return 0 }
-foreach badchan $bchan {
-set replace(%bchan%) $badchan
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set protectmsg [string map [array get replace] $black(say.$getlang.badchan.15)]
-foreach c $channels {
-set ch [string trimleft $c ":@+"]
-if {[string match -nocase $badchan $ch]} {
-blacktools:banner:2 $banmask $botnick $chan $getreason $getbantime
-putserv "PRIVMSG $nick :$protectmsg"
-}
-}
-}
-}
-}
-
-
-################################# Antitake ##################################
-
-
-proc dontdeoppublic {nick host hand chan args} {
-global black botnick
-set dnick [lindex $args 1]
-set handle [nick2hand $nick]
-if {[channel get $chan dontdeop] } {
-if {[string match -nocase $nick $botnick]} {
-return 0
-}
-if {![matchattr $handle $black(exceptflags) $chan]} {
-putquick "MODE $chan -o $nick"
-putquick "MODE $chan +o $dnick"
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-puthelp "NOTICE $nick :$black(say.$getlang.antitake.1)"
-}
-}
-}
- 
-proc dontoppublic {nick host hand chan args} {
-global black botnick
-set onick [lindex $args 1]
-set handle [nick2hand $nick]
-if {[channel get $chan dontop]} {
-if {[string match -nocase $nick $botnick]} { 
-return 0
-}
-if {[string match -nocase $onick $botnick]} {
-return 0
-}
-if {![matchattr $handle $black(exceptflags) $chan]} {
-putquick "MODE $chan -o $nick"
-putquick "MODE $chan -o $onick"
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-puthelp "NOTICE $nick :$black(say.$getlang.antitake.2)"
-}
-}
-}
-
-
-################################# Anunt ###################################
-
-
-proc anuntpublic {nick host hand chan arg} {
-global black
-set type 0
-set chan1 "$chan"
-set who [lindex [split $arg] 0]
-set message [join [lrange [split $arg] 1 end]]
-set number [lindex [split $arg] 1]
-if {[regexp {^[\\+!#&]} $who] && [matchattr $hand nm|- $chan]} {
-set chan "$who"
-set who [lindex [split $arg] 1]
-set message [join [lrange [split $arg] 2 end]]
-set number [lindex [split $arg] 2]
-}
-anunt:process $nick $host $hand $chan $chan1 $who $message $number $type
-}
-
-proc anunt:process {nick host hand chan chan1 who message number type} {
-global botnick black
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set dir "logs/anunt($chan).txt"
-if {[matchattr $hand nm|- $chan]} {
-if {($who == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 anunt.1 none
-return 0
-}
-if {($who == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 anunt.2 none
-return 0
-}
-}
-if {($who == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 anunt.3 none
-return 0
-}
-if {($who == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 anunt.4 none
-return 0
-}
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-
-
-if {([regexp -nocase -- {(#[0-9]+|on|off|add|list|del)} $who tmp a]) && (![regexp -nocase -- {\S#} $who])} {
-    switch $a {
-on {
-channel set $chan +anunt
-blacktools:tell $nick $host $hand $chan $chan1 anunt.5 none
-}
-
-off {
-channel set $chan -anunt
-blacktools:tell $nick $host $hand $chan $chan1 anunt.6 none
-}
-
-add {
-
-if {[file exists $dir] == 0} {
-set file [open $dir w]
-close $file
-}
-set file [open $dir a]
-puts $file $message
-close $file
-blacktools:tell $nick $host $hand $chan $chan1 anunt.7 none
-blacktools:tell $nick $host $hand $chan $chan1 anunt.8 $message
-}
-
-list {
-
-if {[file exists $dir] == 0} {
-set file [open $dir w]
-close $file
-}
-set file [open $dir "r"]
-set w [read -nonewline $file]
-close $file
-set data [split $w "\n"]
-set i 0
-if {$data == ""} { blacktools:tell $nick $host $hand $chan $chan1 anunt.9 none
-return 0
-}
-foreach mes $data {
-set i [expr $i +1]
-blacktools:tell $nick $host $hand $chan $chan1 anunt.10 none
-blacktools:tell $nick $host $hand $chan $chan1 anunt.8 "$i. $mes"
-}
-}
-
-del {
-
-if {![regexp {^[0-9]} $number]} {
-blacktools:tell $nick $host $hand $chan $chan1 anunt.11 none
-return 0
-}
-
-set dir "logs/anunt($chan).txt"
-if {[file exists $dir] == 0} {
-set file [open $dir w]
-close $file
-}
-
-set file [open $dir "r"]
-set data [read -nonewline $file]
-close $file
-set lines [split $data "\n"]
-set i [expr $number - 1]
-set delete [lreplace $lines $i $i]
-set files [open $dir "w"]
-puts $files [join $delete "\n"]
-close $files
-set file [open $dir "r"]
-set data [read -nonewline $file]
-close $file
-if {$data == ""} {
-set files [open $dir "w"]
-close $files
-}
-
-blacktools:tell $nick $host $hand $chan $chan1 anunt.12 $number
-blacktools:tell $nick $host $hand $chan $chan1 anunt.13 none
-}
-
-}
-}
-}
-
-proc anuntpublic:show {} {
-global black count
-foreach chan [channels] {
-if {[validchan $chan]} {
-set dir "logs/anunt($chan).txt"
-if {[channel get $chan anunt]} {
-if {![info exists count(anunt:$chan)]} {
-set count(anunt:$chan) 0
-}
-if {[file exists $dir] == 0} {
-set file [open $dir w]
-close $file
-}
-set file [open $dir "r"]
-set data [read -nonewline $file]
-close $file
-set lines [split $data "\n"]
-set line [lindex $lines $count(anunt:$chan)]
-incr count(anunt:$chan)
-if {$line == ""} {
-unset count(anunt:$chan)
-}
-if {$black(anunthow) == "1"} {
-puthelp "PRIVMSG $chan :\001ACTION $line\001"
-} else { 
-puthelp "PRIVMSG $chan :$line"
-}
-}
-}
-}
-timer $black(anunttime) anuntpublic:show
-return 1
-}
-
-################################## TimeBan #############################
-
-
-proc timeban:module {nick host hand chan} {
-global botnick
-if {[channel get $chan showtime]} {
-set host "$nick![getchanhost $nick $chan]"
-foreach ban [banlist $chan] {
-if {[string match -nocase [string tolower [lindex $ban 0]] $host]} {
-set reason "[lindex $ban 1]"
-set bantime "[lindex $ban 2]"
-set totalday [expr $bantime - [unixtime]]
-if {$totalday >= 86400} {
-set daysfull [expr $totalday/86400]
-set days [expr int($daysfull)]
-set dayssub [expr 86400*$days]
-set totalhour [expr $totalday - $dayssub]
-}
-if {$totalday < 86400} {
-set totalhour $totalday
-set days 0
-}
-if {$totalhour >= 3600} {
-set hoursfull [expr $totalhour/3600]
-set hours [expr int($hoursfull)]
-set hourssub [expr 3600*$hours]
-set totalmin [expr $totalhour - $hourssub]
-}
-if {$totalhour < 3600} {
-set totalmin $totalhour
-set hours 0
-}
-if {$totalmin >= 60} {
-set minsfull [expr $totalmin/60]
-set mins [expr int($minsfull)]
-}
-if {$totalmin < 60} {
-set mins 0
-}
-if {$days < 1} {set zi "0 zile, "} elseif {$days == 1} {set zi "$days zi, "} {set zi "$days zile, "}
-if {$hours < 1} {set ora "0"} else { set ora "$hours" }
-set minut "$mins"
-set re "$reason Expire :$zi$ora:$minut"
-if {[lindex $ban 2] == 0} {
-set expire "Expire :Perm Ban"
-set re "$reason $expire"
-}
-putquick "MODE $chan +b [lindex $ban 0]"
-putquick "KICK $chan $nick :$re"
-}
-}
-}
-}
-
-
-
-############################### AutoBroadcast ############################
-
-proc broadcastpublic:module {nick host hand chan arg} {
-global black sdir
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set chan1 "$chan"
-set who [lindex [split $arg] 0]
-set message [join [lrange [split $arg] 1 end]]
-set number [lindex [split $arg] 1]
-if {$who == ""} { blacktools:tell $nick $host $hand $chan $chan1 autobroadcast.1 none
-return 0
-}
-broadcast:process $nick $host $hand $chan $chan1 $who $message $number
-}
-
-
-
-
-proc broadcast:process {nick host hand chan chan1 who message number} {
-global botnick black sdir
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set dir "logs/broadcast.txt"
-set lin 0
-
-if {([regexp -nocase -- {(#[0-9]+|on|off|add|list|del)} $who tmp a]) && (![regexp -nocase -- {\S#} $who])} {
-    switch $a {
-
-on {
-set type "broadcastpublic:show ON"
-foreach tmr [timers] {
-if {[string match "*broadcastpublic:show*" [join [lindex $tmr 1]]]} {
-blacktools:tell $nick $host $hand $chan $chan1 autobroadcast.3 none
-return 0
-}
-}
-blacktools:tell $nick $host $hand $chan $chan1 autobroadcast.4 none
-set file [open $sdir "r"]
-set database [read -nonewline $file]
-close $file
-set data [split $database "\n"]
-foreach line $data {
-set lin [expr $lin +1]
-set who [lindex  [split $line] 0]
-set stats [lindex [split $line] 1]
-if {[string match -nocase "broadcastpublic:show" $who]} {
-if {$line != ""} {
-set num [expr $lin - 1]
-set delete [lreplace $data $num $num]
-set files [open $sdir "w"]
-puts $files [join $delete "\n"]
-close $files
-}
-}
-}
-set file [open $sdir "r"]
-set data [read -nonewline $file]
-close $file
-if {$data == ""} {
-set files [open $sdir "w"]
-close $files
-}
-set file [open $sdir "a"]
-puts $file "$type"
-close $file
-timer $black(bttime) broadcastpublic:show
-}
-
-off {
-blacktools:tell $nick $host $hand $chan $chan1 autobroadcast.5 none
-set type "broadcastpublic:show OFF"
-foreach tmr [timers] {
-if {[string match -nocase "*broadcastpublic:show*" [join [lindex $tmr 1]]]} {
-killtimer [lindex $tmr 2]
-}
-}
-set file [open $sdir "r"]
-set database [read -nonewline $file]
-close $file
-set data [split $database "\n"]
-foreach line $data {
-set lin [expr $lin +1]
-set who [lindex  [split $line] 0]
-set stats [lindex [split $line] 1]
-if {[string match -nocase "broadcastpublic:show" $who]} {
-if {$line != ""} {
-set num [expr $lin - 1]
-set delete [lreplace $data $num $num]
-set files [open $sdir "w"]
-puts $files [join $delete "\n"]
-close $files
-}
-}
-}
-set file [open $sdir "r"]
-set data [read -nonewline $file]
-close $file
-if {$data == ""} {
-set files [open $sdir "w"]
-close $files
-}
-set file [open $sdir "a"]
-puts $file "$type"
-close $file
-}
-
-add {
-if {[file exists $dir] == 0} {
-set file [open $dir a]
-close $file
-}
-set file [open $dir a]
-puts $file $message
-close $file
-blacktools:tell $nick $host $hand $chan $chan1 autobroadcast.6 none
-blacktools:tell $nick $host $hand $chan $chan1 autobroadcast.7 $message
-}
-
-list {
-if {[file exists $dir] == 0} {
-set file [open $dir a]
-close $file
-}
-set dir "logs/broadcast.txt"
-set file [open $dir "r"]
-set w [read -nonewline $file]
-close $file
-set data [split $w "\n"]
-set i 0
-if {$data == ""} { blacktools:tell $nick $host $hand $chan $chan1 autobroadcast.8 none
-return 0
-}
-foreach mes $data {
-set i [expr $i +1]
-blacktools:tell $nick $host $hand $chan $chan1 autobroadcast.9 none
-blacktools:tell $nick $host $hand $chan $chan1 autobroadcast.7 "$i. $mes"
-}
-}
-
-del {
-
-if {![regexp {^[0-9]} $number]} {
-blacktools:tell $nick $host $hand $chan $chan1 autobroadcast.10 none
-return 0
-}
-
-set dir "logs/broadcast.txt"
-if {[file exists $dir] == 0} {
-set file [open $dir a]
-close $file
-}
-
-set file [open $dir "r"]
-set data [read -nonewline $file]
-close $file
-set lines [split $data "\n"]
-set i [expr $number - 1]
-set delete [lreplace $lines $i $i]
-set files [open $dir "w"]
-puts $files [join $delete "\n"]
-close $files
-set file [open $dir "r"]
-set data [read -nonewline $file]
-close $file
-if {$data == ""} {
-set files [open $dir "w"]
-close $files
-}
-
-blacktools:tell $nick $host $hand $chan $chan1 autobroadcast.11 $number
-}
-
-}
-}
-}
-
-
-proc broadcastpublic:show {} {
-global black
-set dir "logs/broadcast.txt"
-if {[file exists $dir] == 0} {
-set file [open $dir a]
-close $file
-}
-foreach chan [channels] {
-if {[isdynamic $chan] && (![channel get $chan silent])} {
-set file [open $dir "r"]
-set data [read -nonewline $file]
-close $file
-set lines [split $data "\n"]
-set numlines [llength $lines]
-set random [rand $numlines]
-set randomline [lindex $lines $random]
-if {$black(bthow) == "1"} {
-puthelp "PRIVMSG $chan :\001ACTION 1(BROADCAST) $randomline\001"
-} else { 
-puthelp "PRIVMSG $chan :1(BROADCAST) $randomline"
-}
-}
-}
-timer $black(bttime) broadcastpublic:show
-return 1
-}
-
-
-################################# Limit ###################################
-
-
-proc limitpublic {nick host hand chan arg} {
-global black 
-set why [lindex [split $arg] 0]
-set lm [lindex [split $arg] 1]
-set type 0
-set chan1 "$chan"
-if {[regexp {^[\\+!#&]} $why] && [matchattr $hand nm|- $chan]} {
-set chan "$why"
-set why [lindex [split $arg] 1]
-set lm [lindex [split $arg] 2]
-}
-limit:process $nick $host $hand $chan $chan1 $why $lm $type
-}
-
-proc limit:process {nick host hand chan chan1  why lm type} {
-global botnick black
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-if {[matchattr $hand nm|- $chan]} {
-if {($why == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 limit.1 none
-return 0
-}
-if {($why == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 limit.2 none
-return 0
-}
-}
-if {($why == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 limit.3 none
-return 0
-}
-if {($why == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 limit.4 none
-return 0
-}
-
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-
-set usersnum [llength [chanlist $chan]]
-set setnum [channel get $chan blacklimit]
-
-if {([regexp -nocase -- {(#[0-9]+|on|off|set|on|off)} $why tmp lmt]) && (![regexp -nocase -- {\S#} $why])} {
-    switch $lmt {
-
-on {
-set limt [channel get $chan blacklimit]
-channel set $chan +limit
-blacktools:tell $nick $host $hand $chan $chan1 limit.5 none
-if {($limt != "0")} {
-putserv "MODE $chan +l [expr $usersnum + $limt]"
-} else {
-putserv "MODE $chan +l [expr $usersnum + 10]"
-channel set $chan blacklimit 10
-blacktools:tell $nick $host $hand $chan $chan1 limit.6 none
-}
-}
-off {
-channel set $chan -limit
-blacktools:tell $nick $host $hand $chan $chan1 limit.7 none
-putquick "MODE $chan -l"
-}
-
-set {
-if {![regexp {^[0-9]} $lm]} {
-blacktools:tell $nick $host $hand $chan $chan1 limit.8 none
-return 0
-}
-if {$lm < 2} { blacktools:tell $nick $host $hand $chan $chan1 limit.9 none
-channel set $chan blacklimit 2
-putserv "MODE $chan +l [expr $usersnum + $lm]"
-blacktools:tell $nick $host $hand $chan $chan1 limit.10 none
-return 0
-}
-if {$lm > 500} { blacktools:tell $nick $host $hand $chan $chan1 limit.11 none
-return 0
-}
-
-channel set $chan blacklimit $lm
-blacktools:tell $nick $host $hand $chan $chan1 limit.12 $lm
-putserv "MODE $chan +l [expr $usersnum + $lm]"
-}
-
-}
-}
-}
-
-proc limit:timer {min hour day mon year} {
-global black
-foreach chan [channels] {
-if {[channel get $chan limit]} {
-set usersnum [llength [chanlist $chan]]
-set setnum [channel get $chan blacklimit]
-if {$setnum == "0"} { set setnum "10" }
-if {![botisop $chan]} { return 0 }
-set chanmode [getchanmode $chan]
-if {[string match "*l*" "$chanmode"]} {
-set lim [lindex $chanmode 1]
-} else { set lim "0" }
-if {$usersnum > $lim} { set dif [expr $usersnum - $lim] } else { set dif [expr $lim - $usersnum] }
-if {($dif >= $setnum) || ($dif <= $setnum)} {
-putserv "MODE $chan +l [expr $usersnum + $setnum]"
-}
-
-}
-}
-}
-
-
-
-
-
-################################# Topic ###################################
-
-proc topicpublic {nick host hand chan arg} {
-global black
-set nop [lindex [split $arg] 0]
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set type 0
-set chan1 "$chan"
-set tp [join [lrange [split $arg] 1 end]]
-set number [lindex [split $arg] 1]
-if {[regexp {^[\\+!#&]} $nop] && [matchattr $hand nm|- $chan]} {
-set chan "$nop"
-set nop [lindex [split $arg] 1]
-set tp [join [lrange [split $arg] 2 end]]
-set number [lindex [split $arg] 2]
-}
-topic:process $nick $host $hand $chan $chan1 $nop $tp $number $type
-}
-
-
-
-proc topic:process {nick host hand chan chan1 nop tp number type} {
-global botnick black
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set dir "logs/topic($chan).txt"
-if {[matchattr $hand nm|- $chan]} {
-if {($nop == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 topic.1 none
-return 0
-}
-if {($nop == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 topic.2 none
-return 0
-}
-}
-if {($nop == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 topic.3 none
-return 0
-}
-if {($nop == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 topic.4 none
-return 0
-}
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-
-
- if {([regexp -nocase -- {(#[0-9]+|save|list|add|del|set)} $nop tmp topc]) && (![regexp -nocase -- {\S#} $nop])} {
-    switch $topc {
-
- save {
-set t [join [topic $chan]]
-if {$t == ""} { blacktools:tell $nick $host $hand $chan $chan1 topic.5 none
-return 0
-}
-
-if {[file exists $dir] == 0} {
-set file [open $dir w]
-close $file
-}
-set file [open $dir a]
-puts $file $t
-close $file
-blacktools:tell $nick $host $hand $chan $chan1 topic.6 none
-}
-
-add {
-
-if {[file exists $dir] == 0} {
-set file [open $dir w]
-close $file
-}
-set file [open $dir a]
-puts $file $tp
-close $file
-blacktools:tell $nick $host $hand $chan $chan1 topic.7 none
-}
-
-list {
-
-if {[file exists $dir] == 0} {
-set file [open $dir w]
-close $file
-}
-set file [open $dir "r"]
-set w [read -nonewline $file]
-close $file
-set data [split $w "\n"]
-set i 0
-if {$data == ""} { blacktools:tell $nick $host $hand $chan $chan1 topic.8 none
-return 0
-}
-foreach ts $data {
-set i [expr $i +1]
-blacktools:tell $nick $host $hand $chan $chan1 topic.9 none
-blacktools:tell $nick $host $hand $chan $chan1 topic.10 "$i. $ts"
-}
-}
-
-del {
-
-if {![regexp {^[0-9]} $number]} {
-blacktools:tell $nick $host $hand $chan $chan1 topic.11 none
-return 0
-}
-
-if {[file exists $dir] == 0} {
-set file [open $dir w]
-close $file
-}
-
-set file [open $dir "r"]
-set data [read -nonewline $file]
-close $file
-set lines [split $data "\n"]
-set i [expr $number - 1]
-set delete [lreplace $lines $i $i]
-set files [open $dir "w"]
-puts $files [join $delete "\n"]
-close $files
-set file [open $dir "r"]
-set data [read -nonewline $file]
-close $file
-if {$data == ""} {
-set files [open $dir "w"]
-close $files
-}
-blacktools:tell $nick $host $hand $chan $chan1 topic.12 $number
-}
-
-set {
-if {$number == ""} { blacktools:tell $nick $host $hand $chan $chan1 topic.13 none
-return 0
-}
-set file [open $dir "r"]
-set data [read -nonewline $file]
-close $file
-set lines [split $data "\n"]
-set num [expr $number - 1]
-set line [lindex $lines $num]
-putquick "TOPIC $chan :Setting topic.."
-puthelp "TOPIC $chan :$line"
-blacktools:tell $nick $host $hand $chan $chan1 topic.14 $number
-}
-
-}
-}
-}
-
-
-################################# Seen ###################################
-
-
-proc seen:save:2 {nick chan host type time staytimer reason} {
-global seendir
-set lin 0
-set j 0
-set who "$type $chan $nick $host $time $staytimer $reason"
-set file [open $seendir "r"]
-set database [read -nonewline $file]
-close $file
-set data [split $database "\n"]
-foreach line $data {
-set lin [expr $lin +1]
-set userentry [lindex  [split $line] 2]
-set chanentry [lindex [split $line] 1]
-if {[string equal -nocase $userentry $nick] && [string match -nocase $chanentry $chan]} {
-set joined [lindex [split $line] 0]
-if {$joined == "JOIN"} {
-set j [lindex [split $line] 4]
-if {![regexp {^[0-9]} $j] || ($j == "")} {
-set j 0
-}
-}
-set who "$type $chan $nick $host $time $j $reason"
-if {$line != ""} {
-set num [expr $lin - 1]
-set delete [lreplace $data $num $num]
-set files [open $seendir "w"]
-puts $files [join $delete "\n"]
-close $files
-}
-}
-}
-set file [open $seendir "r"]
-set data [read -nonewline $file]
-close $file
-if {$data == ""} {
-set files [open $seendir "w"]
-close $files
-}
-set file [open $seendir "a"]
-puts $file "$who"
-close $file
-}
-
-proc seen:save:1 {nick chan host type time staytimer} {
-global seendir
-set lin 0
-set who "$type $chan $nick $host $time $staytimer"
-set file [open $seendir "r"]
-set database [read -nonewline $file]
-close $file
-set data [split $database "\n"]
-foreach line $data {
-set lin [expr $lin +1]
-set userentry [lindex  [split $line] 2]
-set chanentry [lindex [split $line] 1]
-if {[string equal -nocase $userentry $nick] && [string match -nocase $chanentry $chan]} {
-if {$line != ""} {
-set num [expr $lin - 1]
-set delete [lreplace $data $num $num]
-set files [open $seendir "w"]
-puts $files [join $delete "\n"]
-close $files
-}
-}
-}
-set file [open $seendir "r"]
-set data [read -nonewline $file]
-close $file
-if {$data == ""} {
-set files [open $seendir "w"]
-close $files
-}
-set file [open $seendir "a"]
-puts $file "$who"
-close $file
-}
-
-
-proc seen:join {nick host hand chan} {
-global seendir botnick
-if {![channel get $chan seen]} {
-return 0
-}
-if {[isbotnick $nick]} { return 0 }
-set time [unixtime]
-set host "*!$host"
-set type "JOIN"
-set staytimer "0"
-seen:save:1 $nick $chan $host $type $time $staytimer
-}
-
-
-proc seen:part {nick host hand chan arg} {
-global seendir botnick
-if {![validchan $chan]} { return 0 }
-if {![channel get $chan seen]} {
-return 0
-}
-set time [unixtime]
-set staytimer "0"
-set type "PART"
-set reason [join [lrange [split $arg] 0 end]]
-if {$reason == ""} { set reason "No Reason" }
-set host "*!$host"
-if {[isbotnick $nick]} { return 0 }
-seen:save:2 $nick $chan $host $type $time $staytimer $reason
-}
-
-proc seen:sign {nick host hand chan arg} {
-global seendir botnick
-if {![validchan $chan]} { return 0 }
-if {![channel get $chan seen]} {
-return 0
-}
-set time [unixtime]
-set staytimer "0"
-set type "SIGN"
-set host "*!$host"
-set reason [join [lrange [split $arg] 0 end]]
-if {$reason == ""} { set reason "No Reason" }
-if {[isbotnick $nick]} { return 0 }
-seen:save:2 $nick $chan $host $type $time $staytimer $reason
-}
-
-
-proc seen:kick {nick host hand chan kicked reason} {
-global seendir botnick
-if {![validchan $chan]} { return 0 }
-if {![channel get $chan seen]} {
-return 0
-}
-set lin 0
-set j 0
-set time [unixtime]
-set hosted [getchanhost $kicked $chan]
-set hosted "*!$hosted"
-set reason [join [lrange [split $reason] 1 end]]
-if {$reason == ""} { set reason "No Reason" }
-if {[isbotnick $kicked]} { return 0 }
-set who "KICK $chan $kicked $hosted $time 0 $reason"
-set file [open $seendir "r"]
-set database [read -nonewline $file]
-close $file
-set data [split $database "\n"]
-foreach line $data {
-set lin [expr $lin +1]
-set userentry [lindex [split $line] 2]
-set chanentry [lindex [split $line] 1]
-if {[string equal -nocase $kicked $userentry] && [string match -nocase $chanentry $chan]} {
-set joined [lindex [split $line] 0]
-if {$joined == "JOIN"} {
-set j [lindex [split $line] 4]
-if {![regexp {^[0-9]} $j] || ($j == "")} {
-set j 0
-}
-}
-set who "KICK $chan $kicked $hosted $time $j $reason"
-if {$line != ""} {
-set num [expr $lin - 1]
-set delete [lreplace $data $num $num]
-set files [open $seendir "w"]
-puts $files [join $delete "\n"]
-close $files
-}
-}
-}
-set file [open $seendir "r"]
-set data [read -nonewline $file]
-close $file
-if {$data == ""} {
-set files [open $seendir "w"]
-close $files
-}
-set file [open $seendir "a"]
-puts $file "$who"
-close $file
-}
-
-
-proc seen:split {nick host hand chan args} {
-global seendir botnick
-if {![validchan $chan]} { return 0 }
-if {![channel get $chan seen]} {
-return 0
-}
-set time [unixtime]
-set staytimer "0"
-set type "SPLIT"
-set host "*!$host"
-set reason [join [lrange [split $args] 0 end]]
-if {[isbotnick $nick]} { return 0 }
-seen:save:2 $nick $chan $host $type $time $staytimer $reason
-}
-
-
-proc seen:changenick {nick host hand chan newnick} {
-global seendir botnick
-if {![channel get $chan seen]} {
-return 0
-}
-set time [unixtime]
-set host "*!$host"
-set staytimer "0"
-set type "NICKCHANGE"
-if {[isbotnick $nick]} { return 0 }
-seen:save:2 $nick $chan $host $type $time $staytimer $newnick
-}
-
-proc seenpublic {nick host hand chan arg} {
-global black
-if {![channel get $chan seen]} {
-return 0
-}
-set type 0
-set chan1 "$chan"
-set what [lindex [split $arg] 0]
-if {[regexp {^[\\+!#&]} $what] && [matchattr $hand nm|- $chan]} {
-set chan1 "$chan"
-set chan "$what"
-set what [lindex [split $arg] 1]
-}
-seen:process $nick $host $hand $chan $chan1 $what $type
-}
-
-
-
-proc seen:process {nick host hand chan chan1 what type} {
-global seendir black count botnick
-set number [scan $black(seenflood) %\[^:\]]
-set timer [scan $black(seenflood) %*\[^:\]:%s]
-set i 0
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-if {[matchattr $hand nm|- $chan]} {
-if {($what == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 seen.1 none
-return 0
-}
-if {($what == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 seen.2 none
-return 0
-}
-}
-if {($what == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 seen.3 none
-return 0
-}
-if {($what == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 seen.4 none
-return 0
-}
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-foreach tmr [utimers] {
-if {[string match "*count(flood:$host:$chan)*" [join [lindex $tmr 1]]]} {
-killutimer [lindex $tmr 2]
-}
-}
-if {![info exists count(flood:$host:$chan)]} { 
-set count(flood:$host:$chan) 0 
-}
-incr count(flood:$host:$chan)
-utimer $timer [list unset count(flood:$host:$chan)]
-
-if {$count(flood:$host:$chan) == "$number"} {
-blacktools:tell $nick $host $hand $chan $chan1 seen.5 none
-return 0
-}
-
-if {[string match -nocase $what $nick]} { blacktools:tell $nick $host $hand $chan $chan1 seen.6 $nick
-return 0
-}
-if {[onchan $what $chan]} { blacktools:tell $nick $host $hand $chan $chan1 seen.7 $what
-return 0
-}
-
-set file [open $seendir "r"]
-set database [read -nonewline $file]
-close $file
-set data [split $database "\n"]
-foreach line $data {
-set userentry [lindex [split $line] 2]
-set chanentry [lindex [split $line] 1]
-set host [lindex [split $line] 3]
-set tm [lindex [split $line] 4]
-set jointime [lindex [split $line] 5]
-set newnick [lindex [split $line] 6]
-set reason [lrange [split $line] 6 end]
-if {!([regexp {^[0-9]} $jointime]) || ($jointime == "")} {
-set jointime 0
-set reason [lrange [split $line] 5 end]
-}
-if {$reason == ""} { set reason "No Reason" }
-set output [duration [expr [unixtime] - $tm]]
-set staytime [expr [unixtime] - $jointime]
-set staytime [duration [expr $tm - $jointime]]
-
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-
-set date [clock format $tm -format %d.%m.]
-set hour [clock format $tm -format %H:%M]
-
-if {$what == "*!*@*"} { return 0 }
-if {([string equal -nocase $userentry $what] || [string match -nocase $what $userentry] || [string match -nocase $what $host]) && [string match -nocase $chanentry $chan]} {
-set i [expr $i +1]
-set host [string trim $host "*!~"]
-if {$i < 6} {
-lappend entry $userentry
-}
-set seenfound 1
-set entry [lsort -unique $entry]
-set replace(%entry%) "[join $entry ","]"
-set replace(%host%) "$host"
-set replace(%output%) "$output"
-set replace(%date%) "($date $hour)"
-set replace(%newnick%) "$newnick"
-set replace(%userentry%) "$userentry"
-set replace(%chan%) "$chan"
-set replace(%reason%) "$reason"
-set replace(%staytime%) "$staytime"
-if {$jointime == "0"} { set staymsg "[string map [array get replace] $black(say.$getlang.seen.8)]"
-set replace(%staymsg%) "$staymsg"
-} else {
- set staymsg "[string map [array get replace] $black(say.$getlang.seen.9)]"
-set replace(%staymsg%) "$staymsg"
-}
-if {[lindex [split $line] 0] == "PART"} {
-set reply "[string map [array get replace] $black(say.$getlang.seen.12)]"
-}
-if {[lindex [split $line] 0] == "SIGN"} {
-set reply "[string map [array get replace] $black(say.$getlang.seen.13)]"
-}
-if {[lindex [split $line] 0] == "JOIN"} {
-if {[onchan $userentry $chan]} { 
-set nowon "[string map [array get replace] $black(say.$getlang.seen.10)]"
-set replace(%nowon%) "$nowon"
-} else { 
-set nowon "[string map [array get replace] $black(say.$getlang.seen.11)]"
-set replace(%nowon%) "$nowon"
-}
-set reply "[string map [array get replace] $black(say.$getlang.seen.14)]"
-}
-if {[lindex [split $line] 0] == "SPLIT"} {
-set reply "[string map [array get replace] $black(say.$getlang.seen.15)]"
-}
-if {[lindex [split $line] 0] == "KICK"} {
-set reply "[string map [array get replace] $black(say.$getlang.seen.16)]"
-}
-if {[lindex [split $line] 0] == "NICKCHANGE"} {
-if {[onchan $newnick $chan]} { 
-set nowon "[string map [array get replace] $black(say.$getlang.seen.10)]"
-set replace(%nowon%) "$nowon"
-} else {
-set nowon "[string map [array get replace] $black(say.$getlang.seen.11)]"
-set replace(%nowon%) "$nowon"
-}
-set reply "[string map [array get replace] $black(say.$getlang.seen.17)]"
-}
-}
-
-if {$black(seenmet) == "1"} {
-set method "NOTICE"
-set onwho "$nick"
-} else { 
-set method "PRIVMSG"
-set onwho "$chan1"
-}
-}
-if {[info exists reply]} {
-puthelp "$method $onwho :$reply"
-}
-
-if {![info exists seenfound]} {
-blacktools:tell $nick $host $hand $chan $chan1 seen.18 $what
-}
-}
-
-############################### Greet #####################################
-
-
-proc greetpublic {nick host hand chan arg} {
-global black
-set who [lindex [split $arg] 0]
-set type 0
-set chan1 "$chan"
-set greet [join [lrange [split $arg] 1 end]]
-set number [lindex [split $arg] 1]
-if {[regexp {^[\\+!#&]} $who] && [matchattr $hand nm|- $chan]} {
-set chan "$who"
-set who [lindex [split $arg] 1]
-set greet [join [lrange [split $arg] 2 end]]
-set number [lindex [split $arg] 2]
-}
-greet:process $who $greet $number $type $nick $host $hand $chan $chan1
-}
-
-proc greet:process {who greet number type nick host hand chan chan1} {
-global botnick black
-set dir "logs/greet($chan).txt"
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-if {[matchattr $hand nm|- $chan]} {
-if {($who == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 greet.1 none
-blacktools:tell $nick $host $hand $chan $chan1 greet.2 none
-return 0
-}
-if {($who == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 greet.3 none
-blacktools:tell $nick $host $hand $chan $chan1 greet.4 none
-return 0
-}
-}
-if {($who == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 greet.5 none
-return 0
-}
-if {($who == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 greet.6 none
-return 0
-}
-
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-
-if {([regexp -nocase -- {(#[0-9]+|on|off|add|list|del)} $who tmp a]) && (![regexp -nocase -- {\S#} $who])} {
-    switch $a {
-on {
-channel set $chan +greet
-blacktools:tell $nick $host $hand $chan $chan1 greet.7 none
-}
-
-off {
-channel set $chan -greet
-blacktools:tell $nick $host $hand $chan $chan1 greet.8 none
-}
-
-add {
-
-if {[file exists $dir] == 0} {
-set file [open $dir w]
-close $file
-}
-set file [open $dir a]
-puts $file $greet
-close $file
-blacktools:tell $nick $host $hand $chan $chan1 greet.9 none
-blacktools:tell $nick $host $hand $chan $chan1 greet.10 $greet
-}
-
-list {
-
-if {[file exists $dir] == 0} {
-set file [open $dir a]
-close $file
-}
-set dir "logs/greet($chan).txt"
-set file [open $dir "r"]
-set w [read -nonewline $file]
-close $file
-set data [split $w "\n"]
-set i 0
-if {$data == ""} { blacktools:tell $nick $host $hand $chan $chan1 greet.11 none
-return 0
-}
-foreach mes $data {
-set i [expr $i +1]
-blacktools:tell $nick $host $hand $chan $chan1 greet.12 none
-blacktools:tell $nick $host $hand $chan $chan1 greet.10 "$i. $mes"
-}
-}
-
-del {
-
-if {![regexp {^[0-9]} $number]} {
-blacktools:tell $nick $host $hand $chan $chan1 greet.13 none
-return 0
-}
-
-set dir "logs/greet($chan).txt"
-if {[file exists $dir] == 0} {
-set file [open $dir w]
-close $file
-}
-
-set file [open $dir "r"]
-set data [read -nonewline $file]
-close $file
-set lines [split $data "\n"]
-set i [expr $number - 1]
-set delete [lreplace $lines $i $i]
-set files [open $dir "w"]
-puts $files [join $delete "\n"]
-close $files
-set file [open $dir "r"]
-set data [read -nonewline $file]
-close $file
-if {$data == ""} {
-set files [open $dir "w"]
-close $files
-}
-
-blacktools:tell $nick $host $hand $chan $chan1 greet.14 $number
-blacktools:tell $nick $host $hand $chan $chan1 greet.15 none
-}
-
-}
-}
-}
-
-
-proc greetpublic:join {nick host hand chan} {
-global black
-set dir "logs/greet($chan).txt"
-if {![validchan $chan]} { return 0 }
-if {[channel get $chan greet]} {
-if {[file exists $dir] == 0} {
-set file [open $dir w]
-close $file
-}
-if {[isbotnick $nick]} { return 0 }
-set replace(%nick%) $nick
-set file [open $dir "r"]
-set data [read -nonewline $file]
-close $file
-if {$data == ""} { return 0 }
-set lines [split $data "\n"]
-set numlines [llength $lines]
-set random [rand $numlines]
-set randomline [lindex $lines $random]
-set message [string map [array get replace] $randomline]
-if {$black(howgreet) == "1"} {
-puthelp "NOTICE $nick :$message"
-} else { puthelp "PRIVMSG $nick :$message" }
-}
-}
-
-################################ Leave ###################################
-
-proc leave:process {who leave number type nick host hand chan chan1} {
-global botnick black
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set dir "logs/leave($chan).txt"
-if {[matchattr $hand nm|- $chan]} {
-if {($who == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 leave.1 none
-blacktools:tell $nick $host $hand $chan $chan1 leave.2 none
-return 0
-}
-if {($who == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 leave.3 none
-blacktools:tell $nick $host $hand $chan $chan1 leave.4 none
-return 0
-}
-}
-if {($who == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 leave.5 none
-return 0
-}
-if {($who == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 leave.6 none
-return 0
-}
-
-
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-
-if {([regexp -nocase -- {(#[0-9]+|on|off|add|list|del)} $who tmp a]) && (![regexp -nocase -- {\S#} $who])} {
-    switch $a {
-on {
-channel set $chan +leave
-blacktools:tell $nick $host $hand $chan $chan1 leave.7 none
-}
-
-off {
-channel set $chan -leave
-blacktools:tell $nick $host $hand $chan $chan1 leave.8 none
-}
-
-add {
-
-if {[file exists $dir] == 0} {
-set file [open $dir w]
-close $file
-}
-set file [open $dir a]
-puts $file $leave
-close $file
-blacktools:tell $nick $host $hand $chan $chan1 leave.9 none
-blacktools:tell $nick $host $hand $chan $chan1 leave.10 $leave
-}
-
-list {
-
-if {[file exists $dir] == 0} {
-set file [open $dir w]
-close $file
-}
-set dir "logs/leave($chan).txt"
-set file [open $dir "r"]
-set w [read -nonewline $file]
-close $file
-set data [split $w "\n"]
-set i 0
-if {$data == ""} { blacktools:tell $nick $host $hand $chan $chan1 leave.11 none
-return 0
-}
-foreach mes $data {
-set i [expr $i +1]
-blacktools:tell $nick $host $hand $chan $chan1 leave.12 none
-blacktools:tell $nick $host $hand $chan $chan1 leave.10 "$i. $mes"
-}
-}
-
-del {
-if {![regexp {^[0-9]} $number]} {
-blacktools:tell $nick $host $hand $chan $chan1 leave.13 none
-return 0
-}
-
-set dir "logs/leave($chan).txt"
-if {[file exists $dir] == 0} {
-set file [open $dir w]
-close $file
-}
-
-set file [open $dir "r"]
-set data [read -nonewline $file]
-close $file
-set lines [split $data "\n"]
-set i [expr $number - 1]
-set delete [lreplace $lines $i $i]
-set files [open $dir "w"]
-puts $files [join $delete "\n"]
-close $files
-set file [open $dir "r"]
-set data [read -nonewline $file]
-close $file
-if {$data == ""} {
-set files [open $dir "w"]
-close $files
-}
-
-blacktools:tell $nick $host $hand $chan $chan1 leave.14 $number
-blacktools:tell $nick $host $hand $chan $chan1 leave.15 none
-}
-
-}
-}
-}
-
-
-
-proc leavepublic {nick host hand chan arg} {
-global black
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set dir "logs/leave($chan).txt"
-set type 0
-set chan1 "$chan"
-set who [lindex [split $arg] 0]
-set leave [join [lrange [split $arg] 1 end]]
-set number [lindex [split $arg] 1]
-if {[regexp {^[\\+!#&]} $who] && [matchattr $hand nm|- $chan]} {
-set chan "$who"
-set who [lindex [split $arg] 1]
-set leave [join [lrange [split $arg] 2 end]]
-set number [lindex [split $arg] 2]
-}
-leave:process $who $leave $number $type $nick $host $hand $chan $chan1
-}
-
-
-
-proc leavepublic:part {nick host hand chan args} {
-global black
-set dir "logs/leave($chan).txt"
-if {![validchan $chan]} { return 0 }
-if {[channel get $chan leave]} {
-if {[file exists $dir] == 0} {
-set file [open $dir w]
-close $file
-}
-if {[isbotnick $nick]} { return 0 }
-set replace(%nick%) $nick
-set file [open $dir "r"]
-set data [read -nonewline $file]
-close $file
-if {$data == ""} { return 0 }
-set lines [split $data "\n"]
-set numlines [llength $lines]
-set random [rand $numlines]
-set randomline [lindex $lines $random]
-set message [string map [array get replace] $randomline]
-if {$black(howleave) == "1"} {
-puthelp "NOTICE $nick :$message"
-} else { puthelp "PRIVMSG $nick :$message" }
-}
-}
-
-################################ Idle ###################################
-
-
-proc antidlepublic {nick host hand chan arg} {
-global black
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set type1 0
-set chan1 "$chan"
-set why [lindex [split $arg] 0]
-set type [lindex [split $arg] 1]
-set user [lindex [split $arg] 1]
-set host [lindex [split $arg] 2]
-if {[regexp {^[\\+!#&]} $why] && [matchattr $hand nm|- $chan]} {
-set chan "$why"
-set why [lindex [split $arg] 1]
-set type [lindex [split $arg] 2]
-set user [lindex [split $arg] 2]
-set host [lindex [split $arg] 3]
-}
-antidle:process $why $type $type1 $user $host $nick $hand $chan $chan1
-}
-
-proc antidle:process {why type type1 user host nick hand chan chan1} {
-global botnick black
-set flag "-|f"
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set handle [nick2hand $user]
-if {[matchattr $hand nm|- $chan]} {
-if {($why == "") && ($type1 == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 idle.1 none
-blacktools:tell $nick $host $hand $chan $chan1 idle.2 none
-return 0
-}
-if {($why == "") && ($type1 == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 idle.3 none
-blacktools:tell $nick $host $hand $chan $chan1 idle.4 none
-return 0
-}
-}
-if {($why == "") && ($type1 == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 idle.5 none
-return 0
-}
-if {($why == "") && ($type1 == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 idle.6 none
-return 0
-}
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-
-if {([regexp -nocase -- {(#[0-9]+|op|voice|add|on|off)} $why tmp idler]) && (![regexp -nocase -- {\S#} $why])} {
-    switch $idler {
-on {
- channel set $chan +antidle
-blacktools:tell $nick $host $hand $chan $chan1 idle.7 none
-}
-off {
-
- channel set $chan -antidle
-blacktools:tell $nick $host $hand $chan $chan1 idle.8 none
-}
-
-op {
- if {$type == ""} { blacktools:tell $nick $host $hand $chan $chan1 idle.9 none
-return 0
-}
-if {[string match -nocase $type "on"]} {
-if {[channel get $chan antidle]} { set antidle "on" } else { set antidle "off"}
-if {$antidle == "off"} { blacktools:tell $nick $host $hand $chan $chan1 idle.10 none
-return 0
-}
-channel set $chan +antididle
-blacktools:tell $nick $host $hand $chan $chan1 idle.11 none
-}
-
-if {[string match -nocase $type "off"]} {
-if {[channel get $chan antidle]} { set antidle "on" } else { set antidle "off"}
-if {$antidle == "off"} { blacktools:tell $nick $host $hand $chan $chan1 idle.10 none
-return 0
-}
-channel set $chan -antididle
-blacktools:tell $nick $host $hand $chan $chan1 idle.12 none
-}
-}
-
-voice {
- if {$type == ""} { blacktools:tell $nick $host $hand $chan $chan1 idle.13 none
-return 0
-}
-
-if {[string match -nocase $type "on"]} {
-
-if {[channel get $chan antidle]} { set antidle "on" } else { set antidle "off"}
-if {$antidle == "off"} { blacktools:tell $nick $host $hand $chan $chan1 idle.10 none
-return 0
-}
-channel set $chan +antividle
-blacktools:tell $nick $host $hand $chan $chan1 idle.14 none
-}
-
-if {[string match -nocase $type "off"]} {
-if {[channel get $chan antidle]} { set antidle "on" } else { set antidle "off"}
-if {$antidle == "off"} { blacktools:tell $nick $host $hand $chan $chan1 idle.10 none
-return 0
-}
-
-channel set $chan -antividle
-blacktools:tell $nick $host $hand $chan $chan1 idle.15 none
-}
-}
-
-add {
-
-if {$user == ""} { blacktools:tell $nick $host $hand $chan $chan1 idle.16 none
-return 0
-}
-
-if {(![onchan $user $chan]) && (![validuser $user])} { blacktools:tell $nick $host $hand $chan $chan1 idle.17 $user
-return 0
-}
-
-if {[validuser $user]} { 
-chattr $user $flag $chan
-blacktools:tell $nick $host $hand $chan $chan1 idle.18 $user
-} else {
-set hosts [getchanhost $user $chan]
-set uhost "*!*@[lindex [split $hosts @] 1]"
-adduser $user $uhost
-chattr $user $flag $chan
-blacktools:tell $nick $host $hand $chan $chan1 idle.19 "$user $uhost"
-}
-}
-
-}
-}
-}
-
-
-
-proc idlewhoispublic {min hour day mon year} {
-global black botnick
-if {([scan $min %d]+([scan $hour %d]*60)) % $black(idleinterval) == 0} {
-foreach chan [channels] {
-if {[channel get $chan antidle]} {
-foreach user [chanlist $chan] { 
-set user [split $user]
-set handle [nick2hand $user]
-if {[isop $user $chan] || [isvoice $user $chan]} { 
-if {$user != $botnick} { putserv "WHOIS $user $user" }
-} 
-} 
-} 
-}
-}
-
-bind raw - 317 idleprocespublic
-}
-
-proc idleprocespublic {nick int arg} {
-global black
-set nick [string tolower [lindex $arg 1]]
-set handle [nick2hand $nick]
-set idler [string tolower [lindex $arg 2]]
-set minutesidle [expr $idler / 60]
-foreach chan [channels] {
-set replace(%chan%) $chan
-set idlevoicetime [channel get $chan idlevoicemax]
-if {$idlevoicetime == "0"} { set idlevoicetime "$black(idlevoicemax)" }
-set idleoptime [channel get $chan idleopmax]
-if {$idleoptime == "0"} { set idleoptime "$black(idleopmax)" }
-if {[channel get $chan antividle]} {
-if {[isvoice $nick $chan] && ![matchattr $handle -|f $chan]} {
-if {$minutesidle > $idlevoicetime} {
-putserv "MODE $chan -v $nick"
-}
-}
-}
-if {[channel get $chan antididle]} {
-if {[isop $nick $chan] && ![matchattr $handle -|f $chan]} {
-if {$minutesidle > $idleoptime} {
-putserv "MODE $chan -o $nick"
-}
-}
-}
-
-}
-}
-
-
-######################################### AntiBotIdle #############################
-
-
-proc botidlepublic {nick host hand chan arg} {
-global black botnick sdir
-set what [lindex [split $arg] 0]
-set lin 0
-set chan1 "$chan"
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-if {$what == ""} { blacktools:tell $nick $host $hand $chan $chan1 antibotidle.1 none
-return 0
-}
-botidle:process $nick $host $hand $chan $chan1 $what
-}
-
-proc botidle:process {nick host hand chan chan1 what} {
-global botnick black sdir
-set lin 0
-switch -exact -- [string tolower $what] {
-on {
-set type "antibotidle:module ON"
-foreach tmr [timers] {
-if {[string match "*antibotidle:module*" [join [lindex $tmr 1]]]} {
-blacktools:tell $nick $host $hand $chan $chan1 antibotidle.3 none
-return 0
-}
-}
-set file [open $sdir "r"]
-set database [read -nonewline $file]
-close $file
-set data [split $database "\n"]
-foreach line $data {
-set lin [expr $lin +1]
-set who [lindex  [split $line] 0]
-set stats [lindex [split $line] 1]
-if {[string match -nocase "antibotidle:module" $who]} {
-if {$line != ""} {
-set num [expr $lin - 1]
-set delete [lreplace $data $num $num]
-set files [open $sdir "w"]
-puts $files [join $delete "\n"]
-close $files
-}
-}
-}
-set file [open $sdir "r"]
-set data [read -nonewline $file]
-close $file
-if {$data == ""} {
-set files [open $sdir "w"]
-close $files
-}
-set file [open $sdir "a"]
-puts $file "$type"
-close $file
-blacktools:tell $nick $host $hand $chan $chan1 antibotidle.4 none
-timer $black(noidlemax) antibotidle:module
-}
-
-off {
-blacktools:tell $nick $host $hand $chan $chan1 antibotidle.5 none
-set type "antibotidle:module OFF"
-foreach tmr [timers] {
-if {[string match "*antibotidle:module*" [join [lindex $tmr 1]]]} {
-killtimer [lindex $tmr 2]
-}
-}
-set file [open $sdir "r"]
-set database [read -nonewline $file]
-close $file
-set data [split $database "\n"]
-foreach line $data {
-set lin [expr $lin +1]
-set who [lindex  [split $line] 0]
-set stats [lindex [split $line] 1]
-if {[string match -nocase "antibotidle:module" $who]} {
-if {$line != ""} {
-set num [expr $lin - 1]
-set delete [lreplace $data $num $num]
-set files [open $sdir "w"]
-puts $files [join $delete "\n"]
-close $files
-}
-}
-}
-set file [open $sdir "r"]
-set data [read -nonewline $file]
-close $file
-if {$data == ""} {
-set files [open $sdir "w"]
-close $files
-}
-set file [open $sdir "a"]
-puts $file "$type"
-close $file
-}
-
-}
-}
-
-
-proc antibotidle:module {} {
-global black
-putquick "PRIVMSG $black(noobject) :"
-timer $black(noidlemax) antibotidle:module
-return 1
-}
-
-######################################## Comenzi #####################################
-
-proc drpublic {nick host hand chan arg} {
-global botnick black
-set drone [lindex [split $arg] 0]
-set chan1 "$chan"
-set mask [lindex [split $arg] 0]
-set type "0"
-foreach c [channels] {
-set backchan [channel get $c backchan]
-if {[string match -nocase $chan $backchan] && [channel get $c chanreport]} {
-set chan "$c"
-}
-}
-if {[regexp {^[#&]} $drone] && [matchattr $hand nm|- $chan]} {
-set chan "$drone"
-set drone [lindex [split $arg] 1]
-set mask [lindex [split $arg] 1]
-}
-dr:process $drone $mask $nick $hand $host $chan $chan1 $type
-}
-
-
-proc dr:process {drone mask nick hand host chan chan1 type} {
-global botnick black
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set handle [nick2hand $drone]
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-set list [userlist $black(exceptflags) $chan]
-set getreason [channel get $chan dr-reason]
-if {$getreason == ""} {
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set getreason $black(say.$getlang.dr.5)
-}
-if {[channel get $chan showhandle]} {
-set reason "($hand) $getreason"
-} else { set reason "$getreason" 
-}
-set getbantime [channel get $chan dr-bantime]
-if {$getbantime == "0"} { set getbantime $black(drtime) }
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-foreach user $list {
- set hosts [getuser $user hosts]
-foreach host $hosts {
-if {[string match -nocase $mask $host]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noban none
- return 0
-}
-}
-}
-
-if {[matchattr $handle $black(exceptflags) $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noban none
- return 0
-}
-if {$mask == "*!*@*"} {
- return 0
-}
-
-if {[isbotnick $drone]} {
-return 0
-}
-if {![botisop $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noop none
-return 0
-}
-if {[onchan $drone $chan]} {
-set mask *!*@[lindex [split [getchanhost $drone $chan] "@"] 1] 
-}
-if {[matchattr $hand nm|- $chan]} {
-if {($drone == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 dr.1 none
-return 0
-}
-if {($drone == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 dr.2 none
-return 0
-}
-}
-if {($drone == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 dr.3 none
-return 0
-}
-if {($drone == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 dr.4 none
-return 0
-}
-
-blacktools:banner:3 $mask $hand $chan $reason $getbantime DR($chan)
-}
-
-
-
-proc botpublic {nick host hand chan arg} {
-global botnick black
-set bot [lindex [split $arg] 0]
-set mask [lindex [split $arg] 0]
-set type 0
-set chan1 "$chan"
-foreach c [channels] {
-set backchan [channel get $c backchan]
-if {[string match -nocase $chan $backchan] && [channel get $c chanreport]} {
-set chan "$c"
-}
-}
-if {[regexp {^[\\+!#&]} $bot] && [matchattr $hand nm|- $chan]} {
-set chan "$bot"
-set bot [lindex [split $arg] 1]
-set mask [lindex [split $arg] 1]
-}
-bot:process $bot $mask $nick $hand $host $chan $chan1 $type
-}
-
-proc bot:process {bot mask nick hand host chan chan1 type} {
-global black botnick
-set handle [nick2hand $bot]
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-set list [userlist $black(exceptflags) $chan]
-set getreason [channel get $chan bot-reason]
-if {$getreason == ""} {
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set getreason $black(say.$getlang.bot.5)
-}
-if {[channel get $chan showhandle]} {
-set reason "($hand) $getreason"
-} else { set reason "$getreason" 
-}
-set getbantime [channel get $chan bot-bantime]
-if {$getbantime == "0"} { set getbantime $black(bottime) }
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-foreach user $list {
- set hosts [getuser $user hosts]
-foreach host $hosts {
-if {[string match -nocase $mask $host]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noban none
- return 0
-}
-}
-}
-
-if {[matchattr $handle $black(exceptflags) $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noban none
- return 0
-}
-if {$mask == "*!*@*"} {
- return 0
-}
-
-if {[isbotnick $bot]} {
-return 0
-}
-if {![botisop $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noop none
-return 0
-}
-if {[onchan $bot $chan]} {
-set mask *!*@[lindex [split [getchanhost $bot $chan] "@"] 1] 
-}
-if {[matchattr $hand nm|- $chan]} {
-if {($bot == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 bot.1 none
-return 0
-}
-if {($bot == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 bot.2 none
-return 0
-}
-}
-if {($bot == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 bot.3 none
-return 0
-}
-if {($bot == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 bot.4 none
-return 0
-}
-blacktools:banner:3 $mask $hand $chan $reason $getbantime bot($chan)
-}
-
-
-proc b:local {bnick mask time nick reason hand host chan chan1 type} {
-global botnick black
-set handle [nick2hand $bnick]
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-set list [userlist $black(exceptflags) $chan]
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-foreach user $list {
- set hosts [getuser $user hosts]
-foreach host $hosts {
-if {[string match -nocase $mask $host]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noban none
- return 0
-}
-}
-}
-
-if {[matchattr $handle $black(exceptflags) $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noban none
- return 0
-}
-if {$reason == ""} {
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set reason1 $black(say.$getlang.b.9)
- } else { set reason1 "$reason" }
-
-if {[channel get $chan showhandle]} {
-set reason "($hand) $reason1"
-} else { set reason "$reason1" 
-}
-
-if {[isbotnick $bnick]} {
-  return 0
-}
-
-if {![botisop $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noop none
- return 0
-}
-if {$mask == "*!*@*"} {
- return 0
-}
-
-if {[onchan $bnick $chan]} {
-set mask *!*@[lindex [split [getchanhost $bnick $chan] "@"] 1] 
-}
-
-if {[matchattr $hand nm|- $chan]} {
-if {($bnick == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 b.1 none
-blacktools:tell $nick $host $hand $chan $chan1 b.2 none
-return 0
-}
-if {($bnick == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 b.3 none
-blacktools:tell $nick $host $hand $chan $chan1 b.4 none
-return 0
-}
-}
-if {($bnick == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 b.5 none
-return 0
-}
-if {($bnick == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 b.6 none
-return 0
-}
-
-blacktools:banner:3 $mask $hand $chan $reason $time b($chan)
-if {$time == "0"} { set reply "Permanent" } else { set reply "$time minute" }
-blacktools:tell $nick $host $hand $chan $chan1 b.7 "$mask $reply"
-}
-
-
-proc bpublic {nick host hand chan arg} {
-global botnick black
-set bnick [lindex [split $arg] 0]
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set type 0
-set chan1 "$chan"
-set mask [lindex [split $arg] 0]
-set time [lindex [split $arg] 1]
-set type1 [lindex [split $arg] 1]
-set type2 [lindex [split $arg] 2]
-set reason [join [lrange [split $arg] 2 end]] 
-set handle [nick2hand $bnick]
-if {[string match -nocase "global" $type1] || [string match -nocase "global" $type2]  && [matchattr $hand nm|- $chan]} {
-if {[string match -nocase $type1 "global"]} {
-set reason [join [lrange [split $arg] 2 end]]
-}
-if {[string match -nocase $type2 "global"]} {
-set reason [join [lrange [split $arg] 3 end]]
-}
-set list [userlist nm|-]
-foreach user $list {
- set hosts [getuser $user hosts]
-foreach host $hosts {
-if {[string match $mask $host]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noban none
- return 0
-}
-}
-}
-if {[matchattr $handle nm|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noban none
- return 0
-}
-
-if {![regexp {^[0-9]} $time]} {
-set reason [join [lrange [split $arg] 2 end]]
-set time "$black(btime)"
-}
-if {$reason == ""} {set reason1 "(GLOBAL) $black(dfreason)"
- } else { set reason1 "(GLOBAL) $reason" }
-
-if {[channel get $chan showhandle]} {
-set reason "($hand) $reason1"
-} else { set reason "$reason1" 
-}
-
-if {[isbotnick $bnick]} {
-return 0
-}
-if {![botisop $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noop none
-return 0
-}
-if {$mask == "*!*@*"} {
- return 0
-}
-if {[onchan $bnick $chan]} {
-set mask *!*@[lindex [split [getchanhost $bnick $chan] "@"] 1] 
-}
-newban $mask $hand $reason $time
-if {$time == "0"} { set reply "Permanent" } else { set reply "$time" }
-blacktools:tell $nick $host $hand $chan $chan1 b.8 "$mask $reply"
-return 0
-}
-foreach c [channels] {
-set backchan [channel get $c backchan]
-if {[string match -nocase $chan $backchan] && [channel get $c chanreport]} {
-set chan "$c"
-}
-}
-if {[regexp {^[\\+!#&]} $bnick] && [matchattr $hand nm|- $chan]} {
-set chan "$bnick"
-set bnick [lindex [split $arg] 1]
-set mask [lindex [split $arg] 1]
-set time [lindex [split $arg] 2]
-set reason [join [lrange [split $arg] 3 end]]
-if {![regexp {^[0-9]} $time]} {
-set reason [join [lrange [split $arg] 2 end]]
-set time "$black(btime)"
-}
-}
-if {![regexp {^[0-9]} $time]} {
-set time "$black(btime)"
-set reason [join [lrange [split $arg] 1 end]] 
-}
-b:local $bnick $mask $time $nick $reason $hand $host $chan $chan1 $type
-}
-
-################################### n #################################
-
-proc n:process {bnick nick hand host chan chan1 type} {
-global botnick black
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set handle [nick2hand $bnick]
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-
-if {[matchattr $handle $black(exceptflags) $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noban none
- return 0
-}
-set getreason [channel get $chan n-reason]
-if {$getreason == ""} { 
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set getreason $black(say.$getlang.n.5)
-}
-if {[channel get $chan showhandle]} {
-set reason "($hand) $getreason"
-} else { set reason "$getreason" 
-}
-set getbantime [channel get $chan n-bantime]
-if {$getbantime == "0"} { set getbantime $black(ntime) }
-
-if {[isbotnick $bnick]} {
-return 0
-}
-
-if {![botisop $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noop none
-return 0
-}
-
-if {[matchattr $hand nm|- $chan]} {
-if {($bnick == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 n.1 none
-return 0
-}
-if {($bnick == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 n.2 none
-return 0
-}
-}
-if {($bnick == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 n.3 none
-return 0
-}
-if {($bnick == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 n.4 none
-return 0
-}
-
-if {[onchan $bnick $chan]} {
-set mask "$bnick*!*@*"
-} else {
-blacktools:tell $nick $host $hand $chan $chan1 gl.usernotonchan "$bnick"
-return 0
-}
-blacktools:banner:3 $mask $hand $chan $reason $getbantime n($chan)
-}
-
-
-proc npublic {nick host hand chan arg} {
-global botnick black
-set bnick [lindex [split $arg] 0]
-set type 0
-set handle [nick2hand $bnick]
-set chan1 "$chan"
-foreach c [channels] {
-set backchan [channel get $c backchan]
-if {[string match -nocase $chan $backchan] && [channel get $c chanreport]} {
-set chan "$c"
-}
-}
-if {[regexp {^[\\+!#&]} $bnick] && [matchattr $hand nm|- $chan]} {
-set chan "$bnick"
-set bnick [lindex [split $arg] 1]
-}
-n:process $bnick $nick $hand $host $chan $chan1 $type
-}
-
-################################## id #################################
-
-proc idpublic {nick host hand chan arg} {
-global botnick black
-set idnick [lindex [split $arg] 0]
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set handle [nick2hand $idnick]
-set type 0
-set chan1 "$chan"
-foreach c [channels] {
-set backchan [channel get $c backchan]
-if {[string match -nocase $chan $backchan] && [channel get $c chanreport]} {
-set chan "$c"
-}
-}
-if {[regexp {^[\\+!#&]} $idnick] && [matchattr $hand nm|- $chan]} {
-set chan "$idnick"
-set idnick [lindex [split $arg] 1]
-}
-id:process $idnick $nick $hand $host $chan $chan1 $type
-}
-
-proc id:process {idnick nick hand host chan chan1 type} {
-global botnick black
-set handle [nick2hand $idnick]
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-}
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-set uhost [getchanhost $idnick $chan]
-set ident "[string trimleft [string tolower [lindex [split $uhost "@"] 0]] "~"]"
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-
-if {[matchattr $handle $black(exceptflags) $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noban none
- return 0
-}
-set getreason [channel get $chan id-reason]
-if {$getreason == ""} { 
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set getreason $black(say.$getlang.id.5)
-}
-
-if {[channel get $chan showhandle]} {
-set reason "($hand) $getreason"
-} else { set reason "$getreason"
-}
-
-set getbantime [channel get $chan id-bantime]
-if {$getbantime == "0"} { set getbantime $black(idtime) }
-
-if {[isbotnick $idnick]} {
-return 0
-}
-
-if {![botisop $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noop none
-return 0
-}
-
-if {[matchattr $hand nm|- $chan]} {
-if {($idnick == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 id.1 none
-return 0
-}
-if {($idnick == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 id.2 none
-return 0
-}
-}
-if {($idnick == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 id.3 none
-return 0
-}
-if {($idnick == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 id.4 none
-return 0
-}
-
-if {[onchan $idnick $chan]} {
-    		set mask "*!*$ident@*"
-	} else { blacktools:tell $nick $host $hand $chan $chan1 gl.usernotonchan "$idnick"
-return 0
-}
-blacktools:banner:3 $mask $hand $chan $getreason $getbantime id($chan)
-}
-
-
-############################### black #################################
-
-proc black:process {blnick nick mask hand host chan chan1 reason type} {
-global botnick black
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set handle [nick2hand $blnick]
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-
-set list [userlist $black(exceptflags) $chan]
-if {[matchattr $hand -|q $chan]} { 
-blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-foreach user $list {
- set hosts [getuser $user hosts]
-foreach host $hosts {
-if {[string match -nocase $mask $host]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noban none
- return 0
-}
-}
-}
-
-if {[matchattr $handle $black(exceptflags) $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noban none
- return 0
-}
-if {$reason == ""} {
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set reason1 "BlackListed: $black(say.$getlang.black.5)"
- } else { set reason1 "BlackListed: $reason" }
-
-if {[channel get $chan showhandle]} {
-set reason "($hand) $reason1"
-} else { set reason "$reason1" 
-}
-
-
-if {[isbotnick $blnick]} {
-return 0
-}
-
-if {![botisop $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noop none
-return 0
-}
-if {$mask == "*!*@*"} {
- return 0
-}
-
-if {[onchan $blnick $chan]} {
-set mask *!*@[lindex [split [getchanhost $blnick $chan] "@"] 1] 
-}
-
-if {[matchattr $hand nm|- $chan]} {
-if {($blnick == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 black.1 none
-return 0
-}
-if {($blnick == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 black.2 none
-return 0
-}
-}
-if {($blnick == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 black.3 none
-return 0
-}
-if {($blnick == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 black.4 none
-return 0
-}
- 
-
-blacktools:banner:3 $mask $hand $chan $reason 0 Black($chan)
-}
-
-
-proc blackpublic {nick host hand chan arg} {
-global botnick black
-set blnick [lindex [split $arg] 0]
-set mask [lindex [split $arg] 0]
-set type 0
-set reason [join [lrange [split $arg] 1 end]]
-set handle [nick2hand $blnick]
-set chan1 "$chan"
-foreach c [channels] {
-set backchan [channel get $c backchan]
-if {[string match -nocase $chan $backchan] && [channel get $c chanreport]} {
-set chan "$c"
-}
-}
-if {[regexp {^[\\+!#&]} $blnick] && [matchattr $hand nm|- $chan]} {
-set chan "$blnick"
-set blnick [lindex [split $arg] 1]
-set mask [lindex [split $arg] 1]
-set reason [join [lrange [split $arg] 2 end]]
-}
-black:process $blnick $nick $mask $hand $host $chan $chan1 $reason $type
-}
-
-
-################################ w ####################################
-
-proc wpublic {nick host hand chan arg} {
-global botnick black
-set wnick [lindex [split $arg] 0]
-set type 0
-set handle [nick2hand $wnick]
-set chan1 "$chan"
-foreach c [channels] {
-set backchan [channel get $c backchan]
-if {[string match -nocase $chan $backchan] && [channel get $c chanreport]} {
-set chan "$c"
-}
-}
-if {[regexp {^[\\+!#&]} $wnick] && [matchattr $hand nm|- $chan]} {
-set chan "$wnick"
-set wnick [lindex [split $arg] 1]
-}
-w:process $wnick $nick $hand $host $chan $chan1 $type
-}
-
-proc w:process {wnick nick hand host chan chan1 type} {
-global botnick black
-set handle [nick2hand $wnick]
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-
-
-if {[isbotnick $wnick]} {
-return 0
-}
-if {[matchattr $handle $black(exceptflags) $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noban none
- return 0
-}
-set getreason [channel get $chan w-reason]
-if {$getreason == ""} { 
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set getreason $black(say.$getlang.w.5)
-}
-
-if {[channel get $chan showhandle]} {
-set reason "($hand) $getreason"
-} else { set reason "$getreason"
-}
-
-if {![botisop $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noop none
-return 0
-}
-if {[matchattr $hand nm|- $chan]} {
-if {($wnick == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 w.1 none
-return 0
-}
-if {($wnick == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 w.2 none
-return 0
-}
-}
-if {($wnick == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 w.3 none
-return 0
-}
-if {($wnick == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 w.4 none
-return 0
-}
-
-set getcount [channel get $chan kickcount]
-set kcount [expr $getcount +1]
-channel set $chan kickcount $kcount
-set countz [getuser $hand XTRA w($chan)]
-if {$countz == ""} { set countz 0 }
-set counts [expr $countz + 1]
-setuser $hand XTRA w($chan) $counts
-if {[channel get $chan showcount]} {
-set reason "$reason - $kcount -" 
-} else {
-set reason "$reason" 
-}
-putquick "KICK $chan $wnick :$reason"
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-puthelp "PRIVMSG $wnick :$black(say.$getlang.w.6)"
-}
-
-############################### spam ##################################
-
-proc spam:process {spammer mask nick hand host chan chan1 type} {
-global botnick black
-set handle [nick2hand $spammer]
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-set list [userlist $black(exceptflags) $chan]
-set getreason [channel get $chan spam-reason]
-if {$getreason == ""} { 
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set getreason $black(say.$getlang.spam.5)
-}
-if {[channel get $chan showhandle]} {
-set reason "($hand) $getreason"
-} else { set reason "$getreason" 
-}
-set getbantime [channel get $chan spam-bantime]
-if {$getbantime == "0"} { set getbantime $black(spamtime) }
-
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-foreach user $list {
- set hosts [getuser $user hosts]
-foreach host $hosts {
-if {[string match -nocase $mask $host]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noban none
- return 0
-}
-}
-}
-
-if {[matchattr $handle $black(exceptflags) $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noban none
- return 0
-}
-if {$mask == "*!*@*"} {
- return 0
-}
-
-if {[isbotnick $spammer]} {
-return 0
-}
-if {![botisop $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noop none
-return 0
-}
-if {[onchan $spammer $chan]} {
-set mask *!*@[lindex [split [getchanhost $spammer $chan] "@"] 1] 
-}
-
-if {[matchattr $hand nm|- $chan]} {
-if {($spammer == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 spam.1 none
-return 0
-}
-if {($spammer == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 spam.2 none
-return 0
-}
-}
-if {($spammer == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 spam.3 none
-return 0
-}
-if {($spammer == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 spam.4 none
-return 0
-}
-
-blacktools:banner:3 $mask $hand $chan $reason $getbantime spam($chan)
-}
-
-
-proc spampublic {nick host hand chan arg} {
-global botnick black
-set spammer [lindex [split $arg] 0]
-set chan1 "$chan"
-set type 0
-set mask [lindex [split $arg] 0]
-set handle [nick2hand $spammer]
-foreach c [channels] {
-set backchan [channel get $c backchan]
-if {[string match -nocase $chan $backchan] && [channel get $c chanreport]} {
-set chan "$c"
-}
-}
-if {[regexp {^[\\+!#&]} $spammer] && [matchattr $hand nm|- $chan]} {
-set chan "$spammer"
-set spammer [lindex [split $arg] 1]
-set mask [lindex [split $arg] 1]
-}
-spam:process $spammer $mask $nick $hand $host $chan $chan1 $type
-}
-
-
-
-################################### k #################################
-
-proc k:process {knick nick hand host reason chan chan1 type} {
-global botnick black
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set handle [nick2hand $knick]
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-
-if {[isbotnick $knick]} {
-return 0
-}
-
-
-if {[matchattr $handle $black(exceptflags) $chan] && ($black(kaccess) == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noban none
- return 0
-}
-
-if {$reason == ""} {
-
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set reason1 "$black(say.$getlang.k.5)"
- } else { set reason1 "$reason" }
-
-if {[channel get $chan showhandle]} {
-set reason "($hand) $reason1"
-} else { set reason "$reason1" 
-}
-
-
-if {![botisop $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noop none
-return 0
-}
-
-if {[matchattr $hand nm|- $chan]} {
-if {($knick == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 k.1 none
-return 0
-}
-if {($knick == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 k.2 none
-return 0
-}
-}
-if {($knick == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 k.3 none
-return 0
-}
-if {($knick == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 k.4 none
-return 0
-}
-
-if {![onchan $knick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.usernotonchan "$knick"
-return 0
-}
-set getcount [channel get $chan kickcount]
-set kcount [expr $getcount +1]
-channel set $chan kickcount $kcount
-set countz [getuser $hand XTRA k($chan)]
-if {$countz == ""} { set countz 0 }
-set counts [expr $countz + 1]
-setuser $hand XTRA k($chan) $counts
-if {[channel get $chan showcount]} {
-set reason "$reason - $kcount -" 
-} else {
-set reason "$reason" 
-}
-putquick "KICK $chan $knick :$reason"
-}
-
-
-proc kpublic {nick host hand chan arg} {
-global botnick black
-set knick [lindex [split $arg] 0]
-set type 0
-set reason [join [lrange [split $arg] 1 end]]
-set handle [nick2hand $knick]
-set chan1 "$chan"
-foreach c [channels] {
-set backchan [channel get $c backchan]
-if {[string match -nocase $chan $backchan] && [channel get $c chanreport]} {
-set chan "$c"
-}
-}
-if {[regexp {^[\\+!#&]} $knick] && [matchattr $hand nm|- $chan]} {
-set chan "$knick"
-set knick [lindex [split $arg] 1]
-set reason [join [lrange [split $arg] 2 end]]
-}
-k:process $knick $nick $hand $host $reason $chan $chan1 $type
-}
-
-
-
-
-
-################################### gag ###############################
-
-proc gag:process {gagger nick hand host chan chan1 type} {
-global botnick black
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set handle [nick2hand $gagger]
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-
-if {[matchattr $hand nm|- $chan]} {
-if {($gagger == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 gag.1 none
-return 0
-}
-if {($gagger == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 gag.2 none
-return 0
-}
-}
-if {($gagger == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 gag.3 none
-return 0
-}
-if {($gagger == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 gag.4 none
-return 0
-}
-
-if {[matchattr $handle $black(exceptflags) $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noban none
- return 0
-}
-
-if {[isbotnick $gagger]} {
-return 0
-}
-
-if {![botisop $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noop none
-return 0
-}
-
-if {[onchan $gagger $chan]} {
-    		set mask *!*@[lindex [split [getchanhost $gagger $chan] "@"] 1] 
-} else { blacktools:tell $nick $host $hand $chan $chan1 gl.usernotonchan "$gagger"
-return 0
-}
-putquick "MODE $chan +b $mask"
-blacktools:tell $gagger $host $hand $chan $chan1 gag.5 "$gagger"
-}
-
-
-
-proc gagpublic {nick host hand chan arg} {
-global black
-set gagger [lindex [split $arg] 0]
-set type 0
-set handle [nick2hand $gagger]
-set chan1 "$chan"
-foreach c [channels] {
-set backchan [channel get $c backchan]
-if {[string match -nocase $chan $backchan] && [channel get $c chanreport]} {
-set chan "$c"
-}
-}
-if {[regexp {^[\\+!#&]} $gagger] && [matchattr $hand nm|- $chan]} {
-set chan "$gagger"
-set gagger [lindex [split $arg] 1]
-}
-gag:process $gagger $nick $hand $host $chan $chan1 $type
-}
-
-
-
-################################## bw #################################
-
-proc bw:process {abuser mask nick hand host chan chan1 type} {
-global botnick black
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set handle [nick2hand $abuser]
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-set list [userlist $black(exceptflags) $chan]
-set getreason [channel get $chan bw-reason]
-if {$getreason == ""} { 
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set getreason $black(say.$getlang.bw.5)
-}
-if {[channel get $chan showhandle]} {
-set reason "($hand) $getreason"
-} else { set reason "$getreason" 
-}
-set getbantime [channel get $chan bw-bantime]
-if {$getbantime == "0"} { set getbantime $black(bwtime) }
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-foreach user $list {
- set hosts [getuser $user hosts]
-foreach host $hosts {
-if {[string match -nocase $mask $host]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noban none
- return 0
-}
-}
-}
-
-if {[matchattr $handle $black(exceptflags) $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noban none
- return 0
-}
-if {$mask == "*!*@*"} {
- return 0
-}
-
-if {[isbotnick $abuser]} {
-return 0
-}
-if {![botisop $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noop none
-return 0
-}
-if {[onchan $abuser $chan]} {
-set mask *!*@[lindex [split [getchanhost $abuser $chan] "@"] 1] 
-}
-
-if {[matchattr $hand nm|- $chan]} {
-if {($abuser == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 bw.1 none
-return 0
-}
-if {($abuser == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 bw.2 none
-return 0
-}
-}
-if {($abuser == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 bw.3 none
-return 0
-}
-if {($abuser == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 bw.4 none
-return 0
-}
-
-blacktools:banner:3 $mask $hand $chan $reason $getbantime bw($chan) 
-}
-
-
-proc bwpublic {nick host hand chan arg} {
-global botnick black
-set abuser [lindex [split $arg] 0]
-set mask [lindex [split $arg] 0]
-set type 0
-set handle [nick2hand $abuser]
-set chan1 "$chan"
-foreach c [channels] {
-set backchan [channel get $c backchan]
-if {[string match -nocase $chan $backchan] && [channel get $c chanreport]} {
-set chan "$c"
-}
-}
-if {[regexp {^[\\+!#&]} $abuser] && [matchattr $hand nm|- $chan]} {
-set chan "$abuser"
-set abuser [lindex [split $arg] 1]
-set mask [lindex [split $arg] 1]
-}
-bw:process $abuser $mask $nick $hand $host $chan $chan1 $type
-}
-
-
-
-
-
-################################ ub ###################################
-
-proc ub:process {ban why nick hand host chan chan1 type} {
-global botnick black
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-
-if {[matchattr $hand nm|- $chan]} {
-if {($ban == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 ub.1 none
-return 0
-}
-if {($ban == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 ub.2 none
-return 0
-}
-}
-if {($ban == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 ub.3 none
-return 0
-}
-if {($ban == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 ub.4 none
-return 0
-}
-
-  
-if {$ban == "*!*@*"} { 
-return 0 
-}
-if {![botisop $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noop none
-    return 0
-  }
- if {[ispermban $ban $chan] && [matchattr $hand -|O $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 ub.5 none
-return 0
-}
-
-if {($why == "global") && [matchattr $hand nm|- $chan]} {
-
-if {[killban $ban] == "0"} {
-set notfound 1
-}
-
-killban $ban
-if {![info exists notfound]} {
-blacktools:tell $nick $host $hand $chan $chan1 ub.6 $ban
-return 0
-} else { blacktools:tell $nick $host $hand $chan $chan1 ub.7 none
-return 0
-}
-
-}
-
-if {[killchanban $chan $ban] == "0"} {
-set notfound 1
-}
- 
-  killchanban $chan $ban
-if {[onchan "X" $chan]} {
-putquick "PRIVMSG $black(chanserv) :unban $chan $ban"
-}
-  putquick "MODE $chan -b $ban"
-if {![info exists notfound]} {
-blacktools:tell $nick $host $hand $chan $chan1 ub.8 $ban
-} else { blacktools:tell $nick $host $hand $chan $chan1 ub.9 none 
-return 0
-}
- if {[channel get $chan chanreport]} {
-set backchan [channel get $chan backchan]
-if {$backchan == ""} { 
-return 0
-}
-if {!([validchan $backchan]) || !([onchan $botnick $backchan])} {
-return 0
-}
-blacktools:tell $nick $host $hand $chan $backchan ub.10 "$hand $ban"
-}
-
-}
-
-
-
-proc ubpublic {nick host hand chan arg} {
-global botnick black
-set ban [lindex [split $arg] 0]
-set why [lindex [split $arg] 1]
-set type 0
-set chan1 "$chan"
-foreach c [channels] {
-set backchan [channel get $c backchan]
-if {[string match -nocase $chan $backchan] && [channel get $c chanreport]} {
-set chan "$c"
-}
-}
-if {[regexp {^[\\+!#&]} $ban] && [matchattr $hand nm|- $chan]} {
-set chan "$ban"
-set ban [lindex [split $arg] 1]
-}
-ub:process $ban $why $nick $hand $host $chan $chan1 $type
-}
-
-
-################################ sb ###################################   
-
-proc sb:process {bhost what nick hand host chan chan1 type} {
-global botnick black
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-
-if {[matchattr $hand nm|- $chan]} {
-if {($bhost == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 sb.1 none
-return 0
-}
-if {($bhost == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 sb.2 none
-return 0
-}
-}
-if {($bhost == "") && ($type == "0")} { 
-blacktools:tell $nick $host $hand $chan $chan1 sb.3 none
-return 0
-}
-if {($bhost == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 sb.4 none
-return 0
-}
-
-if {[string match -nocase $what "global"] && [matchattr $hand mn|- $chan]} {
-  
-foreach ban [banlist] {
-
- set expire [clock format [lindex $ban 2] -format %D-%H:%M:%S]
- set created [clock format [lindex $ban 3] -format %D-%H:%M:%S]
- set fban [lindex $ban 0]
- set freason [lindex $ban 1]
- set fbywho [lindex $ban 5]
-
-if {[string match $bhost [string tolower [lindex $ban 0]]]} {
-set foundban 1
-if {[lindex $ban 2] == 0} {
-if {[isbansticky [lindex $ban 0]]} {
-blacktools:tell $nick $host $hand $chan $chan1 sb.5 "$fban $fbywho $created 0 $freason"
- } else {
-blacktools:tell $nick $host $hand $chan $chan1 sb.6 "$fban $fbywho $created 0 $freason"
-
-}
-
-} else { 
-if {[isbansticky [lindex $ban 0]]} { 
-blacktools:tell $nick $host $hand $chan $chan1 sb.7 "$fban $fbywho $created $expire $freason"         
-
-} else {
-blacktools:tell $nick $host $hand $chan $chan1 sb.8 "$fban $fbywho $created $expire $freason"
-          
-}
-}
-
-}
-}
-if {![info exists foundban]} {
-blacktools:tell $nick $host $hand $chan $chan1 sb.13 none
-}
-return 0
-}
-
-  foreach ban [banlist $chan] {
-
-  set expire [clock format [lindex $ban 2] -format %D-%H:%M:%S]
- set created [clock format [lindex $ban 3] -format %D-%H:%M:%S]
- set fban [lindex $ban 0]
- set freason [lindex $ban 1]
- set fbywho [lindex $ban 5]
-if {[string match $bhost [string tolower [lindex $ban 0]]]} {
-
-set foundban 1
-
-if {[lindex $ban 2] == 0} {
-if {[isbansticky [lindex $ban 0] $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 sb.9 "$fban $fbywho $created $expire $freason"
-} else {
-blacktools:tell $nick $host $hand $chan $chan1 sb.10 "$fban $fbywho $created 0 $freason"
-}
-
-} else { 
-if {[isbansticky [lindex $ban 0] $chan]} {          
-blacktools:tell $nick $host $hand $chan $chan1 sb.11 "$fban $fbywho $created $expire $freason"
-
-} else {
-blacktools:tell $nick $host $hand $chan $chan1 sb.12 "$fban $fbywho $created $expire $freason"
-          
-}
-}
-
-}
-}
-if {![info exists foundban]} {
-blacktools:tell $nick $host $hand $chan $chan1 sb.13 none
-return 0
-}
-}
-
-
-
-proc sbpublic {nick host hand chan arg} {
-global botnick black
-set bhost [string tolower [lindex [split $arg] 0]]
-set what [lindex [split $arg] 1]
-set chan1 "$chan"
-set type 0
-foreach c [channels] {
-set backchan [channel get $c backchan]
-if {[string match -nocase $chan $backchan] && [channel get $c chanreport]} {
-set chan "$c"
-}
-}
-if {[regexp {^[\\+!#&]} $bhost] && [matchattr $hand nm|- $chan]} {
-set chan "$bhost"
-set bhost [string tolower [lindex [split $arg] 1]]
-set what [lindex [split $arg] 2]
-}
-sb:process $bhost $what $nick $hand $host $chan $chan1 $type
-}
-
-
-
-
-################################# d ###################################
-
-
-proc d:process {dnick mask days reason nick hand host chan chan1 type} {
-global botnick black
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set handle [nick2hand $dnick]
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-set list [userlist $black(exceptflags) $chan]
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-
-
-if {[matchattr $hand nm|- $chan]} {
-if {($dnick == "")  && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 d.1 none
-return 0
-}
-if {($dnick == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 d.2 none
-return 0
-}
-}
-if {($dnick == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 d.3 none
-return 0
-}
-if {($dnick == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 d.4 none
-return 0
-}
-
-foreach user $list {
- set hosts [getuser $user hosts]
-foreach host $hosts {
-if {[string match -nocase $mask $host]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noban none
- return 0
-}
-}
-}
-
-if {[matchattr $handle $black(exceptflags) $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noban none
- return 0
-}
-
-if {$reason == ""} {
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set reason1 $black(say.$getlang.d.5)
- } else { set reason1 "$reason" }
-
-if {[channel get $chan showhandle]} {
-set reason "($hand) $reason1"
-} else { set reason "$reason1" 
-}
-
-
-if {[isbotnick $dnick]} {
-return 0
-}
-
-if {![botisop $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noop none
-return 0
-}
-if {$mask == "*!*@*"} {
- return 0
-}
-
-if {[onchan $dnick $chan]} {
-    		set mask *!*@[lindex [split [getchanhost $dnick $chan] "@"] 1] 
-}
-
-blacktools:banner:3 $mask $hand $chan $reason [expr $days * 1440] d($chan)
-}
-
-
-proc dpublic {nick host hand chan arg} {
-global botnick black
-set days [lindex [split $arg] 0]
-set dnick [lindex [split $arg] 1]
-set type 0
-set mask [lindex [split $arg] 1]
-set reason [join [lrange [split $arg] 2 end]]
-set handle [nick2hand $dnick]
-set chan1 "$chan"
-foreach c [channels] {
-set backchan [channel get $c backchan]
-if {[string match -nocase $chan $backchan] && [channel get $c chanreport]} {
-set chan "$c"
-}
-}
-if {[regexp {^[\\+!#&]} $days] && [matchattr $hand nm|- $chan]} {
-set chan "$days"
-set days [lindex [split $arg] 1]
-set mask [lindex [split $arg] 2]
-set dnick [lindex [split $arg] 2]
-set reason [join [lrange [split $arg] 3 end]]
-if {![regexp {^[0-9]} $days]} {
-set days 1
-set mask [lindex [split $arg] 1]
-set dnick [lindex [split $arg] 1]
-set reason [join [lrange [split $arg] 2 end]]
-} 
-}
-if {![regexp {^[0-9]} $days]} {
-set days 1
-set mask [lindex [split $arg] 0]
-set dnick [lindex [split $arg] 0]
-set reason [join [lrange [split $arg] 1 end]]
-}
-d:process $dnick $mask $days $reason $nick $hand $host $chan $chan1 $type
-}
-
-
-############################### stick #################################
-
-proc stick:process {snick mask time reason nick hand host chan chan1 type} {
-global botnick black
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set handle [nick2hand $snick]
-set list [userlist $black(exceptflags) $chan]
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-
-
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-
-foreach user $list {
- set hosts [getuser $user hosts]
-foreach host $hosts {
-if {[string match $mask $host]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noban none
- return 0
-}
-}
-}
-if {[matchattr $handle nm|AMOVS $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noban none
- return 0
-}
-
-if {$reason == ""} {
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set reason1 $black(say.$getlang.stick.5)
- } else { set reason1 "$reason" }
-
-if {[channel get $chan showhandle]} {
-set reason "($hand) $reason1"
-} else { set reason "$reason1" 
-}
-
-if {[isbotnick $snick]} {
-return 0
-}
-if {![botisop $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noop none
-return 0
-}
-if {$mask == "*!*@*"} {
- return 0
-}
-if {[onchan $snick $chan]} {
-set mask *!*@[lindex [split [getchanhost $snick $chan] "@"] 1] 
-}
-
-if {[matchattr $hand nm|- $chan]} {
-if {($snick == "")  && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 stick.1 none
-return 0
-}
-if {($snick == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 stick.2 none
-return 0
-}
-}
-if {($snick == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 stick.3 none
-return 0
-}
-if {($snick == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 stick.4 none
-return 0
-}
-blacktools:banner:4 $mask $hand $chan $reason $time stick($chan)
-}
-
-
-proc stickpublic {nick host hand chan arg} {
-global botnick black
-set snick [lindex [split $arg] 0]
-set mask [lindex [split $arg] 0]
-set chan1 "$chan"
-set type 0
-set time [lindex [split $arg] 1]
-set reason [join [lrange [split $arg] 2 end]]
-set handle [nick2hand $snick]
-foreach c [channels] {
-set backchan [channel get $c backchan]
-if {[string match -nocase $chan $backchan] && [channel get $c chanreport]} {
-set chan "$c"
-}
-}
-if {[regexp {^[\\+!#&]} $snick] && [matchattr $hand nm|- $chan]} {
-set chan "$snick"
-set time [lindex [split $arg] 2]
-set mask [lindex [split $arg] 1]
-set snick [lindex [split $arg] 1]
-set reason [join [lrange [split $arg] 3 end]]
-if {![regexp {^[0-9]} $time]} {
-set time "$black(dfstickbantime)"
-set reason [join [lrange [split $arg] 2 end]]
-}
-}
-if {![regexp {^[0-9]} $time]} {
-set time "$black(dfstickbantime)"
-set reason [join [lrange [split $arg] 1 end]]
-}
-stick:process $snick $mask $time $reason $nick $hand $host $chan $chan1 $type
-}
-
-
-
-
-
-################################### t #################################
-
-
-proc tpublic {nick host hand chan arg} {
-global black
-set topics [join [lrange [split $arg] 0 end]]
-set c [lindex [split $arg] 0]
-set type 0
-set chan1 "$chan"
-if {[regexp {^[\\+!#&]} $c] && [matchattr $hand nm|- $chan]} {
-set chan "$c"
-set topics [join [lrange [split $arg] 1 end]]
-}
-t:process $nick $host $hand $chan $chan1 $topics $type
-}
-
-proc t:process {nick host hand chan chan1 topics type} {
-global botnick black
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-if {[matchattr $hand nm|- $chan]} {
-if {($topics == "")  && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 t.1 none
-return 0
-}
-if {($topics == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 t.2 none
-return 0
-}
-}
-if {($topics == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 t.3 none
-return 0
-}
-if {($topics == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 t.4 none
-return 0
-}
-
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-
-}
-if {![botisop $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noop none
-return 0
-}
-
-if {[channel get $chan showhandle]} {
-set topics "($hand) $topics"
-} else { set topics "$topics" 
-}
-putquick "TOPIC $chan :$topics"
-}
-
-############################## status #################################
-
-
-proc statuspublic {nick host hand chan arg} {
-global botnick server uptime {server-online}
-set chan1 "$chan"
-regsub -all " " [channels] ", " chans
-catch {exec uptime} shelluptime
-set up [duration [expr [unixtime] - $uptime]]
-set on [duration [expr [unixtime] - ${server-online}]]
-blacktools:tell $nick $host $hand $chan $chan1 status.1 $up
-blacktools:tell $nick $host $hand $chan $chan1 status.2 $server
-blacktools:tell $nick $host $hand $chan $chan1 status.3 $on
-blacktools:tell $nick $host $hand $chan $chan1 status.4 $chans
-blacktools:tell $nick $host $hand $chan $chan1 status.5 $shelluptime
-}
-
-############################## uptime #################################
-
-proc uptimepublic {nick host hand chan arg} {
-global botnick uptime {server-online} server
-set chan1 "$chan"
-set up [duration [expr [unixtime] - $uptime]]
-set on [duration [expr [unixtime] - ${server-online}]]
-blacktools:tell $nick $host $hand $chan $chan1 status.1 $up
-blacktools:tell $nick $host $hand $chan $chan1 status.2 $server
-blacktools:tell $nick $host $hand $chan $chan1 status.3 $on
-}
-
-################################# i ###################################
-
-proc ipublic {nick host hand chan arg} {
-global botnick black
-set type 0
-set chan1 "$chan"
-set inick [lrange [split $arg] 0 end]
-set c [lindex [split $arg] 0]
-if {[regexp {^[\\+!#&]} $c] && [matchattr $hand nm|- $chan]} {
-set chan "$c"
-set inick [join [lrange [split $arg] 1 end]]
-}
-i:process $nick $host $hand $chan $chan1 $inick $type
-}
-
-proc i:process {nick host hand chan chan1 inick type} {
-global botnick black
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-if {[matchattr $hand nm|- $chan]} {
-if {($inick == "")  && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 i.3 none
-return 0
-}
-if {($inick == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 i.4 none
-return 0
-}
-}
-if {($inick == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 i.5 none
-return 0
-}
-if {($inick == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 i.6 none
-return 0
-}
-
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-
-set replace(%nick%) $nick
-set replace(%chan%) $chan
-set getlang [string tolower [getuser $hand XTRA OUTPUT_LANG]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set getmsg $black(say.$getlang.i.7)
-
-if {[info exists black(say.$getlang.i.7)]} {
-set imessage [string map [array get replace] $getmsg]
-}
-
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-
-if {![botisop $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noop none
-return 0
-}
-foreach in $inick {
-if {[onchan $in $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 i.1 $in
-return 0
-}
-
-set countz [getuser $hand XTRA i($chan)]
-if {$countz == ""} { set countz 0 }
-set counts [expr $countz + 1]
-setuser $hand XTRA i($chan) $counts
-putquick "INVITE $in $chan"
-putquick "PRIVMSG $in :$imessage"
-blacktools:tell $nick $host $hand $chan $chan1 i.2 $in
-}
-}
-
-############################### addinfo ###############################
-
-
-proc addinfopublic {nick host hand chan arg} {
-global botnick black
-set info [join [lrange [split $arg] 0 end]]
-set chan1 "$chan"
-set char(p) [lindex $black(cmdchar) 0]
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-if {$info == ""} { 
-blacktools:tell $nick $host $hand $chan $chan1 addinfo.1 none
-return 0
-}
-addinfo:process $nick $host $hand $chan $chan1 $info
-}
-
-proc addinfo:process {nick host hand chan chan1 info} {
-global botnick black
-if {[string match -nocase "$info" "off"]} {
-set infos ""
-setuser $hand info $infos
-blacktools:tell $nick $host $hand $chan $chan1 addinfo.3 none
-return 0
-}
-setuser $hand info $info
-blacktools:tell $nick $host $hand $chan $chan1 addinfo.4 $info 
-}
-
-############################### purge ###############################
-
-proc purgepublic {nick host hand chan arg} {
-global botnick black
-set reason [join [lrange [split $arg] 0 end]]
-set chan1 "$chan"
-if {$reason == ""} {
-blacktools:tell $nick $host $hand $chan $chan1 purge.1 none
-return 0
-}
-purge:process $nick $host $hand $chan $chan1 $reason
-}
-
-proc purge:process {nick host hand chan chan1 reason} {
-channel remove $chan
-delchan:stats $chan $hand $host
-blacktools:tell $nick $host $hand $chan $chan1 purge.2 none
-putquick "PART $chan :PURGED by $hand :$reason"
-}
-
-
-################################### v #################################
-
-
-proc vpublic {nick host hand chan arg} {
-global botnick black
-set c [lindex [split $arg] 0]
-set arg [split $arg]
-set nick [split $nick]
-set chan1 "$chan"
-if {[regexp {^[\\+!#&]} $c] && [matchattr $hand nm|- $chan]} {
-set chan "$c"
-set arg [lrange $arg 1 end]
-}
-v:process $nick $host $hand $chan $chan1 $arg
-}
-
-proc v:process {nick host hand chan chan1 arg} {
-global botnick black
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-
-if {![botisop $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.noop none
-return 0
-}
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-if {$arg == ""} {
-set arg $nick
-}
-
-foreach voicenick $arg {
-if {[isbotnick $voicenick]} { return 0 }
-if {[isvoice $voicenick $chan]} {putquick "MODE $chan -v $voicenick"} else {putquick "MODE $chan +v $voicenick"}
-}
-
-}
-
-################################## o ##################################
-
-proc opublic {nick host hand chan arg} {
-global botnick black
-set c [lindex [split $arg] 0]
-set arg [split $arg]
-set nick [split $nick]
-set chan1 "$chan"
-if {[regexp {^[\\+!#&]} $c] && [matchattr $hand nm|- $chan]} {
-set chan "$c"
-set arg [lrange $arg 1 end]
-}
-o:process $nick $host $hand $chan $chan1 $arg
-}
-
-
-proc o:process {nick host hand chan chan1 arg} {
-global botnick black
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-
-if {![botisop $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.noop none
- return 0
-}
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-
-if {$arg == ""} {
-set arg $nick
-}
-
-
-foreach opnick $arg {
-if {[isbotnick $opnick]} { return 0 }
-if {[isop $opnick $chan]} {putquick "MODE $chan -o $opnick"} else {putquick "MODE $chan +o $opnick"}
-}
-
-}
-
-
-################################# l ###################################
-
-proc lpublic {nick host hand chan arg} {
-global black
-set times [lindex [split $arg] 0]
-set type 0
-set chan1 "$chan"
-if {[regexp {^[\\+!#&]} $times] && [matchattr $hand nm|- $chan]} {
-set chan "$times"
-set times [lindex [split $arg] 1]
-}
-l:process $nick $host $hand $chan $chan1 $times $type
-}
-
-proc l:process {nick host hand chan chan1 time type} {
-global botnick black
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-}         
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-if {[matchattr $hand nm|- $chan]} {
-if {($time == "")  && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 l.1 none
-return 0
-}
-if {($time == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 l.2 none
-return 0
-}
-}
-if {($time == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 l.3 none
-return 0
-}
-if {($time == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 l.4 none
-return 0
-}
-
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-
-if {![botisop $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noop none
-return 0
-}
-
-if {$time >= 300} {
-blacktools:tell $nick $host $hand $chan $chan1 l.5 none
-return 0
-}
-putserv "MODE $chan +$black(lmode)" ;utimer $time [list putquick "MODE $chan -$black(lmode)"]
-blacktools:tell $nick $host $hand $chan $chan1 l.6 "$black(lmode) $time"
-}
-
-proc chatpublic {nick host hand chan arg} {
-global botnick
-*ctcp:CHAT $nick $host $hand $botnick CHAT $arg
-blacktools:tell $nick $host $hand $chan $chan1 chat.1 none
-} 
-
-################################ ul ###################################
-
-proc ul:process {nick host hand chan chan1} {
-global black botnick
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-
-if {![botisop $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noop none
-return 0
-}
-putquick "MODE $chan -$black(ulmodes)"
-blacktools:tell $nick $host $hand $chan $chan1 ul.1 $black(ulmodes)
-}
-
-
-proc ulpublic {nick host hand chan arg} {
-global black
-set c [lindex [split $arg] 0]
-set chan1 "$chan"
-if {[regexp {^[\\+!#&]} $c] && [matchattr $hand nm|- $chan]} {
-set chan "$c"
-}
-ul:process $nick $host $hand $chan $chan1
-}
-
-################################ say ##################################
-
-
-proc saypublic {nick host hand chan arg} {
-global black
-set text [join [lrange [split $arg] 0 end]]
-set c [lindex [split $arg] 0]
-set type 0
-set chan1 "$chan"
-if {[regexp {^[\\+!#&]} $c] && [matchattr $hand nm|- $chan]} {
-set chan "$c"
-set text [join [lrange [split $arg] 1 end]]
-}
-say:process $nick $host $hand $chan $chan1 $text $type
-}
-
-proc say:process {nick host hand chan chan1 text type} {
-global botnick black
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-
-if {[matchattr $hand nm|- $chan]} {
-if {($text == "")  && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 say.1 none
-return 0
-}
-if {($text == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 say.2 none
-return 0
-}
-}
-if {($text == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 say.3 none
-return 0
-}
-if {($text == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 say.4 none
-return 0
-}
-
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-
-putquick "PRIVMSG $chan :$text"
-}
-
-################################ act ##################################
-
-proc actpublic {nick host hand chan arg} {
-global black
-set text [join [lrange [split $arg] 0 end]]
-set c [lindex [split $arg] 0]
-set type 0
-set chan1 "$chan"
-if {[regexp {^[\\+!#&]} $c] && [matchattr $hand nm|- $chan]} {
-set chan "$c"
-set text [join [lrange [split $arg] 1 end]]
-}
-act:process $nick $host $hand $chan $chan1 $text $type
-}
-
-proc act:process {nick host hand chan chan1 text type} {
-global botnick black
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-if {[matchattr $hand nm|- $chan]} {
-if {($text == "")  && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 act.1 none
-return 0
-}
-if {($text == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 act.2 none
-return 0
-}
-}
-if {($text == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 act.3 none
-return 0
-}
-if {($text == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 act.4 none
-return 0
-}
-
-
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-putquick "PRIVMSG $chan :\001ACTION $text\001"
-}
-
-############################## broadcast ##############################
-
-proc broadcastpublic {nick host hand chan arg} {
-global black
-set text [join [lrange [split $arg] 0 end]]
-set chan1 "$chan"
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-if {$text == ""} { 
-blacktools:tell $nick $host $hand $chan $chan1 broadcast.1 none
-return 0
-}
-broadcast:cmd:process $nick $host $hand $chan $chan1 $text
-}
-
-
-proc broadcast:cmd:process {nick host hand chan chan1 text} {
-global botnick black
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-foreach c [channels] {
-if {![channel get $c silent]} {
-putquick "PRIVMSG $c :(BROADCAST) $text"
-}
-}
-}
-
-############################### check #################################
-
-proc checkpublic {nick host hand chan arg} {
- global black
-set chan1 "$chan"
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set checked [lindex [split $arg] 0]
-if {$checked == ""} { blacktools:tell $nick $host $hand $chan $chan1 check.1 none
-return 0
-}
-check:process $nick $host $hand $chan $chan1 $checked
-}
-
-proc check:process {nick host hand chan chan1 checked} {
-global botnick black
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set handle [nick2hand $checked]
-if {[matchattr $hand -|q $chan]} { 
-blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-
-
-if {[matchattr $handle $black(exceptflags) $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noban none
- return 0
-}
-
-if {[isbotnick $checked]} {
-return 0
-}
-if {![botisop $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noop none
-return 0
-}
- if {![onchan $checked $chan]} { 
-blacktools:tell $nick $host $hand $chan $chan1 gl.usernotonchan $checked
-return 0
-}
-if {[onchan $checked $chan]} {
-set mask *!*@[lindex [split [getchanhost $checked $chan] "@"] 1] 
-}
-
-set countz [getuser $hand XTRA check($chan)]
-if {$countz == ""} { set countz 0 }
-set counts [expr $countz + 1]
-setuser $hand XTRA check($chan) $counts
-set getlang [string tolower [getuser $hand XTRA OUTPUT_LANG]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set getmsg $black(say.$getlang.check.3)
-if {[info exists black(say.$getlang.check.3)]} {
-putquick "PRIVMSG $checked :$black(say.$getlang.check.3)"
-}
-
-}
-
-############################## version ################################
-
-proc versionpublic {nick host hand chan arg} {
-global botnick black
-set chan1 "$chan"
-version:process $nick $host $hand $chan $chan1
-}
-
-proc version:process {nick host hand chan chan1} {
-global botnick black
-blacktools:tell $nick $host $hand $chan $chan1 version.1 none
-}
-
-############################### cycle #################################
-
-proc cycle:process {nick host hand chan chan1 reason} {
-global black botnick
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-
-if {$reason == ""} { set reason "No Reason" }
-putquick "PART $chan :$reason"
-utimer 5 [list putquick "JOIN $chan"]
-}
-
-
-proc cyclepublic {nick host hand chan arg} {
-global black
-set reason [join [lrange [split $arg] 0 end]]
-set c [lindex [split $arg] 0]
-set chan1 "$chan"
-if {[regexp {^[\\+!#&]} $c] && [matchattr $hand nm|- $chan]} {
-set chan "$c"
-set reason [join [lrange [split $arg] 1 end]]
-}
-cycle:process $nick $host $hand $chan $chan1 $reason
-}
-
-################################ away #################################
-
-proc awaypublic {nick host hand chan arg} {
-global black
-set chan1 "$chan"
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set aw [join [lrange [split $arg] 0 end]]
-if {$aw == "" } {blacktools:tell $nick $host $hand $chan $chan1 away.1 none
-return 0
-}
-away:process $nick $host $hand $chan $chan1 $aw
-}
-
-
-proc away:process {nick host hand chan chan1 aw} {
-global black botnick wdir
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-if {[string match -nocase "$aw" "off"]} { 
-blacktools:tell $nick $host $hand $chan $chan1 away.3 none
-putquick "AWAY :" 
-set type [open $wdir w]
-set none ""
-puts $type "$none"
-close $type
-
-return 0
-} else {
-blacktools:tell $nick $host $hand $chan $chan1 away.4 $aw ; putquick "AWAY :$aw"
-set type [open $wdir w]
-puts $type "$aw"
-close $type
-}
-}
-
-proc setaway {my} {
-global wdir
-if {[file exists $wdir] == 0} {
-set file [open $wdir a]
-close $file
-}
-set aways [open $wdir r]
-set away "[gets $aways]"
-catch {close $aways}
-if {$away == ""} {
- return 0 
-} else {
-putserv "AWAY :"
-putserv "AWAY :$away"
-}
-}
-
-
-################################### mode ######################################
-
-proc modepublic {nick host hand chan arg} {
-global black
-set modes [lindex [split $arg] 0]
-set chan1 "$chan"
-set type 0
-if {[regexp {^[#&]} $modes] && [matchattr $hand nm|- $chan]} {
-set chan "$modes"
-set modes [lindex [split $arg] 1]
-}
-mode:process $nick $host $hand $chan $chan1 $modes $type
-}
-
-proc mode:process {nick host hand chan chan1 modes type} {
-global botnick black
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-
-if {[matchattr $hand nm|- $chan]} {
-if {($modes == "")  && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 mode.1 none
-return 0
-}
-if {($modes == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 mode.2 none
-return 0
-}
-}
-if {($modes == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 mode.3 none
-return 0
-}
-if {($modes == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 mode.4 none
-return 0
-}
-
-
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-
-if {![botisop $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noop none
-return 0
-}
-
-if {![regexp {^[+ -]} $modes]} {
-blacktools:tell $nick $host $hand $chan $chan1 mode.5 none
-return 0
-}
-blacktools:tell $nick $host $hand $chan $chan1 mode.6 $modes
-putserv "MODE $chan $modes"
-}
-
-
-################################## myset #############################
-
-proc mysetpublic {nick host hand chan arg} {
-global black
-set chan1 "$chan"
-set flags [lindex [split $arg] 0]
-set type [lindex [split $arg] 1]
-if {$type == ""} {
-blacktools:tell $nick $host $hand $chan $chan1 myset.3 none
-return 0
-}
-myset:process $nick $host $hand $chan $chan1 $flags $type
-}
-
-
-proc myset:process {nick host hand chan chan1 flags typez} {
-global black
-switch -exact -- [string tolower $flags] {
-lang {
-setuser $hand XTRA OUTPUT_LANG $typez
-blacktools:tell $nick $host $hand $chan $chan1 myset.1 $typez
-return 0
-}
-
-output {
-if {[string match -nocase $typez "notice"]} {
-setuser $hand XTRA OUTPUT_TYPE 1
-blacktools:tell $nick $host $hand $chan $chan1 myset.2 $typez
-return 0
-}
-if {[string match -nocase $typez "chan"]} {
-setuser $hand XTRA OUTPUT_TYPE 0
-blacktools:tell $nick $host $hand $chan $chan1 myset.2 $typez
-return 0
-}
-}
-
-}
-}
-
-
-################################# set #################################
-
-proc setpublic {nick host hand chan arg} {
-global black
-set flags [lindex [split $arg] 0]
-set type [join [lrange [split $arg] 1 end]]
-set chan1 "$chan"
-set type1 0
-if {[regexp {^[#&]} $flags] && [matchattr $hand nm|- $chan]} {
-set chan "$flags"
-set flags [lindex [split $arg] 1]
-set type [join [lrange [split $arg] 2 end]]
-}
-set:process $nick $host $hand $chan $chan1 $flags $type $type1
-}
-
-proc set:process {nick host hand chan chan1 flags type type1} {
-global botnick black
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-if {[matchattr $hand -|q $chan]} { 
-blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-
-if {[matchattr $hand nm|- $chan]} {
-if {($flags == "")  && ($type1 == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 set.1 none
-return 0
-}
-if {($flags == "") && ($type1 == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 set.2 none
-return 0
-}
-}
-if {($flags == "") && ($type1 == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 set.3 none
-return 0
-}
-if {($flags == "") && ($type1 == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 set.4 none
-return 0
-}
-
-
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-
-
- if {$type == ""} {
-set why [catch {channel set $chan $flags} error]
-if {$why == "1"} { blacktools:tell $nick $host $hand $chan $chan1 set.5 $flags
-return 0
-} else {
-channel set $chan $flags ; blacktools:tell $nick $host $hand $chan $chan1 set.6 $flags
-}
- 
-} else {
-set why [catch {channel set $chan $flags $type} error]
-if {!([matchattr $hand mn|- $chan]) && [string match -nocase "backchan" $flags]} {
-return 0
-}
-
-if {$why == "1"} { blacktools:tell $nick $host $hand $chan $chan1 set.7 "$flags $type"
-return 0
-} else {
- channel set $chan $flags $type ; blacktools:tell $nick $host $hand $chan $chan1 set.8 "$flags $type" 
-}
-}
-}
-
-
-
-proc ignorepublic {nick host hand chan arg} {
-global black
-set chan1 "$chan"
-set what [lindex [split $arg] 0]
-set mask [lindex [split $arg] 1]
-set time [lindex [split $arg] 2]
-set reason [join [lrange [split $arg] 3 end]]
-if {$what == ""} { blacktools:tell $nick $host $hand $chan $chan1 ignore.1 none
-return 0
-}
-ignore:process $nick $host $hand $chan $chan1 $what $mask $time $reason
-}
-
-
-proc ignore:process {nick host hand chan chan1 what mask time reason} {
-global botnick black
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-switch -exact -- [string tolower $what] {
-
-list {
-
-if {[llength [ignorelist]] == "0"} { blacktools:tell $nick $host $hand $chan $chan1 ignore.3 none
-return 0
-}
-foreach ig [ignorelist] {
-set hostig [lindex $ig 0]
-set byig [lindex $ig 4]
-set time [lindex $ig 2]
-set reasig [lindex $ig 1]
-if {$time != "0"} {
-set bytime [clock format $time -format %D-%H:%M:%S]
-} else { set bytime "-"}
-blacktools:tell $nick $host $hand $chan $chan1 ignore.4 "$hostig $byig $bytime $reasig" 
-}
-}
-
-add {
-
-if {[isignore $mask]} {
-blacktools:tell $nick $host $hand $chan $chan1 ignore.5 "$mask"
-return 0
-}
-
-if {![regexp {^[0-9]} $time]} {
-set time "60"
-}
-if {$reason == ""} { set reason "No Reason" }
-newignore $mask $hand $reason $time
-blacktools:tell $nick $host $hand $chan $chan1 ignore.6 "$mask $time $reason"
-}
-
-
-
-delete {
-if {$mask == ""} { blacktools:tell $nick $host $hand $chan $chan1 ignore.7 none
-return 0
-}
-
-if {[isignore $mask]} {
-killignore $mask
-} else { blacktools:tell $nick $host $hand $chan $chan1 ignore.8 "$mask"
-return 0
-} 
-blacktools:tell $nick $host $hand $chan $chan1 ignore.9 "$mask"
-}
-
-}
-}
-
-
-################################# show ################################
-
-proc showpublic {nick host hand chan arg} {
-global black
-set wich [lindex [split $arg] 0]
-set type 0
-set chan1 "$chan"
-if {[regexp {^[#&]} $wich] && [matchattr $hand nm|- $chan]} {
-set chan "$wich"
-set wich [lindex [split $arg] 1]
-}
-show:process $nick $host $hand $chan $chan1 $wich $type
-}
-
-proc show:process {nick host hand chan chan1 wich type} {
-global black botnick
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-
-if {[matchattr $hand nm|- $chan]} {
-if {($wich == "")  && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 show.1 none
-return 0
-}
-if {($wich == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 show.2 none
-return 0
-}
-}
-if {($wich == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 show.3 none
-return 0
-}
-if {($wich == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 show.4 none
-return 0
-}
-
-
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-
-
-set why [catch {channel get $chan $wich} error]
-if {$why == "1"} { blacktools:tell $nick $host $hand $chan $chan1 show.5 $wich
-return 0
-} else {
-set replyinfo [channel get $chan $wich]
-
-if {($replyinfo == "") || ($replyinfo == "0")} {
-switch -exact -- [string tolower $wich] {
-
-antipub-reason {
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set replyinfo $black(say.$getlang.antipub.1)
-}
-
-antilongtextmax {
-set replyinfo [channel get $chan antilongtextmax]
-if {$replyinfo == "0"} {
-set replyinfo "$black(longchar)"
-}
-}
-
-
-joinflood {
-set replyinfo [channel get $chan joinflood]
-if {$replyinfo == ""} {
-set replyinfo "4 5"
-}
-}
-
-chanflood {
-set replyinfo [channel get $chan chanflood]
-if {$replyinfo == ""} {
-set replyinfo "4 5"
-}
-}
-
-idleopmax {
-set replyinfo [channel get $chan idleopmax]
-if {$replyinfo == "0"} {
-set replyinfo "$black(idleopmax)"
-}
-}
-
-idlevoicemax {
-set replyinfo [channel get $chan idlevoicemax]
-if {$replyinfo == "0"} {
-set replyinfo "$black(idlevoicemax)"
-}
-}
-
-
-private-bantime {
-set replyinfo "$black(privatebantime)"
-}
-
-private-reason {
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set replyinfo $black(say.$getlang.private.12)
-}
-
-antipub-bantime {
-set replyinfo "$black(antipubbantime)"
-}
-
-antinotice-bantime {
-set replyinfo "$black(antinoticebantime)"
-}
-
-antinotice-reason {
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set replyinfo $black(say.$getlang.antinotice.1)
-}
-
-antictcp-reason {
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set replyinfo $black(say.$getlang.antictcp.1)
-}
-
-antictcp-bantime {
-set replyinfo "$black(antictcpbantime)"
-}
-
-antibadword-bantime {
-set replyinfo "$black(antibadwordbantime)"
-}
-
-antibadword-reason {
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set replyinfo $black(say.$getlang.antibadword.1)
-}
-
-antilongtext-reason {
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set replyinfo $black(say.$getlang.antilongtext.1)
-}
-
-antilongtext-bantime {
-set replyinfo "$black(longbantime)"
-}
-
-antibadquitpart-reason {
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set replyinfo $black(say.$getlang.antibadquitpart.1)
-}
-
-antibadquitpart-bantime {
-set replyinfo "$black(badquitparttime)"
-}
-
-antijoinpart-reason {
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set replyinfo $black(say.$getlang.antijoinpart.1)
-}
-
-antijoinpart-bantime {
-set replyinfo "$black(joinpartbantime)"
-}
-
-antispam-bantime {
-set replyinfo "$black(spamban)"
-}
-
-antispam-reason {
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set replyinfo $black(say.$getlang.antispam.1)
-}
-
-antirepeat-reason {
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set replyinfo $black(say.$getlang.antirepeat.1)
-}
-
-antirepeat-setting {
-set replyinfo "$black(repeats)"
-}
-
-antirepeat-bantime {
-set replyinfo "$black(antirepeatbantime)"
-}
-
-anticolor-reason {
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set replyinfo $black(say.$getlang.anticolor.1)
-}
-
-anticolor-bantime {
-set replyinfo "$black(anticolorbantime)"
-}
-
-antibold-reason {
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set replyinfo $black(say.$getlang.antibold.1)
-}
-
-antibold-bantime {
-set replyinfo "$black(antiboldbantime)"
-}
-
-antiunderline-reason {
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set replyinfo $black(say.$getlang.antiunderline.1)
-}
-
-antiunderline-bantime {
-set replyinfo "$black(antiunderlinebantime)"
-}
-
-anticaps-reason {
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set replyinfo $black(say.$getlang.anticaps.1)
-}
-
-anticaps-bantime {
-set replyinfo "$black(anticapsbantime)"
-}
-
-badfullname-reason {
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set replyinfo $black(say.$getlang.badfullname.1)
-}
-
-badfullname-bantime {
-set replyinfo "$black(badfbantime)"
-}
-
-badnick-reason {
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set replyinfo $black(say.$getlang.badnick.1)
-}
-
-badnick-bantime {
-set replyinfo "$black(badnickbantime)"
-}
-
-badident-reason {
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set replyinfo $black(say.$getlang.badident.1)
-}
-
-badident-bantime {
-set replyinfo "$black(badidentbantime)"
-}
-
-antichanflood-reason {
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set replyinfo $black(say.$getlang.antichanflood.1)
-}
-
-antichanflood-bantime {
-set replyinfo "$black(antifloodchanbantime)"
-}
-
-badchan-reason {
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set replyinfo $black(say.$getlang.badchan.15)
-}
-
-badchan-bantime {
-set replyinfo "$black(badcbantime)"
-}
-
-count-message {
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set replyinfo $black(say.$getlang.count.11)
-}
-
-
-dr-reason {
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set replyinfo $black(say.$getlang.dr.5)
-}
-
-dr-bantime {
-set replyinfo "$black(drtime)"
-}
-
-bot-reason {
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set replyinfo $black(say.$getlang.bot.5)
-}
-
-bot-bantime {
-set replyinfo "$black(bottime)"
-}
-
-n-reason {
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set replyinfo $black(say.$getlang.n.5)
-}
-
-n-bantime {
-set replyinfo "$black(ntime)"
-}
-
-id-reason {
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set replyinfo $black(say.$getlang.id.5)
-}
-
-id-bantime {
-set replyinfo "$black(idtime)"
-}
-
-w-reason {
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set replyinfo $black(say.$getlang.w.5)
-
-}
-
-spam-reason {
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set replyinfo $black(say.$getlang.spam.5)
-}
-
-spam-bantime {
-set replyinfo "$black(spamtime)"
-}
-
-bw-reason {
-set getlang [string tolower [channel get $chan lang]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set replyinfo $black(say.$getlang.bw.5)
-}
-
-bw-bantime {
-set replyinfo "$black(bwtime)"
-}
-
-}
-}
-blacktools:tell $nick $host $hand $chan $chan1 show.6 "$wich $replyinfo"
-}
-}
-
-
-############################## silence ################################
-
-proc silencepublic {nick host hand chan arg} {
-global black
-set value [lindex [split $arg] 0]
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set chan1 "$chan"
-if {$value == ""} { blacktools:tell $nick $host $hand $chan $chan1 silence.1 none
-return 0
-}
-silence:process $nick $host $hand $chan $chan1 $value
-}
-
-proc silence:process {nick host hand chan chan1 value} {
-global botnick black
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-
-if {([regexp -nocase -- {(#[0-9]+|on|off)} $value tmp silents]) && (![regexp -nocase -- {\S#} $value])} {
- switch $silents {
-on { blacktools:tell $nick $host $hand $chan $chan1 silence.3 none ; putquick "SILENCE +*!*@*"             
-}
-off { blacktools:tell $nick $host $hand $chan $chan1 silence.4 none ; putquick "SILENCE -*!*@*"            
-}
-}
-}
-}
-
-############################## msg ####################################
-
-proc msgpublic {nick host hand chan arg} {
-global black
-set nicks [lindex [split $arg] 0]
-set chan1 "$chan"
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set msg [join [lrange [split $arg] 1 end]]
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-if {$nicks == ""} {blacktools:tell $nick $host $hand $chan $chan1 msg.1 none
-return 0
-}
-if {[isbotnick $nicks]} { 
-return 0
-}
-putquick "PRIVMSG $nicks :$msg"
-}
-
-
-############################### reset #################################
-
-proc resetpublic {nick host hand chan arg} {
-global black
-set dece [lindex [split $arg] 0]
-set type 0
-set chan1 "$chan"
-if {[regexp {^[#&]} $dece] && [matchattr $hand nm|- $chan]} {
-set chan "$dece"
-set dece [lindex [split $arg] 1]
-}
-reset:process $nick $host $hand $chan $chan1 $dece $type
-}
-
-
-
-proc reset:process {nick host hand chan chan1 dece type} {
-global botnick black
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-if {[matchattr $hand nm|- $chan]} {
-if {($dece == "")  && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 reset.1 none
-return 0
-}
-if {($dece == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 reset.2 none
-return 0
-}
-}
-if {($dece == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 reset.3 none
-return 0
-}
-if {($dece == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 reset.4 none
-return 0
-}
-
-
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-
-if {[string match -nocase "all" "$dece"]} {
-set emptyflag "antipub-reason antinotice-reason antictcp-reason antibadword-reason antilongtext-reason antijoinpart-reason antirepeat-reason antirepeat-setting antispam-reason anticolor-reason antibold-reason antiunderline-reason anticaps-reason badfullname-reason badnick-reason badident-reason antichanflood-reason chanflood joinflood private-reason dr-reason n-reason id-reason spam-reason w-reason bw-reason bot-reason badchan-reason count-message"
-foreach eflag $emptyflag {
-channel set $chan $eflag ""
-}
-set zeroflag "antinotice-bantime antipub-bantime antictcp-bantime antibadword-bantime antilongtext-bantime antijoinpart-bantime antispam-bantime idleopmax idlevoicemax antilongtextmax antirepeat-bantime anticolor-bantime antibold-bantime antiunderline-bantime anticaps-bantime badfullname-bantime badnick-bantime badident-bantime antichanflood-bantime private-bantime  dr-bantime n-bantime id-bantime spam-bantime bw-bantime bot-bantime kickcount"
-foreach oflag $zeroflag {
-channel set $chan $oflag 0
-}
-blacktools:tell $nick $host $hand $chan $chan1 reset.5 none
-return 0
-}
-set why [catch {channel set $chan $dece ""} error]
-if {$why == "1"} { blacktools:tell $nick $host $hand $chan $chan1 reset.6 $dece
-} else {
-channel set $chan $dece ""
-blacktools:tell $nick $host $hand $chan $chan1 reset.7 $dece
-}
-}
-
-
-################################### banlist ###################################
-
-proc banlistpublic {nick host hand chan arg} {
-global botnick black
-set user [lindex [split $arg] 0]
-set type 0
-set chan1 "$chan"
-if {[regexp {^[\\+!#&]} $user] && [matchattr $hand nm|- $chan]} {
-set chan "$user"
-set user [lindex [split $arg] 1]
-}
-banlist:process $nick $host $hand $chan $chan1 $user $type
-}
-
-
-proc banlist:process {nick host hand chan chan1 user type} {
-global botnick black
-set i 0
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-if {[matchattr $hand nm|- $chan]} {
-if {($user == "")  && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 banlist.1 none
-blacktools:tell $nick $host $hand $chan $chan1 banlist.2 none
-return 0
-}
-if {($user == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 banlist.3 none
-blacktools:tell $nick $host $hand $chan $chan1 banlist.4 none
-return 0
-}
-}
-if {($user == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 banlist.5 none
-return 0
-}
-if {($user == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 banlist.6 none
-return 0
-}
-
-if {[matchattr $hand nm|- $chan] && [string match -nocase "global" $user]} {
-
-foreach ban [banlist] {
-
-set i [expr $i +1]
-set expire [clock format [lindex $ban 2] -format %D-%H:%M:%S]
-set create [clock format [lindex $ban 3] -format %D-%H:%M:%S]
-set fban [lindex $ban 0]
-set freason [lindex $ban 1]
-set fbywho [lindex $ban 5]
-
-if {[lindex $ban 2] == 0} {
-set expire "Permanent"
-}
-
-blacktools:tell $nick $host $hand $chan $chan1 banlist.9 none
-blacktools:tell $nick $host $hand $chan $chan1 banlist.10 "$fban $fbywho $create $expire $freason"
-set foundban 1
-}
-
-if {![info exists foundban]} {
-blacktools:tell $nick $host $hand $chan $chan1 banlist.7 none
-} else { blacktools:tell $nick $host $hand $chan $chan1 banlist.8 none }
-return 0
-}
-
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-
-if {![validuser $user]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomem none
-return 0
-}
-
-if {![matchattr $user nm|OASMN $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.noaccess none 
-return 0
-}
-
-foreach ban [banlist $chan] {
-set own [lindex $ban 5]
-if {[string match -nocase $own $user]} {
-set i [expr $i +1]
-set expire [clock format [lindex $ban 2] -format %D-%H:%M:%S]
-set create [clock format [lindex $ban 3] -format %D-%H:%M:%S]
-set fban [lindex $ban 0]
-set freason [lindex $ban 1]
-
-if {[lindex $ban 2] == 0} {
-set expire "Permanent"
-}
-blacktools:tell $nick $host $hand $chan $chan1 banlist.11 $user
-blacktools:tell $nick $host $hand $chan $chan1 banlist.12 "$fban $create $expire $freason"
-set foundban 1
-}
-}
-
-if {![info exists foundban]} {
-blacktools:tell $nick $host $hand $chan $chan1 banlist.11 $user
-blacktools:tell $nick $host $hand $chan $chan1 banlist.7 $user
-} else { 
-blacktools:tell $nick $host $hand $chan $chan1 banlist.8 $user }
-}
-
-
-############################## rehash #################################
-
-proc rehashme {nick host hand arg} {
-global black
-blacktools:tell:prv $nick $host $hand rehash.1 none
- rehash
-}
-
-############################## VERSION ################################
-
-proc blackreply {nick host hand dest key text} {
-global ctcp-version
-set {ctcp-version} "1Using 4BlackTools 2.3 1by 12BLaCkShaDoW"
-}
-
-
-############################## restart ################################
-
-proc restartme {nick host hand arg} {
-global black
-blacktools:tell:prv $nick $host $hand restart.1 none
-utimer 3 [list restart ]
-}
-
-############################### save #################################
-
-proc saveme {nick host hand arg} {
-global black
-blacktools:tell:prv $nick $host $hand save.1 none
- save
-}
-
-############################### jump #################################
-
-proc jumpme {nick host hand arg} {
-global black
-blacktools:tell:prv $nick $host $hand jump.1 none
- utimer 3 [list jump]
-}
-
-############################### die ###################################
-
-proc dieme {nick host hand arg} {
-global black
-blacktools:tell:prv $nick $host $hand die.1 none
-utimer 3 [list die "byeeee" ]
-}
-
-
-############################## nick ###################################
-
-proc nickpublic {altnick host hand arg} {
-global nick black
-set getlang [string tolower [getuser $hand XTRA OUTPUT_LANG]]
-set newnick [lindex [split $arg] 0]
-if {$newnick == ""} { blacktools:tell:prv $nick $host $hand nick.2 none
-return 0
-}
-blacktools:tell:prv $nick $host $hand nick.1 "$newnick"
-set nick $newnick
-}
-
-proc nick:process {who newnick host hand chan} {
-global black nick
-set chan1 "$chan"
-if {$newnick == ""} {
-blacktools:tell $who $host $hand $chan $chan1 nick.2 none
-return 0
-}
-blacktools:tell $who $host $hand $chan $chan1 nick.1 none
-set nick $newnick
-}
-
-############################## addchan ################################
-
-proc addchanpublic {nick host hand arg} {
-global black
-set chans [lindex [split $arg] 0]
-if {$chans == ""} {blacktools:tell:prv $nick $host $hand addchan.1 none
-return 0 
-}
-
-if {![regexp {^[#&]} $chans]} {
-blacktools:tell:prv $nick $host $hand gl.novalidchan none
-return 0
-} 
-
-if {[validchan $chans]} {
-blacktools:tell:prv $nick $host $hand addchan.2 "$chans"
-return 0
-} else {
-channel add $chans
-addchan:stats $chans $hand $host
-blacktools:tell:prv $nick $host $hand addchan.3 "$chans"
-}
-}
-
-proc addchan:stats {chan hand host} {
-global black botnick statsdir
-set k 0
-set time [unixtime]
-set file [open $statsdir "r"]
-set addfile "$chan ADDED $hand $host $time 0"
-set database [read -nonewline $file]
-close $file
-set data [split $database "\n"]
-foreach line $data {
-set k [expr $k +1]
-set chanentry [lindex [split $line] 0]
-set addtype [lindex [split $line] 1]
-if {[string equal -nocase "REMOVED" "$addtype"] && [string match -nocase $chanentry $chan]} { 
-if {$line != ""} {
-set num [expr $k - 1]
-set delete [lreplace $data $num $num]
-set files [open $statsdir "w"]
-puts $files [join $delete "\n"]
-close $files
-}
-}
-}
-set file [open $statsdir "r"]
-set data [read -nonewline $file]
-close $file
-if {$data == ""} {
-set files [open $statsdir "w"]
-close $files
-}
-set file [open $statsdir "a"]
-puts $file "$addfile"
-close $file
-}
-
-
-proc delchan:stats {chan hand host} {
-global black botnick statsdir
-set k 0
-set time [unixtime]
-set file [open $statsdir "r"]
-set database [read -nonewline $file]
-close $file
-set data [split $database "\n"]
-set addfile "$chan REMOVED $hand $host $time 0 0 none none"
-foreach line $data {
-set k [expr $k +1]
-set chanentry [lindex [split $line] 0]
-set addtype [lindex [split $line] 1]
-if {[string equal -nocase "REMOVED" "$addtype"] && [string match -nocase $chanentry $chan]} {
-if {$line != ""} {
-set num [expr $k - 1]
-set delete [lreplace $data $num $num]
-set files [open $statsdir "w"]
-puts $files [join $delete "\n"]
-close $files
-}
-}
-if {[string equal -nocase "ADDED" "$addtype"] && [string match -nocase $chanentry $chan]} {
-set added [lindex [split $line] 4]
-set bywho [lindex [split $line] 2]
-set byhost [lindex [split $line] 3]
-set addfile "$chan REMOVED $hand $host $time $added $bywho $byhost"
-if {$line != ""} {
-set num [expr $k - 1]
-set delete [lreplace $data $num $num]
-set files [open $statsdir "w"]
-puts $files [join $delete "\n"]
-close $files
-}
-}
-}
-set file [open $statsdir "r"]
-set data [read -nonewline $file]
-close $file
-if {$data == ""} {
-set files [open $statsdir "w"]
-close $files
-}
-set file [open $statsdir "a"]
-puts $file "$addfile"
-close $file
-}
-
-
-
-
-
-############################## delchan ################################
-
-
-proc delchanpublic {nick host hand arg} {
-global black
-set chans [lindex [split $arg] 0]
-
-if {$chans == ""} {blacktools:tell:prv $nick $host $hand delchan.1 none
-return 0 
-}
-if {![regexp {^[\\+!#&]} $chans]} {
-blacktools:tell:prv $nick $host $hand gl.novalidchan none
-return 0
- } 
-
-if {![validchan $chans]} { blacktools:tell:prv $nick $host $hand delchan.2 $chans
-return 0
-}
-delchan:stats $chans $hand $host
-channel remove $chans
-blacktools:tell:prv $nick $host $hand delchan.3 $chans
-}
-
-
-############################## suspend ################################
-
-proc suspendpublic {nick host hand arg} {
-global black
-set chans [lindex [split $arg] 0]
-
-if {$chans == ""} {blacktools:tell:prv $nick $host $hand suspend.1 none
-return 0 
-}
-
-if {![regexp {^[\\+!#&]} $chans]} {
-blacktools:tell:prv $nick $host $hand gl.novalidchan none 
-return 0
- }
-
-if {![validchan $chans]} { blacktools:tell:prv $nick $host $hand suspend.2 $chans
-return 0
-}
-
-if {[channel get $chans inactive]} {
-blacktools:tell:prv $nick $host $hand suspend.3 $chans
-return 0
-}
-channel set $chans +inactive
-blacktools:tell:prv $nick $host $hand suspend.4 $chans
-}
-
-############################# unsuspend ###############################
-
-proc unsuspendpublic {nick host hand arg} {
-global black
-set chans [lindex [split $arg] 0]
-
-if {$chans == ""} {blacktools:tell:prv $nick $host $hand unsuspend.1 none
-return 0 
-}
-
-if {![regexp {^[\\+!#&]} $chans]} {
-blacktools:tell:prv $nick $host $hand gl.novalidchan none
-return 0
- }
- 
-if {![validchan $chans]} { blacktools:tell:prv $nick $host $hand unsuspend.2 $chans
-return 0
-}
-
-if {![channel get $chans inactive]} {
-blacktools:tell:prv $nick $host $hand unsuspend.3 $chans
-return 0
- }
-channel set $chans -inactive
-blacktools:tell:prv $nick $host $hand unsuspend.4 $chans
-}
-
-################################ op ###################################
-
-proc oppublic {nick host hand arg} {
-global black
-set chan [lindex [split $arg] 0]
-set nicks [lrange [split $arg] 1 end]
-if {![validchan $chan]} {
-blacktools:tell:prv $nick $host $hand gl.nocmem $chan
-}
-
-if {[matchattr $hand -|q $chan]} { blacktools:tell:prv $nick $host $hand gl.suspend none
-return 0
-}
-if {$nicks == ""} { set nicks "$nick" }
-if {[matchattr $hand nm|OASM $chan]} {
-if {![regexp {^[\\+!#&]} $chan]} {
-blacktools:tell:prv $nick $host $hand gl.novalidchan none 
-return 0
-} 
-if {![botisop $chan]} { blacktools:tell:prv $nick $host $hand gl.noop none
-return 0
-}
-
-if {![validchan $chan]} { 
-blacktools:tell:prv $nick $host $hand op.1 $chan
-return 0
-}
-
-foreach nickz $nicks {
-if {[isop $nickz $chan]} {
-blacktools:tell:prv $nick $host $hand op.2 $nickz
-return 0
-}
-putquick "MODE $chan +o $nickz"
-
-}
-}
-}
-
-############################### deop ##################################
-
-proc deoppublic {nick host hand arg} {
-global black
-set chan [lindex [split $arg] 0]
-set nicks [lrange [split $arg] 1 end]
-if {![validchan $chan]} {
-blacktools:tell:prv $nick $host $hand gl.nocmem $chan
-}
-
-if {[matchattr $hand -|q $chan]} { blacktools:tell:prv $nick $host $hand gl.suspend none
-return 0
-}
-if {$nicks == ""} { set nicks "$nick" }
-if {[matchattr $hand nm|OASM $chan]} {
-if {![regexp {^[\\+!#&]} $chan]} {
-blacktools:tell:prv $nick $host $hand gl.novalidchan none 
-return 0
- } 
-if {![botisop $chan]} { blacktools:tell:prv $nick $host $hand gl.noop none
-return 0
-}
-
-if {![validchan $chan]} { blacktools:tell:prv $nick $host $hand deop.1 $chan
-return 0
-}
-
-foreach nickz $nicks {
-if {[onchan $nickz $chan]} {
-putquick "MODE $chan -o $nickz"
-
-}
-}
-}
-}
-
-############################### voice #################################
-
-proc voicepublic {nick host hand arg} {
-global black
-set chan [lindex [split $arg] 0]
-set nicks [lrange [split $arg] 1 end]
-
-if {![validchan $chan]} {
-blacktools:tell:prv $nick $host $hand gl.nocmem $chan
-}
-
-if {[matchattr $hand -|q $chan]} { blacktools:tell:prv $nick $host $hand gl.suspend none
-return 0
-}
-if {$nicks == ""} { set nicks "$nick" }
-if {[matchattr $hand nm|OASM $chan]} {
-if {![regexp {^[\\+!#&]} $chan]} {
-blacktools:tell:prv $nick $host $hand gl.novalidchan none 
-return 0
- } 
-if {![botisop $chan]} { blacktools:tell:prv $nick $host $hand gl.noop none
-return 0
-}
-
-if {![validchan $chan]} { blacktools:tell:prv $nick $host $hand voice.1 $chan
-return 0
-}
-
-foreach nickz $nicks {
-if {[onchan $nickz $chan]} {
-if {[isvoice $nickz $chan]} { 
-blacktools:tell:prv $nick $host $hand voice.2 $nickz
-return 0
-}
-putquick "MODE $chan +v $nickz"
-
-}
-}
-}
-}
-
-############################## devoice ################################
-
-proc devoicepublic {nick host hand arg} {
-global black
-set chan [lindex [split $arg] 0]
-set nicks [lrange [split $arg] 1 end]
-if {![validchan $chan]} {
-blacktools:tell:prv $nick $host $hand gl.nocmem $chan
-}
-
-if {[matchattr $hand -|q $chan]} { blacktools:tell:prv $nick $host $hand gl.suspend none
-return 0
-}
-if {$nicks == ""} { set nicks "$nick" }
-if {[matchattr $hand nm|OASM $chan]} {
-if {![regexp {^[\\+!#&]} $chan]} {
-blacktools:tell:prv $nick $host $hand gl.novalidchan none 
-return 0
- } 
-if {![botisop $chan]} { blacktools:tell:prv $nick $host $hand gl.noop none
-return 0
-}
-
-if {![validchan $chan]} { blacktools:tell:prv $nick $host $hand devoice.1 $chan
-return 0
-}
-
-foreach nickz $nicks {
-if {[onchan $nickz $chan]} {
-putquick "MODE $chan -v $nickz"
-
-}
-}
-}
-}
-
-############################## invite #################################
-
-proc invitepublic {nick host hand arg} {
-global black
-set chan [lindex [split $arg] 0]
-set replace(%chan%) $chan
-if {![validchan $chan]} {
-blacktools:tell:prv $nick $host $hand gl.nocmem $chan
-}
-if {[matchattr $hand -|q $chan]} { blacktools:tell:prv $nick $host $hand gl.suspend none"
-return 0
-}
-if {[matchattr $hand nm|OASM $chan]} {
-if {$chan == ""} { blacktools:tell:prv $nick $host $hand invite.1 none
-return 0 
-}
-putquick "INVITE $nick $chan"
-set getlang [string tolower [getuser $hand XTRA OUTPUT_LANG]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set getmsg $black(say.$getlang.invite.2)
-if {[info exists black(say.$getlang.invite.2)]} {
-set getmsg [string map [array get replace] $getmsg]
-putquick "PRIVMSG $nick :$getmsg"
-}
-
-}
-}
-
-
-
-##############################add ######################################
-
-proc add:process {args time level hand host chan chan1 nick type} {
-global black botnick
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set flags "nm|NMOSAV"
-if {[matchattr $hand nm|- $chan]} {
-if {($level == "")  && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 add.1 none
-return 0
-}
-if {($level == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 add.2 none
-return 0
-}
-}
-if {($level == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 add.3 none
-return 0
-}
-if {($level == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 add.4 none
-return 0
-}
-
-
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-
-
-
-foreach user $args {
-if {$user != ""} {
-set replace(%user%) $user
-if {([string length $user]>=10) && ($black(maxhand) == "1")} {
-set user [string range $user 0 8]
-}
-
-set uhost [string map [array get replace] $black(hostadd)]
-if {[userlist] != ""} {
-foreach usr [userlist] {
-set hst [getuser $usr hosts]
-foreach hhost $hst {
-if {[string match -nocase $hhost $uhost] && (![string match -nocase $usr $user])} {
-blacktools:tell $nick $host $hand $chan $chan1 add.5 $usr
-return 0
-}
-}
-}
-}
- 
-if {[matchattr $hand -|A $chan] && ($level == "manager")} {
-blacktools:tell $nick $host $hand $chan $chan1 add.6 none
-return 0
-}
-if {[matchattr $hand -|A $chan] && ($level == "admin")} {
-blacktools:tell $nick $host $hand $chan $chan1 add.7 none
-return 0
-}
-if {[matchattr $hand -|M $chan] && ($level == "manager")} {
-blacktools:tell $nick $host $hand $chan $chan1 add.8 none
-return 0
-}
-
-if {([regexp -nocase -- {(#[0-9]+|owner|manager|admin|senior|op|voice|protect)} $level tmp access]) && (![regexp -nocase -- {\S#} $level])} {
-    switch $access {
-       manager { 
-          set flags "-|olM"
-if {[matchattr $user m|- $chan] && [matchattr $hand -|M $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $user -|M $chan] && [matchattr $hand -|M $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $user n|- $chan] && [matchattr $hand n|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-
-if {[matchattr $user n|- $chan] && [matchattr $hand m|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-
-if {[validuser $user]} { 
-chattr $user -|-qolSOAMV $chan
-chattr $user $flags $chan 
-setuser $user XTRA LASTMODIFBY $hand
-setuser $user XTRA LASTMODIFDATE $time
-blacktools:tell $nick $host $hand $chan $chan1 add.9 $user
-} else {
-adduser $user $uhost
-chattr $user -|-SOAMV $chan
-chattr $user $flags $chan
-setuser $user XTRA LASTMODIFBY $hand
-setuser $user XTRA LASTMODIFDATE $time
-blacktools:tell $nick $host $hand $chan $chan1 add.10 "$user $uhost"
-blacktools:tell $nick $host $hand $chan $chan1 add.9 $user
-}
-}
-     admin {
-
-      set flags "-|olA"
-if {[matchattr $user -|M $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user -|M $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user m|- $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $user m|- $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-
-if {[matchattr $user -|A $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $user n|- $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user n|- $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user n|- $chan] && [matchattr $hand n|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user n|- $chan] && [matchattr $hand m|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-
-if {[validuser $user]} { 
-chattr $user -|-qolSOAMV $chan
-chattr $user $flags $chan 
-setuser $user XTRA LASTMODIFBY $hand
-setuser $user XTRA LASTMODIFDATE $time
-blacktools:tell $nick $host $hand $chan $chan1 add.11 $user
-} else {
-adduser $user $uhost
-chattr $user -|-qolSOAMV $chan
-chattr $user $flags $chan 
-setuser $user XTRA LASTMODIFBY $hand
-setuser $user XTRA LASTMODIFDATE $time
-blacktools:tell $nick $host $hand $chan $chan1 add.10 "$user $uhost"
-blacktools:tell $nick $host $hand $chan $chan1 add.11 $user
-}
-}
-
-   senior {
-     set flags "-|olS"
-if {[matchattr $user -|M $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user -|M $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user m|- $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $user m|- $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-
-if {[matchattr $user -|A $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $user n|- $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user n|- $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user n|- $chan] && [matchattr $hand n|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user n|- $chan] && [matchattr $hand m|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[validuser $user]} {
-chattr $user -|-qolSOAMV $chan
-chattr $user $flags $chan 
-setuser $user XTRA LASTMODIFBY $hand
-setuser $user XTRA LASTMODIFDATE $time
-blacktools:tell $nick $host $hand $chan $chan1 add.12 $user
-} else {
-adduser $user $uhost
-chattr $user -|-qolSOAMV $chan
-chattr $user $flags $chan 
-setuser $user XTRA LASTMODIFBY $hand
-setuser $user XTRA LASTMODIFDATE $time
-blacktools:tell $nick $host $hand $chan $chan1 add.10 "$user $uhost"
-blacktools:tell $nick $host $hand $chan $chan1 add.12 $user
-}
-}
-
-
-owner {
-if {[matchattr $hand n|- $chan]} {
- set flags "m|-"
-if {[validuser $user]} { 
-chattr $user -|-qolSOAMV $chan
-chattr $user $flags
-setuser $user XTRA LASTMODIFBY $hand
-setuser $user XTRA LASTMODIFDATE $time
-blacktools:tell $nick $host $hand $chan $chan1 add.16 $user
-} else {
-adduser $user $uhost
-chattr $user -|-qolSOAMV $chan
-chattr $user $flags 
-setuser $user XTRA LASTMODIFBY $hand
-setuser $user XTRA LASTMODIFDATE $time
-blacktools:tell $nick $host $hand $chan $chan1 add.10 "$user $uhost"
-blacktools:tell $nick $host $hand $chan $chan1 add.16 $user
-}
-}
-}
-
-op {
- set flags "-|olO"
-if {[matchattr $user -|M $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user -|M $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user m|- $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $user m|- $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-
-if {[matchattr $user -|A $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $user n|- $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user n|- $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user n|- $chan] && [matchattr $hand n|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user n|- $chan] && [matchattr $hand m|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[validuser $user]} { 
-chattr $user -|-qolSOAMV $chan
-chattr $user $flags $chan 
-setuser $user XTRA LASTMODIFBY $hand
-setuser $user XTRA LASTMODIFDATE $time
-blacktools:tell $nick $host $hand $chan $chan1 add.13 $user
-} else {
-adduser $user $uhost
-chattr $user -|-qolSOAMV $chan
-chattr $user $flags $chan 
-setuser $user XTRA LASTMODIFBY $hand
-setuser $user XTRA LASTMODIFDATE $time
-blacktools:tell $nick $host $hand $chan $chan1 add.10 "$user $uhost"
-blacktools:tell $nick $host $hand $chan $chan1 add.13 $user
-}
-}
-
-protect {
- set flags "-|H"
-if {[matchattr $user -|M $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user -|M $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user m|- $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $user m|- $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-
-if {[matchattr $user -|A $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $user n|- $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user n|- $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user n|- $chan] && [matchattr $hand n|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user n|- $chan] && [matchattr $hand m|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[validuser $user]} { 
-chattr $user -|-qHolSOAMV $chan
-chattr $user $flags $chan 
-setuser $user XTRA LASTMODIFBY $hand
-setuser $user XTRA LASTMODIFDATE $time
-blacktools:tell $nick $host $hand $chan $chan1 add.15 $user
-} else {
-adduser $user $uhost
-chattr $user -|-qolHSOAMV $chan
-chattr $user $flags $chan 
-setuser $user XTRA LASTMODIFBY $hand
-setuser $user XTRA LASTMODIFDATE $time
-blacktools:tell $nick $host $hand $chan $chan1 add.10 "$user $uhost"
-blacktools:tell $nick $host $hand $chan $chan1 add.15 $user
-}
-}
-
-
-
- voice {
- set flags "-|lV"
-if {[matchattr $user -|M $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user -|M $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user m|- $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $user m|- $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-
-if {[matchattr $user -|A $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $user n|- $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user n|- $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user n|- $chan] && [matchattr $hand n|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user n|- $chan] && [matchattr $hand m|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[validuser $user]} { 
-chattr $user -|-qolSOAMV $chan
-chattr $user $flags $chan
-setuser $user XTRA LASTMODIFBY $hand
-setuser $user XTRA LASTMODIFDATE $time
-blacktools:tell $nick $host $hand $chan $chan1 add.14 $user
-} else {
-adduser $user $uhost
-chattr $user -|-qolSOAMV $chan
-chattr $user $flags $chan 
-setuser $user XTRA LASTMODIFBY $hand
-setuser $user XTRA LASTMODIFDATE $time
-
-blacktools:tell $nick $host $hand $chan $chan1 add.10 "$user $uhost"
-blacktools:tell $nick $host $hand $chan $chan1 add.14 $user
-}
-}
-}
-}
-}
-}
-}
-
-
-
-########################## adduser ################################
-
-proc adduserpublic {nick host hand chan arg} {
-global black
-set level [lindex [split $arg] 0]
-set args [lrange [split $arg] 1 end]
-set c [lindex [split $arg] 1]
-set type 0
-set chan1 "$chan"
-if {[regexp {^[#&]} $c] && [matchattr $hand nm|- $chan]} {
-set chan "$c"
-set args [lrange [split $arg] 2 end]
-}
-adduser:process $nick $host $hand $chan $chan1 $args $level $type
-}
-
-
-proc adduser:process {nick host hand chan chan1 args level type} {
-global black botnick
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set time [ctime [unixtime]]
-set flags "nm|NMOSVA"
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-
-if {[matchattr $hand nm|- $chan]} {
-if {($level == "")  && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 adduser.1 none
-return 0
-}
-if {($level == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 adduser.2 none
-return 0
-}
-}
-if {($level == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 adduser.3 none
-return 0
-}
-if {($level == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 adduser.4 none
-return 0
-}
-
-
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-
-foreach user $args {
-if {$user != ""} {
-if {![onchan $user $chan]} { 
-blacktools:tell $nick $host $hand $chan $chan1 gl.usernotonchan $user
-return 0
-}
-
-set handle [nick2hand $user]
-set hosts [getchanhost $user $chan]
-set uhost "*!*@[lindex [split $hosts @] 1]"
-
-
-if {([string length $user]>=10) && ($black(maxhand) == "1")} {
-set user [string range $user 0 8]
-}
-if {[userlist] != ""} {
-foreach usr [userlist] {
-set hst [getuser $usr hosts]
-foreach hhost $hst {
-if {[string match -nocase $hhost $uhost] && (![string match -nocase $usr $user])} {
-blacktools:tell $nick $host $hand $chan $chan1 add.5 $usr
-return 0
-}
-}
-}
-}
-
-if {[matchattr $hand -|A $chan] && ($level == "manager")} {
-blacktools:tell $nick $host $hand $chan $chan1 add.6 none
-return 0
-}
-if {[matchattr $hand -|A $chan] && ($level == "admin")} {
-blacktools:tell $nick $host $hand $chan $chan1 add.7 none
-return 0
-}
-if {[matchattr $hand -|M $chan] && ($level == "manager")} {
-blacktools:tell $nick $host $hand $chan $chan1 add.8 none
-return 0
-}
-if {([regexp -nocase -- {(#[0-9]+|owner|manager|admin|senior|op|voice|protect)} $level tmp access]) && (![regexp -nocase -- {\S#} $level])} {
-    switch $access {
-       manager { 
-          set flags "-|olM"
-if {[matchattr $handle m|- $chan] && [matchattr $hand -|M $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $handle -|M $chan] && [matchattr $hand -|M $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $handle n|- $chan] && [matchattr $hand n|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-
-if {[matchattr $handle n|- $chan] && [matchattr $hand m|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-
-if {[validuser $user]} { 
-chattr $user -|-qolSOAMV $chan
-chattr $user $flags $chan 
-setuser $user XTRA LASTMODIFBY $hand
-setuser $user XTRA LASTMODIFDATE $time
-blacktools:tell $nick $host $hand $chan $chan1 add.9 $user
-} else {
-adduser $user $uhost
-chattr $user -|-SOAMV $chan
-chattr $user $flags $chan
-setuser $user XTRA LASTMODIFBY $hand
-setuser $user XTRA LASTMODIFDATE $time
-blacktools:tell $nick $host $hand $chan $chan1 add.10 "$user $uhost"
-blacktools:tell $nick $host $hand $chan $chan1 add.9 $user
-}
-}
-     admin {
-      set flags "-|olA"
-if {[matchattr $handle -|M $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $handle -|M $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $handle m|- $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $handle m|- $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-
-if {[matchattr $handle -|A $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $handle n|- $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $handle n|- $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $handle n|- $chan] && [matchattr $hand n|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $handle n|- $chan] && [matchattr $hand m|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[validuser $user]} {
-chattr $user -|-qolSOAMV $chan
-chattr $user $flags $chan 
-setuser $user XTRA LASTMODIFBY $hand
-setuser $user XTRA LASTMODIFDATE $time
-blacktools:tell $nick $host $hand $chan $chan1 add.11 $user
-} else {
-adduser $user $uhost
-chattr $user -|-qolSOAMV $chan
-chattr $user $flags $chan 
-setuser $user XTRA LASTMODIFBY $hand
-setuser $user XTRA LASTMODIFDATE $time
-blacktools:tell $nick $host $hand $chan $chan1 add.10 "$user $uhost"
-blacktools:tell $nick $host $hand $chan $chan1 add.11 $user
-}
-}
-   senior {
-     set flags "-|olS"
-if {[matchattr $handle -|M $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $handle -|M $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $handle m|- $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $handle m|- $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-
-if {[matchattr $handle -|A $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $handle n|- $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $handle n|- $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $handle n|- $chan] && [matchattr $hand n|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $handle n|- $chan] && [matchattr $hand m|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[validuser $user]} {
-chattr $user -|-qolSOAMV $chan
-chattr $user $flags $chan 
-setuser $user XTRA LASTMODIFBY $hand
-setuser $user XTRA LASTMODIFDATE $time
-blacktools:tell $nick $host $hand $chan $chan1 add.12 $user
-} else {
-adduser $user $uhost
-chattr $user -|-qolSOAMV $chan
-chattr $user $flags $chan 
-setuser $user XTRA LASTMODIFBY $hand
-setuser $user XTRA LASTMODIFDATE $time
-blacktools:tell $nick $host $hand $chan $chan1 add.10 "$user $uhost"
-blacktools:tell $nick $host $hand $chan $chan1 add.12 $user
-}
-}
-
-owner {
-if {[matchattr $hand n|- $chan]} {
- set flags "m|-"
-if {[validuser $user]} { 
-chattr $user -|-qolSOAMV $chan
-chattr $user $flags
-setuser $user XTRA LASTMODIFBY $hand
-setuser $user XTRA LASTMODIFDATE $time
-blacktools:tell $nick $host $hand $chan $chan1 add.16 $user
-} else {
-adduser $user $uhost
-chattr $user -|-qolSOAMV $chan
-chattr $user $flags 
-setuser $user XTRA LASTMODIFBY $hand
-setuser $user XTRA LASTMODIFDATE $time
-blacktools:tell $nick $host $hand $chan $chan1 add.10 "$user $uhost"
-blacktools:tell $nick $host $hand $chan $chan1 add.16 $user
-}
-}
-}
-
-op {
- set flags "-|olO"
-if {[matchattr $handle -|M $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $handle -|M $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $handle m|- $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $handle m|- $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-
-if {[matchattr $handle -|A $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $handle n|- $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $handle n|- $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $handle n|- $chan] && [matchattr $hand n|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $handle n|- $chan] && [matchattr $hand m|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[validuser $user]} { 
-chattr $user -|-qolSOAMV $chan
-chattr $user $flags $chan 
-setuser $user XTRA LASTMODIFBY $hand
-setuser $user XTRA LASTMODIFDATE $time
-blacktools:tell $nick $host $hand $chan $chan1 add.13 $user
-} else {
-adduser $user $uhost
-chattr $user -|-qolSOAMV $chan
-chattr $user $flags $chan 
-setuser $user XTRA LASTMODIFBY $hand
-setuser $user XTRA LASTMODIFDATE $time
-blacktools:tell $nick $host $hand $chan $chan1 add.10 "$user $uhost"
-blacktools:tell $nick $host $hand $chan $chan1 add.13 $user
-}
-}
-
-protect {
- set flags "-|H"
-if {[matchattr $handle -|M $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $handle -|M $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $handle m|- $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $handle m|- $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-
-if {[matchattr $handle -|A $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $handle n|- $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $handle n|- $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $handle n|- $chan] && [matchattr $hand n|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $handle n|- $chan] && [matchattr $hand m|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[validuser $user]} { 
-chattr $user -|-qolHSOAMV $chan
-chattr $user $flags $chan 
-setuser $user XTRA LASTMODIFBY $hand
-setuser $user XTRA LASTMODIFDATE $time
-blacktools:tell $nick $host $hand $chan $chan1 add.15 $user
-} else {
-adduser $user $uhost
-chattr $user -|-qolHSOAMV $chan
-chattr $user $flags $chan 
-setuser $user XTRA LASTMODIFBY $hand
-setuser $user XTRA LASTMODIFDATE $time
-blacktools:tell $nick $host $hand $chan $chan1 add.10 "$user $uhost"
-blacktools:tell $nick $host $hand $chan $chan1 add.15 $user
-}
-}
-
-
-
- voice {
- set flags "-|lV"
-if {[matchattr $handle -|M $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $handle -|M $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $handle m|- $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $handle m|- $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-
-if {[matchattr $handle -|A $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $handle n|- $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $handle n|- $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $handle n|- $chan] && [matchattr $hand n|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $handle n|- $chan] && [matchattr $hand m|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[validuser $user]} { 
-chattr $user -|-qolSOAMV $chan
-chattr $user $flags $chan
-setuser $user XTRA LASTMODIFBY $hand
-setuser $user XTRA LASTMODIFDATE $time
-blacktools:tell $nick $host $hand $chan $chan1 add.14 $user
-} else {
-adduser $user $uhost
-chattr $user -|-qolSOAMV $chan
-chattr $user $flags $chan 
-setuser $user XTRA LASTMODIFBY $hand
-setuser $user XTRA LASTMODIFDATE $time
-blacktools:tell $nick $host $hand $chan $chan1 add.10 "$user $uhost"
-blacktools:tell $nick $host $hand $chan $chan1 add.14 $user
-}
-}
-}
-}
-}
-}
-}
-
-
-
-
-proc publicadd {nick host hand chan arg} {
-global black
-set level [lindex [split $arg] 0]
-set time [ctime [unixtime]]
-set type 0
-set chan1 "$chan"
-set args [lrange [split $arg] 1 end]
-set c [lindex [split $arg] 1]
-if {[regexp {^[#&]} $c] && [matchattr $hand nm|- $chan]} {
-set chan "$c"
-set args [lrange [split $arg] 2 end]
-}
-if {[matchattr $hand -|q $chan]} { 
-blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-add:process $args $time $level $hand $host $chan $chan1 $nick $type
-}
-
-
-############################## delacc ################################
-
-proc delaccpublic {nick host hand chan arg} {
-global black
-set args [lrange [split $arg] 0 end]
-set type 0
-set chan1 "$chan"
-set c [lindex [split $arg] 0]
-if {[regexp {^[#&]} $c] && [matchattr $hand nm|- $chan]} {
-set chan "$c"
-set args [lrange [split $arg] 1 end]
-}
-delacc:process $nick $host $hand $chan $chan1 $args $type
-}
-
-proc delacc:process {nick host hand chan chan1 args type} {
-global botnick black
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-
-if {[matchattr $hand nm|- $chan]} {
-if {($args == "")  && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 delacc.1 none
-return 0
-}
-if {($args == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 delacc.2 none
-return 0
-}
-}
-if {($args == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 delacc.3 none
-return 0
-}
-if {($args == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 delacc.4 none
-return 0
-}
-
-
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-
-
-foreach user $args {
-if {$user != ""} {
-if {[matchattr $user -|M $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user -|M $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user m|- $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $user m|- $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-
-if {[matchattr $user -|A $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $user n|- $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user n|- $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user n|- $chan] && [matchattr $hand n|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user n|- $chan] && [matchattr $hand m|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-
-if {![matchattr $user nm|aolSOAMV $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noaccess none
-return 0
-}
-
-if {[validuser $user]} { 
-chattr $user -|-qaolSOAMV $chan
-blacktools:tell $nick $host $hand $chan $chan1 delacc.5 $user
-} else { blacktools:tell $nick $host $hand $chan $chan1 gl.nomem none }
-}
-}
-}
-
-############################## del #####################################
-
-proc delpublic {nick host hand chan arg} {
-global black
-set args [lrange [split $arg] 0 end]
-set type 0
-set chan1 "$chan"
-del:process $nick $host $hand $chan $chan1 $args $type
-}
-
-proc del:process {nick host hand chan chan1 args type} {
-global botnick black
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-
-if {($args == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 del.1 none
-return 0
-}
-if {($args == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 del.2 none
-return 0
-}
-
-foreach user $args {
-if {$user != ""} {
-if {[matchattr $user -|M $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user -|M $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user m|- $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $user m|- $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-
-if {[matchattr $user -|A $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $user n|- $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user n|- $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user n|- $chan] && [matchattr $hand n|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user n|- $chan] && [matchattr $hand m|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[validuser $user]} { 
-deluser $user
-blacktools:tell $nick $host $hand $chan $chan1 del.3 $user
-} else { blacktools:tell $nick $host $hand $chan $chan1 gl.nomem none }
-}
-}
-}
-
-################################ addhost #############################
-
-proc addhostpublic {nick host hand chan arg} {
-global black
-set user [lindex [split $arg] 0]
-set type 0
-set chan1 "$chan"
-set hosts [lrange [split $arg] 1 end]
-addhost:process $nick $host $hand $chan $chan1 $user $hosts $type
-}
-
-proc addhost:process {nick host hand chan chan1 user hosts type} {
-global black botnick
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set time [ctime [unixtime]]
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-
-if {($user == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 addhost.1 none
-return 0
-}
-if {($user == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 addhost.2 none
-return 0
-}
-
-
-if {[matchattr $user -|M $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user -|M $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user m|- $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $user m|- $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-
-if {[matchattr $user -|A $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $user n|- $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user n|- $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user n|- $chan] && [matchattr $hand n|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user n|- $chan] && [matchattr $hand m|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-
-if {[validuser $user]} {
-set hhost [getuser $user hosts]
-foreach hhost $hhost {
-if {[string match -nocase $hosts $hhost]} {
-blacktools:tell $nick $host $hand $chan $chan1 addhost.3 "$user $hosts"
-return 0
-}
-}
-setuser $user HOSTS $hosts
-setuser $user XTRA LASTMODIFBY $hand
-setuser $user XTRA LASTMODIFDATE $time
-blacktools:tell $nick $host $hand $chan $chan1 addhost.4 "$user $hosts"
-} else { blacktools:tell $nick $host $hand $chan $chan1 gl.nomem none }
-}
-
-
-############################### delhost ############################
-
-
-proc delhostpuplic {nick host hand chan arg} {
-global black
-set user [lindex [split $arg] 0]
-set type 0
-set chan1 "$chan"
-set hosts [lrange [split $arg] 1 end]
-delhost:process $nick $host $hand $chan $chan1 $user $hosts $type
-}
-
-
-proc delhost:process {nick host hand chan chan1 user hosts type} {
-global black botnick
-set time [ctime [unixtime]]
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-
-if {($user == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 delhost.1 none
-return 0
-}
-if {($user == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 delhost.2 none
-return 0
-}
-
-
-if {[matchattr $user -|M $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user -|M $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user m|- $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $user m|- $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-
-if {[matchattr $user -|A $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $user n|- $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user n|- $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user n|- $chan] && [matchattr $hand n|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user n|- $chan] && [matchattr $hand m|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-
-if {[validuser $user]} {
-
-set hhost [getuser $user hosts]
-foreach hhost $hhost {
-if {[string match -nocase $hhost $hosts]} {
-set foundhost 1
-}
-}
-if {![info exists foundhost]} {
-blacktools:tell $nick $host $hand $chan $chan1 delhost.3 "$user $hosts"
-return 0
-}
-
-delhost $user $hosts
-blacktools:tell $nick $host $hand $chan $chan1 delhost.4 "$user $hosts"
-} else { 
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomem none
- }
-}
-
-
-proc chuserpublic {nick host hand chan arg} {
-global black
-set user [lindex [split $arg] 0]
-set type 0
-set chan1 "$chan"
-set chandle [lindex [split $arg] 1]
-chuser:process $nick $host $hand $chan $chan1 $user $chandle $type
-}
-
-proc chuser:process {nick host hand chan chan1 user chandle type} {
-global botnick black
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set time [ctime [unixtime]]
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-
-if {($user == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 chuser.1 none
-return 0
-}
-if {($user == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 chuser.2 none
-return 0
-}
-
-if {[matchattr $user -|M $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user -|M $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user m|- $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $user m|- $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-
-if {[matchattr $user -|A $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $user n|- $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user n|- $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user n|- $chan] && [matchattr $hand n|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0
-}
-if {[matchattr $user n|- $chan] && [matchattr $hand m|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-
-if {[validuser $user]} {
-chhandle $user $chandle
-setuser $chandle XTRA LASTMODIFBY $hand
-setuser $chandle XTRA LASTMODIFDATE $time
-blacktools:tell $nick $host $hand $chan $chan1 chuser.3 "$user $chandle"
-} else {blacktools:tell $nick $host $hand $chan $chan1 gl.nomem none }
-}
-
-proc userlist:execute {hand host level chan chan1 nick type} {
-global black botnick
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-
-if {[matchattr $hand nm|- $chan]} {
-if {($level == "")  && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 userlist.1 none
-return 0
-}
-if {($level == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 userlist.2 none
-return 0
-}
-}
-if {($level == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 userlist.3 none
-return 0
-}
-if {($level == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 userlist.4 none
-return 0
-}
-
-
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-
-
-if {([regexp -nocase -- {(#[0-9]+|manager|protect|admin|senior|op|voice|all|owner)} $level tmp access]) && (![regexp -nocase -- {\S#} $level])} {
-    switch $access {
-     manager {
-     set flags "-|M"
-    set numar [llength [userlist $flags $chan]]
-    set list [userlist $flags $chan]
-foreach user [wordwrap [join $list "  "] 250 ,] {
-    if {$list == ""} { set user "NONE" }
-blacktools:tell $nick $host $hand $chan $chan1 userlist.5 $numar
-blacktools:tell $nick $host $hand $chan $chan1 userlist.6 none
-blacktools:tell $nick $host $hand $chan $chan1 userlist.7 $user
-}
-}
-
-admin {
-  set flags "-|A"
-  set numar [llength [userlist $flags $chan]]
-  set list [userlist $flags $chan]
-foreach user [wordwrap [join $list " , "] 250 ,] {
-if {$list == ""} { set user "NONE" }
-blacktools:tell $nick $host $hand $chan $chan1 userlist.8 $numar
-blacktools:tell $nick $host $hand $chan $chan1 userlist.9 none
-blacktools:tell $nick $host $hand $chan $chan1 userlist.7 $user
-}
-}
-
-senior {
-set flags "-|S"
-    set list [userlist $flags $chan]
-    set numar [llength [userlist $flags $chan]]
-foreach user [wordwrap [join $list " , "] 250 ,] {
-if {$list == ""} { set user "NONE" }
-blacktools:tell $nick $host $hand $chan $chan1 userlist.10 $numar
-blacktools:tell $nick $host $hand $chan $chan1 userlist.11 none
-blacktools:tell $nick $host $hand $chan $chan1 userlist.7 $user
-}
-}
-
-protect {
-set flags "-|H"
-set list [userlist $flags $chan]
-    set numar [llength [userlist $flags $chan]]
-foreach user [wordwrap [join $list " , "] 250 ,] {
-if {$list == ""} { set user "NONE" }
-blacktools:tell $nick $host $hand $chan $chan1 userlist.12 $numar
-blacktools:tell $nick $host $hand $chan $chan1 userlist.13 none
-blacktools:tell $nick $host $hand $chan $chan1 userlist.7 $user
-}
-}
-
-op  {
-set flags "-|O"
-    set list [userlist $flags $chan]
-    set numar [llength [userlist $flags $chan]]
-foreach user [wordwrap [join $list " , "] 250 ,] {
-if {$list == ""} { set user "NONE" }
-blacktools:tell $nick $host $hand $chan $chan1 userlist.14 $numar
-blacktools:tell $nick $host $hand $chan $chan1 userlist.15 none
-blacktools:tell $nick $host $hand $chan $chan1 userlist.7 $user
-}
-}
-
-owner {
-if {[matchattr $hand nm|- $chan]} {
-set bossflags "n|-"
-set ownerflags "m|-"
-set listbossowner [userlist $bossflags]
-set listowner [userlist $ownerflags]
-blacktools:tell $nick $host $hand $chan $chan1 userlist.16 $listbossowner
-blacktools:tell $nick $host $hand $chan $chan1 userlist.17 $listowner
-}
-}
-
-voice {
-set flags "-|V"
-    set numar [llength [userlist $flags $chan]]
-    set list [userlist $flags $chan]
-foreach user [wordwrap [join $list " , "] 250 ,] {
-if {$list == ""} { set user "NONE" }
-blacktools:tell $nick $host $hand $chan $chan1 userlist.18 $numar
-blacktools:tell $nick $host $hand $chan $chan1 userlist.19 none
-blacktools:tell $nick $host $hand $chan $chan1 userlist.7 $user
-}
-}
-
-all {
-array set flgc [list]
-set flags "-|MNASVO"
-set list [userlist $flags $chan]
-set numar [llength [userlist $flags $chan]]
-foreach user $list {
-if {[matchattr $user -|V $chan]} { 
-lappend flgc(VOICE) $user
-
-} elseif {[matchattr $user -|O $chan]} {
- 
-lappend flgc(OP) $user
-} elseif {[matchattr $user -|S $chan]} {
-
-lappend flgc(SENIOR) $user
-
-} elseif {[matchattr $user -|A $chan]} {
- 
-lappend flgc(ADMINISTRATOR) $user
-
-} elseif {[matchattr $user -|M $chan]} {
- 
-lappend flgc(MANAGER) $user
- 
-}
-}
-
-foreach flw [array names flgc] {
-lappend messall [join 4$flgc($flw) " , "] -> 12($flw)
-}
-if {$list == ""} { set messall "NONE" }
-blacktools:tell $nick $host $hand $chan $chan1 userlist.20 $numar
-blacktools:tell $nick $host $hand $chan $chan1 userlist.21 none
-foreach mes [wordwrap [join $messall] 250] {
-blacktools:tell $nick $host $hand $chan $chan1 userlist.7 $mes
-}
-}
-
-}
-}
-}
-
-proc wordwrap {str {len 100} {splitChr { }}} { 
-   set out [set cur {}]; set i 0 
-   foreach word [split [set str][unset str] $splitChr] { 
-     if {[incr i [string len $word]]>$len} { 
-         lappend out [join $cur $splitChr] 
-         set cur [list $word] 
-         set i [string len $word] 
-      } { 
-         lappend cur $word 
-      } 
-      incr i 
-   } 
-   lappend out [join $cur $splitChr] 
-} 
-
-
-
-proc publicuserlist {nick host hand chan arg} {
-global black
-set level [lindex [split $arg] 0]
-set type 0
-set chan1 "$chan"
-if {[regexp {^[#&]} $level] && [matchattr $hand nm|- $chan]} {
-set chan "$level"
-set level [lindex [split $arg] 1]
-} 
-userlist:execute $hand $host $level $chan $chan1 $nick $type
-}
-
-
-############################### channels ########################
-
-proc channelspublic {nick host hand chan arg} {
-global botnick black
-set chan1 "$chan"
-channels:process $nick $host $hand $chan $chan1
-}
-
-proc channels:process {nick host hand chan chan1} {
-global botnick black
-set num [llength [channels]]
-set minusers "5"
-array set status [list]
-set notonchan "(NoT on ChaN)"
-set notenough "(users < $minusers)"
-set suspended "(SUSPENDED)"
-foreach c [channels] {
-set usersnumber [llength [chanlist $c]]
-if {[channel get $c inactive]} {
-lappend status($c) "4$c $suspended"
-} elseif {![onchan $botnick $c]} {
-lappend status($c) "4$c $notonchan"
-} elseif {[onchan $botnick $c] && (![botisop $c])} {
-lappend status($c) "4$c"
-} elseif {[onchan $botnick $c] && ($usersnumber < $minusers)} {
-lappend status($c) "4$c $notenough"
-}
-if {![info exists status($c)]} {
-lappend status($c) "1@$c"
-}
-
-lappend message "[join $status($c) ", "]"
-
-}
-blacktools:tell $nick $host $hand $chan $chan1 channels.1 $num
-foreach word [wordwrap [join $message] 350 ,] {
-blacktools:tell $nick $host $hand $chan $chan1 channels.2 $word
-}
-}
-
-
-############################### info ############################
-
-proc infopublic {nick host hand chan arg} {
-global black
-set user [lindex [split $arg] 0]
-set type 0
-set chan1 "$chan"
-if {[regexp {^[\\+!#&]} $user] && [matchattr $hand nm|- $chan]} {
-set chan "$user"
-set user [lindex [split $arg] 1]
-}
-info:process $nick $host $hand $chan $chan1 $user $type
-}
-
-proc info:process {nick host hand chan chan1 user type} {
-global botnick black
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set time [ctime [unixtime]]
-array set flg [list]
-if {[matchattr $hand nm|- $chan]} {
-if {($user == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 info.1 none
-return 0
-}
-if {($user == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 info.2 none
-return 0
-}
-}
-if {($user == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 info.3 none
-return 0
-}
-if {($user == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 info.4 none
-return 0
-}
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-
-if {[validuser $user]} {
-} else { blacktools:tell $nick $host $hand $chan $chan1 gl.nomem none 
-return 0
-}
-
-if {[matchattr $hand nm|- $chan]} {
-foreach c [channels] {
-if {[matchattr $user -|V $c]} { 
-set fl "VOICE"
-lappend flg($fl) $c
-} elseif {[matchattr $user -|O $c]} { 
-set fl "OP" 
-lappend flg($fl) $c
-} elseif {[matchattr $user -|S $c]} {
- set fl "SENIOR"
-lappend flg($fl) $c
-} elseif {[matchattr $user -|A $c]} {
-set fl "ADMINISTRATOR" 
-lappend flg($fl) $c
-} elseif {[matchattr $user -|M $c]} {
-set fl "MANAGER" 
-lappend flg($fl) $c 
-}
-
-}
-foreach cf [array names flg] {
-
-lappend exit 1[join $flg($cf) ,] 12($cf) |
-}
-
-}
-
-if {![matchattr $user nm|OAHSMNV $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.noaccess none
-if {![info exists exit]} { set exit "1NONE"}
-if {[matchattr $hand nm|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 info.5 "[join $exit]"
-if {[getuser $user HOSTS] != ""} {
-set hosts [getuser $user hosts]
-blacktools:tell $nick $host $hand $chan $chan1 info.6 $hosts
-}
-set lastseen [getuser $user LASTON $chan]
-if {($lastseen == "0") || ($lastseen == "")} {
-set seened "1NONE"
-} else { set seened [ctime $lastseen] }
-blacktools:tell $nick $host $hand $chan $chan1 info.7 $seened
-}
-return 0
-}
-
-set getlang [string tolower [getuser $hand XTRA OUTPUT_LANG]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set suspendat "$black(say.$getlang.info.10)"
-
-set cflags [chattr $user | $chan]
-blacktools:tell $nick $host $hand $chan $chan1 info.8 $user
-blacktools:tell $nick $host $hand $chan $chan1 info.9 $time
-if {[matchattr $user -|V $chan]} { set flags "VOICE" } elseif {[matchattr $user -|O $chan]} { set flags "OP" } elseif {[matchattr $user -|S $chan]} { set flags "SENIOR" } elseif {[matchattr $user -|A $chan]} { set flags "ADMINISTRATOR" } elseif {[matchattr $user -|H $chan]} { set flags "PROTECT"}
-if {[matchattr $user -|M $chan]} { set flags "MANAGER" } elseif {[matchattr $user n|- $chan]} { set flags "THE BOSS OWNER" } elseif {[matchattr $user m|- $chan]} { set flags "OWNER" } elseif {$cflags == "-|-"} {puthelp "NOTICE $nick :$user nu are ACCESS pe acest canal !" 
-return 0
-}
-
-
-if {[matchattr $user -|q $chan]} {
-if {[matchattr $user -|V $chan]} { set flags "VOICE ($suspendat)" } elseif {[matchattr $user -|O $chan]} { set flags "OP ($suspendat)" } elseif {[matchattr $user -|S $chan]} { set flags "SENIOR ($suspendat)" } elseif {[matchattr $user -|A $chan]} { set flags "ADMINISTRATOR ($suspendat)" } elseif {[matchattr $user -|O $chan]} { set flags "PROTECT ($suspendat)"}
-if {[matchattr $user -|M $chan]} { set flags "MANAGER ($suspendat)" } elseif {[matchattr $user m|- $chan]} { set flags "OWNER ($suspendat)" } elseif {$cflags == "-|-"} {puthelp "NOTICE $nick :$user 
-
-S pe acest canal !" 
-return 0
-}
-}
-
-blacktools:tell $nick $host $hand $chan $chan1 info.11 "$cflags $flags"
-if {[getuser $user INFO] != ""} {
-blacktools:tell $nick $host $hand $chan $chan1 info.12 "[getuser $user INFO]"
-}
-
- 
-set date [getuser $user XTRA LASTMODIFDATE]
-if {[matchattr $user n|- $chan]} { set date "No Date" }
-if {$date == ""} { set date "No Date" }
-
- set lastt [getuser $user XTRA LASTMODIFBY]
- if {$lastt == ""} { set lastt "No info" }
- if {[matchattr $user n|- $chan]} { set lastt "NONE" }
-blacktools:tell $nick $host $hand $chan $chan1 info.13 "$lastt $date"
-
-if {[getuser $user HOSTS] != ""} {
-set hosts [getuser $user hosts]
-blacktools:tell $nick $host $hand $chan $chan1 info.6 $hosts
-}
-
-if {![info exists exit]} { set exit "NONE"}
-if {![matchattr $user nm|- $chan] && [matchattr $hand nm|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 info.5 "[join $exit]"
-}
-
-set lastseen [getuser $user LASTON $chan]
-if {($lastseen == "0") || ($lastseen == "")} { 
-blacktools:tell $nick $host $hand $chan $chan1 info.14 none
-blacktools:tell $nick $host $hand $chan $chan1 info.15 $user
-blacktools:tell $nick $host $hand $chan $chan1 info.16 none
-return 0
-}
-set seened [ctime $lastseen]
-blacktools:tell $nick $host $hand $chan $chan1 info.17 $seened
-blacktools:tell $nick $host $hand $chan $chan1 info.15 $user
-blacktools:tell $nick $host $hand $chan $chan1 info.16 none
-}
-
-
-################################# s ###############################
-
-proc spublic {nick host hand chan arg} {
-global black
-set type 0
-set chan1 "$chan"
-set users [lindex [split $arg] 0]
-if {[regexp {^[#&]} $users] && [matchattr $hand nm|- $chan]} {
-set chan "$users"
-set users [lindex [split $arg] 1]
-}
-s:process $nick $host $hand $chan $chan1 $users $type
-}
-
-proc s:process {nick host hand chan chan1 users type} {
-global botnick black
-set flags "-|q"
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set time [ctime [unixtime]]
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-
-if {[matchattr $hand nm|- $chan]} {
-if {($users == "")  && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 s.1 none
-return 0
-}
-if {($users == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 s.2 none
-return 0
-}
-}
-if {($users == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 s.3 none
-return 0
-}
-if {($users == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 s.4 none
-return 0
-}
-
-
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-
-
-if {[matchattr $users -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 s.5 $users
-return 0
-}
-
-if {![validuser $users]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomem none
-return 0
-}
-if {![matchattr $users nm|OASMNV $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.noaccess none
-return 0
-}
- 
-
-if {[matchattr $users -|M $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $users -|M $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $users m|- $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $users m|- $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-
-if {[matchattr $users -|A $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $users n|- $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $users n|- $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $users n|- $chan] && [matchattr $hand n|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $users n|- $chan] && [matchattr $hand m|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-
-
-chattr $users $flags $chan
-setuser $users XTRA LASTMODIFBY $hand
-setuser $users XTRA LASTMODIFDATE $time
-blacktools:tell $nick $host $hand $chan $chan1 s.6 $users
-} 
-
-
-################################## us ################################
-
-proc uspublic {nick host hand chan arg} {
-global black
-set type 0
-set chan1 "$chan"
-set users [lindex [split $arg] 0]
-if {[regexp {^[\\+!#&]} $users] && [matchattr $hand nm|- $chan]} {
-set chan "$users"
-set users [lindex [split $arg] 1]
-}
-us:process $nick $host $hand $chan $chan1 $users $type
-}
-
-proc us:process {nick host hand chan chan1 users type} {
-global botnick black
-set flags "-|-q"
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set time [ctime [unixtime]]
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-if {[matchattr $hand nm|- $chan]} {
-if {($users == "")  && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 us.1 none
-return 0
-}
-if {($users == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 us.2 none
-return 0
-}
-}
-if {($users == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 us.3 none
-return 0
-}
-if {($users == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 us.4 none
-return 0
-}
-
-
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-
-if {![validuser $users]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomem none
-return 0
-}
-if {![matchattr $users nm|OASMNV $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.noaccess none
-return 0
-}
-
-if {![matchattr $users -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 us.5 $users
-return 0
-}
-
-if {[matchattr $users -|M $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $users -|M $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $users m|- $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $users m|- $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-
-if {[matchattr $users -|A $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $users n|- $chan] && [matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $users n|- $chan] && [matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $users n|- $chan] && [matchattr $hand n|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-if {[matchattr $users n|- $chan] && [matchattr $hand m|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.nomodif none
-return 0 
-}
-
-setuser $users XTRA LASTMODIFBY $hand
-setuser $users XTRA LASTMODIFDATE $time
-chattr $users $flags $chan
-blacktools:tell $nick $host $hand $chan $chan1 us.6 $users
-} 
-
-############################## ping ##################################
-
-proc pings {nick host hand chan arg} {
-putquick "PRIVMSG $nick :\001PING [expr {abs([clock clicks -milliseconds])}]\001"
-return 0
-}
-
-proc pingpublic {nick host hand dest key arg} {
-global botnick black
-set ping [split $arg "."]
-set pingreply [lindex $ping 0]
-if {[regexp -- {^-?[0-9]+$} $pingreply]} {
-set second "[expr {abs([expr [expr {abs([clock clicks -milliseconds])} - $pingreply] / 1000.000])}]"
-blacktools:tell:prv $nick $host $hand ping.1 $second
-}
-}
-
-############################### time ##################################
-
-proc timepublic {nick host hand chan arg} {
-global black
-set chan1 "$chan"
-set time [ctime [unixtime]]
-blacktools:tell $nick $host $hand $chan $chan1 time.1 $time
-}
-
-################################### vers ###############################
-
-proc verspublic {nick host hand chan arg} {
-global black
-set why [lindex [split $arg] 0]
-set chan1 "$chan"
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-if {$why == ""} { blacktools:tell $nick $host $hand $chan $chan1 vers.1 none
-return 0
-}
-vers:process $nick $host $hand $chan $chan1 $why
-}
-
-proc vers:process {nick host hand chan chan1 why} {
-global botnick black
-set ::verschan $chan
-set ::versnick $nick
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-
-if {![onchan $why $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan $why
-return 0
-}
-putserv "PRIVMSG $why :\001VERSION\001"
-
-}
-
-
-proc ctcpvers {nickname hostname handle dest key arg} {
-set text [split $arg]
-set chan $::verschan
-set nick $::versnick
-blacktools:tell:prv $nick $hostname $handle vers.3 "$nickname $text"
-}
-
-################################### whois ###############################
-
-proc whoispublic {nick host hand chan arg} {
-global black
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set chan1 "$chan"
-set who [lindex [split $arg] 0]
-if {$who == ""} { blacktools:tell $nick $host $hand $chan $chan1 whois.1 none
-return 0
-}
-whois:process $nick $host $hand $chan $chan1 $who
-}
-
-
-
-proc whois:process {nick host hand chan chan1 who} {
-global botnick black
-set ::wnick $nick
-set ::hand $hand
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-
-putquick "WHOIS $who $who"
-bind RAW - 311 winfo
-bind RAW - 319 wchannels
-bind RAW - 401 nonicks
-}
-
-proc winfo { from keyword arguments } {
-global black
- set hand $::hand
- set nick $::wnick
- set nickname [lindex [split $arguments] 1]
- set ident [lindex [split $arguments] 2]
- set host [lindex [split $arguments] 3]
- set realname [string range [join [lrange $arguments 5 end]] 1 end]
-
-blacktools:tell:prv $nick hostname $hand whois.3 "$nickname 4host - 12*!*$ident@$host * $realname"
-
-unbind RAW - 311 winfo
-
-}
-
-proc wchannels { from keyword arguments } {
-global black
-set hand $::hand
-set nick $::wnick
-set channels [string range [join [lrange $arguments 2 end]] 1 end]
-blacktools:tell:prv $nick hostname $hand whois.4 $channels
-
-unbind RAW - 319 wchannels
-
-}
-
-proc nonicks { from keyword arguments } {
-global black
-set hand $::hand
-set nick $::wnick
-blacktools:tell:prv $nick hostname $hand whois.5 none
-unbind RAW - 401 nonicks
-}
-
-
-################################### clear ###############################
-
-
-proc clearpublic {nick host hand chan arg} {
-global black
-set why [lindex [split $arg] 0]
-set chan1 "$chan"
-set type 0
-if {[regexp {^[\\+!#&]} $why] && [matchattr $hand nm|- $chan]} {
-set chan "$why"
-set why [lindex [split $arg] 1]
-}
-clear:process $nick $host $hand $chan $chan1 $why $type
-}
-
-proc clear:process {nick host hand chan chan1 why type} {
-global botnick black
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-if {[matchattr $hand nm|- $chan]} {
-if {($why == "")  && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 clear.1 none
-return 0
-}
-if {($why == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 clear.2 none
-return 0
-}
-}
-if {($why == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 clear.3 none
-return 0
-}
-if {($why == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 clear.4 none
-return 0
-}
-
-
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-
-
-if {([regexp -nocase -- {(#[0-9]+|banlist|userlist)} $why tmp cleanlist]) && (![regexp -nocase -- {\S#} $why])} {
-    switch $cleanlist {
-       userlist {
-set list [userlist -|AOSV $chan]
-
-foreach user $list {
-chattr $user -|-AOVS $chan
-}
-blacktools:tell $nick $host $hand $chan $chan1 clear.5 none
-}
-
-banlist {
-set i 0
-foreach ban [banlist $chan] {
-set theban [lindex $ban 0]
-if {[string match "*" $theban]} {
-set i [expr $i +1]
-killchanban $chan $theban
-}
-}
-blacktools:tell $nick $host $hand $chan $chan1 clear.6 $i
-}
-
-}
-}
-}
-
-
-################################# addbot ################################
-
-
-proc addbotpublic {nick host hand chan arg} {
-global black
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set chan1 "$chan"
-set why [lindex [split $arg] 0]
-set host [lindex [split $arg] 1]
-if {$why == ""} { blacktools:tell $nick $host $hand $chan $chan1 addbot.1 none
-return 0
-}
-addbot:process $nick $host $hand $chan $chan1 $why $host
-}
-
-
-proc addbot:process {nick host hand chan chan1 why host} {
-global botnick black
-set flags "ao|ao"
-if {[validuser $why]} {
-blacktools:tell $nick $host $hand $chan $chan1 addbot.3 $why
-return 0
-}
-
-addbot $why $host
-chattr $why $flags $chan
-blacktools:tell $nick $host $hand $chan $chan1 addbot.4 "$why $host"
-}
-
-
-
-proc autovonjoin {nick host hand chan} {
-if {[channel get $chan autovoice]} {
-pushmode $chan +v $nick
-}
-}
-
-
-
-proc autoponjoin {nick host hand chan} {
-if {[channel get $chan autoop]} {
-pushmode $chan +o $nick
-}
-}
-
-############################# addop #################################
-
-proc addoppublic {nick host hand chan arg} {
-global black
-set user [lindex [split $arg] 0]
-set type 0
-set chan1 "$chan"
-if {[regexp {^[\\+!#&]} $user] && [matchattr $hand nm|- $chan]} {
-set chan "$user"
-set user [lindex [split $arg] 1]
-}
-addop:process $nick $host $hand $chan $chan1 $user $type
-}
-
-
-proc addop:process {nick host hand chan chan1 user type} {
-global black botnick
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set flag "-|a"
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-if {[matchattr $hand nm|- $chan]} {
-if {($user == "")  && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 addop.1 none
-return 0
-}
-if {($user == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 addop.2 none
-return 0
-}
-}
-if {($user == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 addop.3 none
-return 0
-}
-if {($user == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 addop.4 none
-return 0
-}
-
-
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-
-if {![validuser $user]} { blacktools:tell $nick $host $hand $chan $chan1 gl.nomem none
-return 0
-}
-
-if {[matchattr $user -|a $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 addop.5 $user
-return 0
-}
-
-chattr $user $flag $chan
-blacktools:tell $nick $host $hand $chan $chan1 addop.6 $user
-}
-
-proc addopjoin {nick host hand chan} {
-if {[matchattr $hand -|a $chan]} {
-pushmode $chan +o $nick
-}
-}
-
-
-########################### addvoice ################################
-
-proc addvoicepublic {nick host hand chan arg} {
-global black
-set user [lindex [split $arg] 0]
-set type 0
-set chan1 "$chan"
-if {[regexp {^[\\+!#&]} $user] && [matchattr $hand nm|- $chan]} {
-set chan "$user"
-set user [lindex [split $arg] 1]
-}
-addvoice:process $nick $host $hand $chan $chan1 $user $type
-}
-
-proc addvoice:process {nick host hand chan chan1 user type} {
-global black botnick
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set flag "-|g"
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-
-if {[matchattr $hand nm|- $chan]} {
-if {($user == "")  && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 addvoice.1 none
-return 0
-}
-if {($user == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 addvoice.2 none
-return 0
-}
-}
-if {($user == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 addvoice.3 none
-return 0
-}
-if {($user == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 addvoice.4 none
-return 0
-}
-
-
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-
-if {![validuser $user]} { blacktools:tell $nick $host $hand $chan $chan1 gl.nomem none
-return 0
-}
-
-if {[matchattr $user -|g $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 addvoice.5 $user
-return 0
-}
-
-chattr $user $flag $chan
-blacktools:tell $nick $host $hand $chan $chan1 addvoice.6 $user
-}
-
-proc addvoicejoin {nick host hand chan} {
-if {[matchattr $hand -|g $chan]} {
-pushmode $chan +v $nick
-}
-}
-
-
-
-
-
-########################### delop ##################################
-
-proc deloppublic {nick host hand chan arg} {
-global black botnick
-set user [lindex [split $arg] 0]
-set type 0
-set chan1 "$chan"
-if {[regexp {^[\\+!#&]} $user] && [matchattr $hand nm|- $chan]} {
-set chan "$user"
-set user [lindex [split $arg] 1]
-}
-delop:process $nick $host $hand $chan $chan1 $user $type
-}
-
-proc delop:process {nick host hand chan chan1 user type} {
-global black botnick
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set flag "-|-a"
-if {[matchattr $hand -|q $chan]} { 
-blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-
-if {[matchattr $hand nm|- $chan]} {
-if {($user == "")  && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 delop.1 none
-return 0
-}
-if {($user == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 delop.2 none
-return 0
-}
-}
-if {($user == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 delop.3 none
-return 0
-}
-if {($user == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 delop.4 none
-return 0
-}
-
-
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-
-if {![onchan $botnick $chan]} {
-
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-
-if {![validuser $user]} { blacktools:tell $nick $host $hand $chan $chan1 gl.nomem none
-return 0
-}
-
-if {[matchattr $user -|a $chan]} {
-set noautoop 1
-}
-
-if {![info exists noautoop]} {
-blacktools:tell $nick $host $hand $chan $chan1 delop.5 $user
-return 0
-}
-
-chattr $user $flag $chan
-blacktools:tell $nick $host $hand $chan $chan1 delop.6 $user
-}
-
-
-
-############################ delvoice ###############################
-
-proc delvoicepublic {nick host hand chan arg} {
-global black
-set user [lindex [split $arg] 0]
-set type 0
-set chan1 "$chan"
-if {[regexp {^[\\+!#&]} $user] && [matchattr $hand nm|- $chan]} {
-set chan "$user"
-set user [lindex [split $arg] 1]
-}
-delvoice:process $nick $host $hand $chan $chan1 $user $type
-}
-
-
-
-proc delvoice:process {nick host hand chan chan1 user type} {
-global black botnick
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set flag "-|-g"
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-
-if {[matchattr $hand nm|- $chan]} {
-if {($user == "")  && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 delvoice.1 none
-return 0
-}
-if {($user == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 delvoice.2 none
-return 0
-}
-}
-if {($user == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 delvoice.3 none
-return 0
-}
-if {($user == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 delvoice.4 none
-return 0
-}
-
-
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-
-if {![validuser $user]} { blacktools:tell $nick $host $hand $chan $chan1 gl.nomem none
-return 0
-}
-
-if {[matchattr $user -|g $chan]} {
-set noautovoice 1
-}
-
-if {![info exists noautovoice]} {
-blacktools:tell $nick $host $hand $chan $chan1 delvoice.5 $user
-return 0
-}
-
-chattr $user $flag $chan
-blacktools:tell $nick $host $hand $chan $chan1 delvoice.6 $user
-}
-
-
-
-############################## activ ##################################
-
-proc activpublic {nick host hand chan arg} { 
-global black
-set type 0
-set chan1 "$chan"
-set user [lindex [split $arg] 0]
-if {[regexp {^[#&]} $user] && [matchattr $hand nm|- $chan]} {
-set chan "$user"
-set user [lindex [split $arg] 1]
-}
-activ:process $nick $host $hand $chan $chan1 $user $type
-}
-
-proc activ:process {nick host hand chan chan1 user type} {
-global botnick black
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-if {[matchattr $hand nm|- $chan]} {
-if {($user == "")  && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 activ.1 none
-return 0
-}
-if {($user == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 activ.2 none
-return 0
-}
-}
-if {($user == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 activ.3 none
-return 0
-}
-if {($user == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 activ.4 none
-return 0
-}
-
-
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-
-if {![validuser $user]} { blacktools:tell $nick $host $hand $chan $chan1 gl.nomem none
-return 0
-}
-if {![matchattr $user mn|OAVMS $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.noaccess none 
-return 0
-}
-
-set dr [getuser $user XTRA DR($chan)]
-set ban [getuser $user XTRA b($chan)]
-set spam [getuser $user XTRA spam($chan)]
-set badnick [getuser $user XTRA n($chan)]
-set invite [getuser $user XTRA i($chan)]
-set blacks [getuser $user XTRA Black($chan)]
-set warn [getuser $user XTRA w($chan)]
-set day [getuser $user XTRA d($chan)]
-set kick [getuser $user XTRA k($chan)]
-set stick [getuser $user XTRA stick($chan)]
-set bw [getuser $user XTRA bw($chan)]
-set bot [getuser $user XTRA bot($chan)]
-
-if {$ban == ""} { set ban "0" }
-if {$dr == ""} { set dr "0" }
-if {$spam == ""} { set spam "0" }
-if {$badnick == ""} { set badnick "0" }
-if {$invite == ""} { set invite "0" }
-if {$blacks == ""} { set blacks "0" }
-if {$warn == ""} { set warn "0" }
-if {$day == ""} { set day "0" }
-if {$kick == ""} { set kick "0" }
-if {$stick == ""} { set stick "0" }
-if {$bw == ""} { set bw "0" }
-if {$bot == ""} { set bot "0" }
-
-if {[matchattr $user mn|AMS $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 activ.5 $user
-blacktools:tell $nick $host $hand $chan $chan1 activ.6 "12- $char(p)dr - 4($dr) | 12- $char(p)bot - 4($bot) | 12- $char(p)b - 4($ban) | 12- $char(p)spam - 4($spam) | 12- $char(p)n - 4($badnick) | 12- $char(p)i - 4($invite) | 12- $char(p)black - 4($blacks) | 12- $char(p)w - 4($warn) | 12- $char(p)d - 4($day) | 12- $char(p)k - 4($kick) | 12- $char(p)stick - 4($stick) | 12- $char(p)bw - 4($bw) ."
-blacktools:tell $nick $host $hand $chan $chan1 activ.7 none
-return 0
-}
-if {[matchattr $user -|O $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 activ.8 $user
-blacktools:tell $nick $host $hand $chan $chan1 activ.6 "12- $char(p)dr - 4($dr) | 12- $char(p)bot - 4($bot) | 12- $char(p)b - 4($ban) | 12- $char(p)spam - 4($spam) | 12- $char(p)n - 4($badnick) | 12- $char(p)i - 4($invite) | 12- $char(p)w - 4($warn) | 12- $char(p)k - 4($kick) | 12- $char(p)bw - 4($bw) ."
-blacktools:tell $nick $host $hand $chan $chan1 activ.7 none
-return 0
-}
-if {[matchattr $user -|V $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 activ.9 $user
-blacktools:tell $nick $host $hand $chan $chan1 activ.6 "12- $char(p)w - 4($warn) | 12- $char(p)k - 4($kick)"
-blacktools:tell $nick $host $hand $chan $chan1 activ.7 none
-return 0
-}
-}
-
-proc addmyhostpublic {nick host hand chan arg} {
-global black
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set chan1 "$chan"
-set why [lindex [split $arg] 0]
-if {$why == ""} { blacktools:tell $nick $host $hand $chan $chan1 addmyhost.1 none
-return 0
-}
-addmyhost:process $nick $host $hand $chan $chan1 $why
-}
-
-proc addmyhost:process {nick host hand chan chan1 why} {
-global botnick black
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set hhost [getuser $hand hosts]
-foreach hhost $hhost {
-if {[string match -nocase $hhost $why]} {
-set foundhost 1
-}
-}
-if {[info exists foundhost]} {
-blacktools:tell $nick $host $hand $chan $chan1 addmyhost.3 $why
-return 0
-}
-setuser $hand HOSTS $why
-blacktools:tell $nick $host $hand $chan $chan1 addmyhost.4 $why
-}
-
-############################## delmyhost ##########################
-
-proc delmyhostpublic {nick host hand chan arg} {
-global black
-set chan1 "$chan"
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set why [lindex [split $arg] 0]
-if {$why == ""} { blacktools:tell $nick $host $hand $chan $chan1 delmyhost.1 none
-return 0
-}
-delmyhost:process $nick $host $hand $chan $chan1 $why
-}
-
-proc delmyhost:process {nick host hand chan chan1 why} {
-global botnick black
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set hhost [getuser $hand hosts]
-foreach hhost $hhost {
-if {[string match -nocase $hhost $why]} {
-set foundhost 1
-}
-}
-if {![info exists foundhost]} {
-blacktools:tell $nick $host $hand $chan $chan1 delmyhost.3 $why
-return 0
-}
-delhost $hand $why
-blacktools:tell $nick $host $hand $chan $chan1 delmyhost.4 $why
-}
-
-
-######################## cc (channel created) #######################
-
-proc createdpublic { from keyword arguments } {
-set hand $::hand
-set nick $::ccnick
-set date [lindex [split $arguments] 2]
-set dates [ctime $date]
-blacktools:tell:prv $nick host $hand cc.3 $dates
-unbind RAW - 329 createdpublic
-}
-
-proc nocreatedpublic { from keyword arguments } {
-set hand $::hand
-set nick $::ccnick
-blacktools:tell:prv $nick host $hand cc.4 none
-unbind RAW - 403 nocreatedpublic
-
-}
-
-proc ccpublic {nick host hand chan arg} {
-global black
-set ::ccnick $nick
-set ::hand $hand
-set chan1 "$chan"
-set c [lindex [split $arg] 0]
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-if {$c == ""} { blacktools:tell $nick $host $hand $chan $chan1 cc.1 none
-return 0
-}
-if {![regexp {^[\\+!#&]} $c]} {
-set c #$c
- } 
-
-putquick "MODE $c"
-bind raw - 329 createdpublic
-bind raw - 403 nocreatedpublic
-}
-
-proc statspublic {nick host hand chan arg} {
-global botnick black
-set c [lindex [split $arg] 0]
-set chan1 "$chan"
-if {[regexp {^[#&]} $c] && [matchattr $hand nm|- $chan]} {
-set chan "$c"
-}
-stats:process $nick $host $hand $chan $chan1
-}
-
-proc stats:process {nick host hand chan chan1} {
-global botnick black statsdir
-set ops 0
-set numban 0
-set voices 0
-set numuser 0
-set getlang [string tolower [getuser $hand XTRA OUTPUT_LANG]]
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-set time [unixtime]
-set file [open $statsdir "r"]
-set database [read -nonewline $file]
-set data [split $database "\n"]
-foreach line $data {
-set c [lindex [split $line] 0]
-set type [lindex [split $line] 1]
-if {[string match "ADDED" "$type"] && [string match -nocase $c $chan]} {
-set foundchan 1
-set chanadded 1
-set awho [lindex [split $line] 2]
-set ahost [lindex [split $line] 3]
-set a1time [lindex [split $line] 4]
-if {[regexp {^[0-9]} $a1time]} { 
-set duration [duration [expr [unixtime] - $a1time]]
-} else { set duration "NONE" }
-if {[regexp {^[0-9]} $a1time]} {
-set atime [clock format $a1time -format %D-%H:%M:%S]
-} else { set atime "NONE"}
-set replace(%ahost%) $ahost
-set replace(%atime%) $atime
-set replace(%duration%) $duration
-set replace(%awho%) $awho
-lappend mes "[string map [array get replace] $black(say.$getlang.stats.1)]" 
-lappend mes1 "[string map [array get replace] $black(say.$getlang.stats.2)]"
-}
-if {[string match "REMOVED" "$type"] && [string match -nocase $c $chan]} {
-set foundchan 1
-set chanremoved 1
-set rwho [lindex [split $line] 2]
-set rhost [lindex [split $line] 3]
-set rtime [lindex [split $line] 4]
-set a1time [lindex [split $line] 5]
-if {[regexp {^[0-9]} $a1time]} { 
-set duration [duration [expr [unixtime] - $a1time]]
-} else { set duration "NONE" }
-if {[regexp {^[0-9]} $a1time]} {
-set atime [clock format $a1time -format %D-%H:%M:%S]
-} else { set atime "NONE"}
-if {[regexp {^[0-9]} $rtime]} {
-set rtime [clock format $rtime -format %D-%H:%M:%S]
-} else { set rtime "NONE" }
-set awho [lindex [split $line] 6]
-set ahost [lindex [split $line] 7]
-set replace(%ahost%) $ahost
-set replace(%atime%) $atime
-set replace(%rtime%) $rtime
-set replace(%duration%) $duration
-set replace(%awho%) $awho
-set replace(%rwho%) $rwho
-set replace(%rhost%) $ahost
-lappend mes "[string map [array get replace] $black(say.$getlang.stats.1)]"
-lappend mes1 "[string map [array get replace] $black(say.$getlang.stats.3)]"
-lappend mes2 "[string map [array get replace] $black(say.$getlang.stats.4)]"
-}
-}
-if {![info exists foundchan]} {
-blacktools:tell $nick $host $hand $chan $chan1 stats.5 none
-return 0
-}
-if {[validchan $chan] && ([onchan $botnick $chan])} {
-set numban [llength [banlist $chan]]
-set numuser [llength [chanlist $chan]]
-foreach user [chanlist $chan] {
-if {[isop $user $chan] && (![isvoice $user $chan])} {
-set ops [expr $ops +1]
-}
-if {[isvoice $user $chan]} {
-set voices [expr $voices +1]
-}
-}
-}
-if {[info exists chanadded]} {
-blacktools:tell $nick $host $hand $chan $chan1 stats.6 none
-blacktools:tell $nick $host $hand $chan $chan1 stats.7 "[join $mes]"
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 stats.9 none 
-} else {
-blacktools:tell $nick $host $hand $chan $chan1 stats.8 none
-}
-blacktools:tell $nick $host $hand $chan $chan1 stats.7 "[join $mes1]"
-blacktools:tell $nick $host $hand $chan $chan1 stats.10 "$numuser $ops $voices $numban"
-blacktools:tell $nick $host $hand $chan $chan1 stats.11 none
-}
-
-if {[info exists chanremoved]} {
-blacktools:tell $nick $host $hand $chan $chan1 stats.6 none
-blacktools:tell $nick $host $hand $chan $chan1 stats.7 "[join $mes]"
-blacktools:tell $nick $host $hand $chan $chan1 stats.12 none
-blacktools:tell $nick $host $hand $chan $chan1 stats.7 "[join $mes1]"
-blacktools:tell $nick $host $hand $chan $chan1 stats.7 "[join $mes2]"
-blacktools:tell $nick $host $hand $chan $chan1 stats.11 none
-}
-
-}
-
-
-
-####################### TopWords ####################################
-
-
-proc topwordspublic {nick host hand chan arg} {
-global black who username
-set arg [split $arg]
-if {![validchan $chan]} {
-return 0
-}
-if {[channel get $chan topwords]} {
-set lin 0
-set wordsdir "logs/$username.$chan.words.db"
-if {![file exists $wordsdir]} {
-set file [open $wordsdir w]
-close $file
-}
-set host "*!*@[lindex [split $host @] 1]"
-set len($host) [llength $arg]
-set words($host:$chan) $len($host)
-if {[isbotnick $nick]} { return 0 }
-set who "$chan $nick $host $words($host:$chan)"
-set file [open $wordsdir "r"]
-set database [read -nonewline $file]
-close $file
-set data [split $database "\n"]
-foreach line $data {
-set lin [expr $lin +1] 
-set hhost [lindex [split $line] 2]
-set hscore [lindex [split $line] 3]
-set chanentry [lindex [split $line] 0]
-if {[string match -nocase $hhost $host] && [string match -nocase $chanentry $chan]} {
-lappend current($hhost:$chan) $hscore
-set who "$chan $nick $hhost [expr $words($host:$chan) + $current($hhost:$chan)]"
-if {$line != ""} {
-set num [expr $lin - 1]
-set delete [lreplace $data $num $num]
-set files [open $wordsdir "w"]
-puts $files [join $delete "\n"]
-close $files
-}
-}
-}
-set file [open $wordsdir "r"]
-set data [read -nonewline $file]
-close $file
-if {$data == ""} {
-set files [open $wordsdir "w"]
-close $files
-}
-set file [open $wordsdir "a"]
-puts $file "$who"
-close $file
-}
-}
-
-
-################################## TOP ################################
-
-proc toppublic {nick host hand chan arg} {
-global black
-set cmd [lindex [split $arg] 0]
-set del [lindex [split $arg] 1]
-set type 0
-set chan1 "$chan"
-if {[regexp {^[#&]} $cmd] && [matchattr $hand nm|- $chan]} {
-set chan1 "$chan"
-set chan "$cmd"
-set cmd [lindex [split $arg] 1]
-set del [lindex [split $arg] 2]
-}
-top:process $nick $host $hand $chan $chan1 $cmd $type $del
-}
-
-
-proc top:process {nick host hand chan chan1 cmd type del} {
-global botnick black username
-set max "20"
-set i 0
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-set list [userlist nm|OSVAM $chan]
-set wordsdir "logs/$username.$chan.words.db"
-if {![file exists $wordsdir]} {
-set file [open $wordsdir w]
-close $file
-}
-
-if {[matchattr $hand nm|- $chan]} {
-if {($cmd == "")  && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 top.1 none
-blacktools:tell $nick $host $hand $chan $chan1 top.2 none
-return 0
-}
-if {($cmd == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 top.3 none
-blacktools:tell $nick $host $hand $chan $chan1 top.4 none
-return 0
-}
-}
-if {($cmd == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 top.5 none
-blacktools:tell $nick $host $hand $chan $chan1 top.6 none
-return 0
-}
-if {($cmd == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 top.7 none
-blacktools:tell $nick $host $hand $chan $chan1 top.8 none
-return 0
-}
-
-
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-
-
- 
-switch -exact -- [string tolower $cmd] {
-       dr {
-array set blacks [list] 
-set list [userlist nm|OSVAM $chan] 
-foreach user $list { 
- set b [getuser $user XTRA DR($chan)] 
- if {$b == ""} { set b 0 }
-if {$b > 0} { 
- lappend blacks($b) $user
-}
-}
-
-foreach blackq [lsort -integer -decreasing [array names blacks]] {
-set i [expr $i +1]
-lappend topblack 1- $i - : 1[join $blacks($blackq) ,] 12($blackq) | 
-}
-if {![info exists topblack]} { blacktools:tell $nick $host $hand $chan $chan1 top.9 none
-return 0
-}
-blacktools:tell $nick $host $hand $chan $chan1 top.10 none
-foreach txt [wordwrap [join $topblack " "] 300] {
-blacktools:tell $nick $host $hand $chan $chan1 top.11 $txt
-}
-}
-
- b {
- 
-array set blacks [list] 
-set list [userlist nm|OSVAM $chan] 
-foreach user $list { 
- set b [getuser $user XTRA b($chan)] 
- if {$b == ""} { set b 0 }
-if {$b > 0} { 
- lappend blacks($b) $user
-}
-}
-
-foreach blackq [lsort -integer -decreasing [array names blacks]] {
-set i [expr $i +1]
-lappend topblack 1- $i - : 1[join $blacks($blackq) ,] 12($blackq) | 
-}
-if {![info exists topblack]} { blacktools:tell $nick $host $hand $chan $chan1 top.9 none
-return 0
-}
-blacktools:tell $nick $host $hand $chan $chan1 top.12 none
-foreach txt [wordwrap [join $topblack " "] 300] {
-blacktools:tell $nick $host $hand $chan $chan1 top.11 $txt
-}
-}
-
-bot {
- 
-array set blacks [list] 
-set list [userlist nm|OSVAM $chan] 
-foreach user $list { 
- set b [getuser $user XTRA bot($chan)] 
- if {$b == ""} { set b 0 }
-if {$b > 0} { 
- lappend blacks($b) $user
-}
-}
-
-foreach blackq [lsort -integer -decreasing [array names blacks]] {
-set i [expr $i +1]
-lappend topblack 1- $i - : 1[join $blacks($blackq) ,] 12($blackq) | 
-}
-if {![info exists topblack]} { blacktools:tell $nick $host $hand $chan $chan1 top.9 none
-return 0
-}
-blacktools:tell $nick $host $hand $chan $chan1 top.13 none
-foreach txt [wordwrap [join $topblack " "] 300] {
-blacktools:tell $nick $host $hand $chan $chan1 top.11 $txt
-}
-}
-
-bw {
- 
-array set blacks [list] 
-set list [userlist nm|OSVAM $chan] 
-foreach user $list { 
- set b [getuser $user XTRA bw($chan)] 
- if {$b == ""} { set b 0 }
-if {$b > 0} { 
- lappend blacks($b) $user
-}
-}
-
-foreach blackq [lsort -integer -decreasing [array names blacks]] {
-set i [expr $i +1]
-lappend topblack 1- $i - : 1[join $blacks($blackq) ,] 12($blackq) | 
-}
-if {![info exists topblack]} { blacktools:tell $nick $host $hand $chan $chan1 top.9 none
-return 0
-}
-blacktools:tell $nick $host $hand $chan $chan1 top.14 none
-foreach txt [wordwrap [join $topblack " "] 300] {
-blacktools:tell $nick $host $hand $chan $chan1 top.11 $txt
-}
-}
-
-black {
-array set blacks [list] 
-set list [userlist nm|OSVAM $chan] 
-foreach user $list { 
- set b [getuser $user XTRA Black($chan)] 
- if {$b == ""} { set b 0 }
-if {$b > 0} { 
- lappend blacks($b) $user
-}
-}
-
-foreach blackq [lsort -integer -decreasing [array names blacks]] {
-set i [expr $i +1]
-lappend topblack 1- $i - : 1[join $blacks($blackq) ,] 12($blackq) | 
-}
-if {![info exists topblack]} { blacktools:tell $nick $host $hand $chan $chan1 top.9 none
-return 0
-}
-blacktools:tell $nick $host $hand $chan $chan1 top.15 none
-foreach txt [wordwrap [join $topblack " "] 300] {
-blacktools:tell $nick $host $hand $chan $chan1 top.11 $txt
-}
-}
-
-
-spam {
- 
-array set blacks [list] 
-set list [userlist nm|OSVAM $chan] 
-foreach user $list { 
- set b [getuser $user XTRA spam($chan)] 
- if {$b == ""} { set b 0 }
-if {$b > 0} { 
- lappend blacks($b) $user
-}
-}
-
-foreach blackq [lsort -integer -decreasing [array names blacks]] {
-set i [expr $i +1]
-lappend topblack 1- $i - : 1[join $blacks($blackq) ,] 12($blackq) | 
-}
-if {![info exists topblack]} { blacktools:tell $nick $host $hand $chan $chan1 top.9 none
-return 0
-}
-blacktools:tell $nick $host $hand $chan $chan1 top.16 none
-foreach txt [wordwrap [join $topblack " "] 300] {
-blacktools:tell $nick $host $hand $chan $chan1 top.11 $txt
-}
-}
-
-stick {
- 
-array set blacks [list] 
-set list [userlist nm|OSVAM $chan] 
-foreach user $list { 
- set b [getuser $user XTRA stick($chan)] 
- if {$b == ""} { set b 0 }
-if {$b > 0} { 
- lappend blacks($b) $user
-}
-}
-
-foreach blackq [lsort -integer -decreasing [array names blacks]] {
-set i [expr $i +1]
-lappend topblack 1- $i - : 1[join $blacks($blackq) ,] 12($blackq) | 
-}
-if {![info exists topblack]} { blacktools:tell $nick $host $hand $chan $chan1 top.9 none
-return 0
-}
-blacktools:tell $nick $host $hand $chan $chan1 top.17 none
-foreach txt [wordwrap [join $topblack " "] 300] {
-blacktools:tell $nick $host $hand $chan $chan1 top.11 $txt
-}
-}
-
-n {
- 
-array set blacks [list] 
-set list [userlist nm|OSVAM $chan] 
-foreach user $list { 
- set b [getuser $user XTRA n($chan)] 
- if {$b == ""} { set b 0 }
-if {$b > 0} { 
- lappend blacks($b) $user
-}
-}
-
-foreach blackq [lsort -integer -decreasing [array names blacks]] {
-set i [expr $i +1]
-lappend topblack 1- $i - : 1[join $blacks($blackq) ,] 12($blackq) | 
-}
-if {![info exists topblack]} { blacktools:tell $nick $host $hand $chan $chan1 top.9 none
-return 0
-}
-blacktools:tell $nick $host $hand $chan $chan1 top.18 none
-foreach txt [wordwrap [join $topblack " "] 300] {
-blacktools:tell $nick $host $hand $chan $chan1 top.11 $txt
-}
-}
-
-
-i {
- 
-array set blacks [list] 
-set list [userlist nm|OSVAM $chan] 
-foreach user $list { 
- set b [getuser $user XTRA i($chan)] 
- if {$b == ""} { set b 0 }
-if {$b > 0} { 
- lappend blacks($b) $user
-}
-}
-
-foreach blackq [lsort -integer -decreasing [array names blacks]] {
-set i [expr $i +1]
-lappend topblack 1- $i - : 1[join $blacks($blackq) ,] 12($blackq) | 
-}
-if {![info exists topblack]} { blacktools:tell $nick $host $hand $chan $chan1 top.9 none
-return 0
-}
-blacktools:tell $nick $host $hand $chan $chan1 top.19 none
-foreach txt [wordwrap [join $topblack " "] 300] {
-blacktools:tell $nick $host $hand $chan $chan1 top.11 $txt
-}
-}
-
-k {
- 
-array set blacks [list] 
-set list [userlist nm|OSVAM $chan] 
-foreach user $list { 
- set b [getuser $user XTRA k($chan)] 
- if {$b == ""} { set b 0 }
-if {$b > 0} { 
- lappend blacks($b) $user
-}
-}
-
-foreach blackq [lsort -integer -decreasing [array names blacks]] {
-set i [expr $i +1]
-lappend topblack 1- $i - : 1[join $blacks($blackq) ,] 12($blackq) | 
-}
-if {![info exists topblack]} { blacktools:tell $nick $host $hand $chan $chan1 top.9 none
-return 0
-}
-blacktools:tell $nick $host $hand $chan $chan1 top.20 none
-foreach txt [wordwrap [join $topblack " "] 300] {
-blacktools:tell $nick $host $hand $chan $chan1 top.11 $txt
-}
-}
-
-w {
- 
-array set blacks [list] 
-set list [userlist nm|OSVAM $chan] 
-foreach user $list { 
- set b [getuser $user XTRA w($chan)] 
- if {$b == ""} { set b 0 }
-if {$b > 0} { 
- lappend blacks($b) $user
-}
-}
-
-foreach blackq [lsort -integer -decreasing [array names blacks]] {
-set i [expr $i +1]
-lappend topblack 1- $i - : 1[join $blacks($blackq) ,] 12($blackq) | 
-}
-if {![info exists topblack]} { blacktools:tell $nick $host $hand $chan $chan1 top.9 none
-return 0
-}
-blacktools:tell $nick $host $hand $chan $chan1 top.21 none
-foreach txt [wordwrap [join $topblack " "] 300] {
-blacktools:tell $nick $host $hand $chan $chan1 top.11 $txt
-}
-}
-
-d {
- 
-array set blacks [list] 
-set list [userlist nm|OSVAM $chan] 
-foreach user $list { 
- set b [getuser $user XTRA d($chan)] 
- if {$b == ""} { set b 0 }
-if {$b > 0} { 
- lappend blacks($b) $user
-}
-}
-
-foreach blackq [lsort -integer -decreasing [array names blacks]] {
-set i [expr $i +1]
-lappend topblack 1- $i - : 1[join $blacks($blackq) ,] 12($blackq) | 
-}
-if {![info exists topblack]} { blacktools:tell $nick $host $hand $chan $chan1 top.9 none
-return 0
-}
-blacktools:tell $nick $host $hand $chan $chan1 top.22 none
-foreach txt [wordwrap [join $topblack " "] 300] {
-blacktools:tell $nick $host $hand $chan $chan1 top.11 $txt
-}
-}
-
-words {
-array set topw [list]
-if {![channel get $chan topwords]} {
-blacktools:tell $nick $host $hand $chan $chan1 top.23 none
-return 0
-}
-if {[string match -nocase $del "erase"] && [matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 top.24 none
-set file [open $wordsdir "w"]
-close $file
-return 0
-}
-set file [open $wordsdir "r"]
-set database [read -nonewline $file]
-close $file
-if {$database == ""} { blacktools:tell $nick $host $hand $chan $chan1 top.9 none
-return 0
-}
-set data [split $database "\n"]
-foreach line $data {
-set hhost [lindex [split $line] 2]
-set hentry [lindex [split $line] 1]
-set chanentry [lindex [split $line] 0]
-set tw [lindex [split $line] 3]
-if {[string match -nocase $chanentry $chan]} {
-lappend topw($tw) $hentry
-}
-}
-foreach twords [lsort -integer -decreasing [array names topw]] {
-set i [expr $i +1]
-if {!($i > $max)} {
-lappend topwo 1- $i - : 1[join $topw($twords) ,] 12($twords) |
-}
-}
-if {![info exists topwo]} { blacktools:tell $nick $host $hand $chan $chan1 top.9 none
-return 0
-}
-blacktools:tell $nick $host $hand $chan $chan1 top.25 $max
-foreach txt [wordwrap [join $topwo " "] 300] {
-blacktools:tell $nick $host $hand $chan $chan1 top.11 $txt
-}
-}
-
-}
-}
-
-proc securepublic {nick host hand chan arg} {
-global black
-set what [lindex [split $arg] 0]
-set type 0
-set chan1 "$chan"
-if {[regexp {^[#&]} $what] && [matchattr $hand nm|- $chan]} {
-set chan "$what"
-set what [lindex [split $arg] 1]
-}
-secure:process $nick $host $hand $chan $chan1 $what $type
-}
-
-
-proc secure:process {nick host hand chan chan1 what type} {
-global botnick black
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-} 
-if {[matchattr $hand nm|- $chan]} {
-if {($what == "")  && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 secure.1 none
-return 0
-}
-if {($what == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 secure.2 none
-return 0
-}
-}
-if {($what == "") && ($type == "0")} {
-blacktools:tell $nick $host $hand $chan $chan1 secure.3 none
-return 0
-}
-if {($what == "") && ($type == "1")} {
-blacktools:tell $nick $host $hand $chan $chan1 secure.4 none
-return 0
-}
-
-
-if {![validchan $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
-}
-
-if {![onchan $botnick $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.notonchan none
-return 0
-}
-
-
-
-
-if {[string match -nocase "$what" "on"]} {
-set char(a) "+"
-channel set $chan $char(a)antipub ; channel set $chan $char(a)antinotice ; channel set $chan $char(a)antictcp ; channel set $chan $char(a)antibadword ; channel set $chan $char(a)antibadword ; channel set $chan $char(a)antilongtext ; channel set $chan $char(a)badquitpart ; channel set $chan $char(a)antijoinpart ; channel set $chan $char(a)antispam ; channel set $chan $char(a)antirepeat ; channel set $chan $char(a)anticolor ; channel set $chan $char(a)antibold ; channel set $chan $char(a)antiunderline ; channel set $chan $char(a)anticaps ; channel set $chan $char(a)badnick ; channel set $chan $char(a)badfullname ; channel set $chan $char(a)antijoinflood ; channel set $chan $char(a)antichanflood ; channel set $chan $char(a)badident
-blacktools:tell $nick $host $hand $chan $chan1 secure.5 none
-}
-if {[string match -nocase "$what" "off"]} {
-set char(a) "-"
-channel set $chan $char(a)antipub ; channel set $chan $char(a)antinotice ; channel set $chan $char(a)antictcp ; channel set $chan $char(a)antibadword ; channel set $chan $char(a)antibadword ; channel set $chan $char(a)antilongtext ; channel set $chan $char(a)badquitpart ; channel set $chan $char(a)antijoinpart ; channel set $chan $char(a)antispam ; channel set $chan $char(a)antirepeat ; channel set $chan $char(a)anticolor ; channel set $chan $char(a)antibold ; channel set $chan $char(a)antiunderline ; channel set $chan $char(a)anticaps ; channel set $chan $char(a)badnick ; channel set $chan $char(a)badfullname ; channel set $chan $char(a)antijoinflood ; channel set $chan $char(a)antichanflood ; channel set $chan $char(a)badident
-blacktools:tell $nick $host $hand $chan $chan1 secure.6 none
-}
-}
-
-proc hpublic {nick host hand chan arg} {
-global black botnick
-set chan1 "$chan"
-set command [lindex [split $arg] 0]
-h:process $nick $host $hand $chan $chan1 $command
-}
-
-
-proc h:process {nick host hand chan chan1 command} {
-global black botnick
-set char(p) [lindex $black(cmdchar) 0]
-if {[string match -nocase "$char(p)" "none"]} {
-set char(p) ""
-}
-set replace(%chan%) $chan
-set replace(%char%) $char(p)
-set greeting [getuser $hand XTRA GREET]
-set chanlang [string tolower [channel get $chan lang]]
-if {$chanlang == ""} { set chanlang "[string tolower $black(default_lang)]" }
-if {$greeting == ""} {
-putserv "PRIVMSG $nick :[string map [array get replace] $black(say.$chanlang.greeting.1)]"
-putserv "PRIVMSG $nick :[string map [array get replace] $black(say.$chanlang.greeting.2)]"
-putserv "PRIVMSG $nick :[string map [array get replace] $black(say.$chanlang.greeting.3)]"
-putserv "PRIVMSG $nick :[string map [array get replace] $black(say.$chanlang.greeting.4)]"
-setuser $hand XTRA GREET 1
-return 0
-}
-set getlang [string tolower [getuser $hand XTRA OUTPUT_LANG]]
-set replace(%char%) "$char(p)"
-if {$getlang == ""} { set getlang "[string tolower $black(default_lang)]" }
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-if {$command == ""} {
-if {[matchattr $hand n|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 h.1 none
-blacktools:tell $nick $host $hand $chan $chan1 h.2 none
-return 0
-}
-if {[matchattr $hand m|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 h.3 none
-blacktools:tell $nick $host $hand $chan $chan1 h.4 none
-return 0
-}
-if {[matchattr $hand -|V $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 h.5 none
-blacktools:tell $nick $host $hand $chan $chan1 h.6 none
-return 0
-}
-if {[matchattr $hand -|O $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 h.7 none
-blacktools:tell $nick $host $hand $chan $chan1 h.8 none
-return 0
-}
-if {[matchattr $hand -|S $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 h.9 none
-blacktools:tell $nick $host $hand $chan $chan1 h.10 none
-return 0
-}
-if {[matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 h.11 none
-blacktools:tell $nick $host $hand $chan $chan1 h.12 none
-return 0
-}
-if {[matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 h.13 none
-blacktools:tell $nick $host $hand $chan $chan1 h.14 none
-return 0
-}
-return 0
-}
-switch -exact -- [string tolower $command] {
-
-cmds {
-if {[matchattr $hand -|V $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 cmdsvoice none
-
-return 0
-}
-
-if {[matchattr $hand -|O $chan]} {
-foreach txt [wordwrap [join [string map [array get replace] $black(say.$getlang.cmdsop)] " "] 300] {
-blacktools:tell $nick $host $hand $chan $chan1 h.15 $txt
-}
-return 0
-}
-
-if {[matchattr $hand -|S $chan]} {
-foreach txt [wordwrap [join [string map [array get replace] $black(say.$getlang.cmdsenior)] " "] 300] {
-blacktools:tell $nick $host $hand $chan $chan1 h.15 $txt
-
-}
-return 0
-}
-
-if {[matchattr $hand -|A $chan]} {
-foreach txt [wordwrap [join [string map [array get replace] $black(say.$getlang.cmdadmin)] " "] 300] {
-blacktools:tell $nick $host $hand $chan $chan1 h.15 $txt
-b
-}
-return 0
-}
-
-if {[matchattr $hand -|M $chan]} {
-foreach txt [wordwrap [join [string map [array get replace] $black(say.$getlang.cmdmanager)] " "] 300] {
-blacktools:tell $nick $host $hand $chan $chan1 h.15 $txt
-
-}
-return 0
-}
-
-if {[matchattr $hand n|- $chan]} {
-foreach txt [wordwrap [join [string map [array get replace] $black(say.$getlang.cmdbossowner)] " "] 300] {
-blacktools:tell $nick $host $hand $chan $chan1 h.15 $txt
-
-}
-return 0
-}
-
-if {[matchattr $hand m|- $chan]} {
-foreach txt [wordwrap [join [string map [array get replace] $black(say.$getlang.cmdowner)] " "] 300] {
-blacktools:tell $nick $host $hand $chan $chan1 h.15 $txt
-
-}
-return 0
-}
-}
-
-ban {
-
-if {[matchattr $hand -|V $chan]} {
-foreach txt [wordwrap [join [string map [array get replace] $black(say.$getlang.banvoice)] " "] 450] {
-blacktools:tell $nick $host $hand $chan $chan1 h.15 $txt
-}
-return 0
-}
-
-if {[matchattr $hand -|O $chan]} {
-foreach txt [wordwrap [join [string map [array get replace] $black(say.$getlang.banop)] " "] 300] {
-blacktools:tell $nick $host $hand $chan $chan1 h.15 $txt
-}
-return 0
-}
-
-if {[matchattr $hand -|S $chan]} {
-foreach txt [wordwrap [join [string map [array get replace] $black(say.$getlang.bansenior)] " "] 300] {
-blacktools:tell $nick $host $hand $chan $chan1 h.15 $txt
-}
-return 0
-}
-
-if {[matchattr $hand -|A $chan]} {
-foreach txt [wordwrap [join [string map [array get replace] $black(say.$getlang.banadmin)] " "] 300] {
-blacktools:tell $nick $host $hand $chan $chan1 h.15 $txt
-}
-return 0
-}
-
-if {[matchattr $hand -|M $chan]} {
-foreach txt [wordwrap [join [string map [array get replace] $black(say.$getlang.banmanager)] " "] 300] {
-blacktools:tell $nick $host $hand $chan $chan1 h.15 $txt
-}
-return 0
-}
-
-if {[matchattr $hand n|- $chan]} {
-foreach txt [wordwrap [join [string map [array get replace] $black(say.$getlang.banbossowner)] " "] 380] {
-blacktools:tell $nick $host $hand $chan $chan1 h.15 $txt
-}
-return 0
-}
-
-if {[matchattr $hand m|- $chan]} {
-foreach txt [wordwrap [join [string map [array get replace] $black(say.$getlang.banowner)] " "] 380] {
-blacktools:tell $nick $host $hand $chan $chan1 h.15 $txt
-}
-return 0
-}
-}
-
-add {
-
-if {[matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 addadmin none
-return 0
-}
-
-if {[matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 addmanager none
-return 0
-}
-
-if {[matchattr $hand n|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 addbossowner none
-return 0
-}
-
-if {[matchattr $hand m|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 addowner none
-return 0
-}
-}
-
-
-modif {
-if {[matchattr $hand -|A $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 modifadmin none
-return 0
-}
-
-if {[matchattr $hand -|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 modifmanager none
-return 0
-}
-
-if {[matchattr $hand n|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 modifbossowner none
-return 0
-}
-
-if {[matchattr $hand m|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 modifowner none
-return 0
-}
-}
-
-owner {
-if {[matchattr $hand nm|- $chan]} {
-foreach txt [wordwrap [join [string map [array get replace] $black(say.$getlang.howner)] " "] 390] {
-blacktools:tell $nick $host $hand $chan $chan1 h.15 $txt
-}
-}
-}
-
-top {
-if {[matchattr $hand nm|MASOV $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 htop $nick
-}
-}
-
-blacktools {
-if {[matchattr $hand nm|M $chan]} {
-if {[channel get $chan antipub]} { set pubstatus "+antipub" } else { set pubstatus "-antipub" }
-if {[channel get $chan antinotice]} { set noticestatus "+antinotice" } else { set noticestatus "-antinotice" }
-if {[channel get $chan antictcp]} { set ctcpstatus "+antictcp" } else { set ctcpstatus "-antictcp" }
-if {[channel get $chan antibadword]} { set badwordstatus "+antibadword" } else { set badwordstatus "-antibadword" }
-if {[channel get $chan antilongtext]} { set longtextstatus "+antilongtext" } else { set longtextstatus "-antilongtext" }
-if {[channel get $chan badquitpart]} { set badquitpartstatus "+badquitpart" } else { set badquitpartstatus "-badquitpart" }
-if {[channel get $chan antijoinpart]} { set joinpartstatus "+antijoinpart" } else { set joinpartstatus "-antijoinpart" }
-if {[channel get $chan antispam]} { set antispamstatus "+antispam" } else { set antispamstatus "-antispam" }
-if {[channel get $chan antirepeat]} { set repeatstatus "+antirepeat" } else { set repeatstatus "-antirepeat" }
-if {[channel get $chan anticolor]} { set colorstatus "+anticolor" } else { set colorstatus "-anticolor" }
-if {[channel get $chan antibold]} { set boldstatus "+antibold" } else { set boldstatus "-antibold" }
-if {[channel get $chan antiunderline]} { set underlinestatus "+antiunderline" } else { set underlinestatus "-antiunderline" }
-if {[channel get $chan anticaps]} { set capsstatus "+anticaps" } else { set capsstatus "-anticaps" }
-if {[channel get $chan badnick]} { set nickstatus "+badnick" } else { set nickstatus "-badnick" }
-if {[channel get $chan badfullname]} { set fullnamestatus "+badfullname" } else { set fullnamestatus "-badfullname" }
-if {[channel get $chan autoop]} { set opstatus "+autoop" } else { set opstatus "-autoop" }
-if {[channel get $chan autovoice]} { set voicestatus "+autovoice" } else { set voicestatus "-autovoice" }
-if {[channel get $chan antijoinflood]} { set joinfloodstatus "+antijoinflood" } else { set joinfloodstatus "-antijoinflood" }
-if {[channel get $chan antichanflood]} { set chanfloodstatus "+antichanflood" } else { set chanfloodstatus "-antichanflood" }
-if {[channel get $chan badident]} { set badidentstatus "+badident" } else { set badidentstatus "-badident" }
-set xbantime [channel get $chan xbantime]
-if {$xbantime == "0"} { set xbantime 1 }
-set xbanlevel [channel get $chan xbanlevel]
-if {$xbanlevel == "0"} { set xbanlevel 100 }
-blacktools:tell $nick $host $hand $chan $chan1 hblacktools.1 "1$pubstatus | 4$noticestatus | 1$ctcpstatus | 4$badwordstatus | 1$longtextstatus | 4$badquitpartstatus | 1$joinpartstatus | 4$antispamstatus | 1$repeatstatus | 4$colorstatus | 1$boldstatus | 4$underlinestatus | 1$capsstatus | 4$nickstatus | 1$fullnamestatus | 4$opstatus | 1$voicestatus | 4$joinfloodstatus | 1$chanfloodstatus | 4$badidentstatus | 1xbantime $xbantime | 4xbanlevel $xbanlevel."
-blacktools:tell $nick $host $hand $chan $chan1 hblacktools.2 none
-}
-}
-
-standard {
-if {[matchattr $hand nm|M $chan]} {
-if {[channel get $chan protectops]} { set protectops "+protectops" } else { set protectops "-protectops" }
-if {[channel get $chan bitch]} { set bitch "+bitch" } else { set bitch "-bitch" }
-if {[channel get $chan enforcebans]} { set enforcebans "+enforcebans" } else { set enforcebans "-enforcebans" }
-if {[channel get $chan protecthalfops]} { set protecthalfops "+protecthalfops" } else { set protecthalfops "-protecthalfops" }
-if {[channel get $chan protectfriends]} { set protectfriends "+protectfriends" } else { set protectfriends "-protectfriends" }
-if {[channel get $chan dynamicbans]} { set dynamicbans "+dynamicbans" } else { set dynamicbans "-dynamicbans" }
-if {[channel get $chan dontkickops]} { set dontkickops "+dontkickops" } else { set dontkickops "-dontkickops" }
-if {[channel get $chan nodesynch]} { set nodesynch "+nodesynch" } else { set nodesynch "-nodesynch" }
-if {[channel get $chan dynamicbans]} { set noticestatus "+dynamicbans" } else { set dynamicbans "-dynamicbans" }
-set bantime [channel get $chan ban-time]
-set floodchan [channel get $chan flood-chan]
-set floodjoin [channel get $chan flood-join]
-set floodkick [channel get $chan flood-kick]
-set floodctcp [channel get $chan flood-ctcp]
-set floodnick [channel get $chan flood-nick]
-set flooddeop [channel get $chan flood-deop]
-set chanmode [channel get $chan chanmode]
-blacktools:tell $nick $host $hand $chan $chan1 hstandard.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hstandard.3 "1$protectops 4$bitch 1$enforcebans 4$protecthalfops 1$protectfriends 4$dynamicbans 1$dontkickops 4$nodesynch"
-blacktools:tell $nick $host $hand $chan $chan1 hstandard.3 "12Flood-Chan :1 $floodchan  12Flood-join :4 $floodjoin  12Flood-Kick :1 $floodkick  12Flood-Ctcp :4 $floodctcp  12Flood-Nick :1 $floodnick  12Flood-Deop :4 $flooddeop "
-blacktools:tell $nick $host $hand $chan $chan1 hstandard.3  "12ChanMode :1$chanmode 12Ban-Time :1 $bantime "
-blacktools:tell $nick $host $hand $chan $chan1 hstandard.2 none
-}
-}
-
-
-
-
-chaninfo {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hchaninfo.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hchaninfo.2 none
-blacktools:tell $nick $host $hand $chan $chan1 hchaninfo.3 none
-blacktools:tell $nick $host $hand $chan $chan1 hchaninfo.4 none
-blacktools:tell $nick $host $hand $chan $chan1 hchaninfo.5 none
-}
-}
-
-module {
-if {[matchattr $hand nm|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hmodule.1 none
-} else { blacktools:tell $nick $host $hand $chan $chan1 hmodule.2 none }
-blacktools:tell $nick $host $hand $chan $chan1 hmodule.3 none
-}
-
-
-antitake {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hantitake.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hantitake.2 none
-blacktools:tell $nick $host $hand $chan $chan1 hantitake.3 none
-blacktools:tell $nick $host $hand $chan $chan1 hantitake.4 none
-}
-}
-
-private {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hprivate.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hprivate.2 none
-}
-}
-
-language {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hlanguage.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hlanguage.2 none
-blacktools:tell $nick $host $hand $chan $chan1 hlanguage.3 none
-}
-}
-
-
-xban {
-set xbantime [channel get $chan xbantime]
-if {$xbantime == "0"} { set xbantime 1 }
-set xlevel [channel get $chan xbanlevel]
-if {$xlevel == "0"} { set xlevel 100 }
-if {[matchattr $hand nm|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hxban.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hxban.2 none
-blacktools:tell $nick $host $hand $chan $chan1 hxban.3 "$xbantime $xlevel"
-}
-}
-
-topicrefresh {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 htopicrefresh.1 none
-blacktools:tell $nick $host $hand $chan $chan1 htopicrefresh.2 none
-}
-}
-
-count {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hcount.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hcount.2 none
-}
-}
-
-xtools {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hxtools.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hxtools.2 none
-}
-}
-
-badchan {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hbadchan.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hbadchan.2 none
-}
-}
-
-badword {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hbadword.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hbadword.2 none
-}
-}
-
-anunt {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hanunt.1 $black(anunttime)
-blacktools:tell $nick $host $hand $chan $chan1 hanunt.2 none
-}
-}
-
-autobroadcast {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hautobroadcast.1 $black(bttime)
-blacktools:tell $nick $host $hand $chan $chan1 hautobroadcast.2 none
-blacktools:tell $nick $host $hand $chan $chan1 hautobroadcast.3 none
-}
-}
-
-antibotidle {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hantibotidle.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hantibotidle.2 $black(noidlemax)
-}
-}
-
-limit {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hlimit.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hlimit.2 none
-}
-}
-
-topic {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 htopic.1 none
-blacktools:tell $nick $host $hand $chan $chan1 htopic.2 none
-}
-}
-
-seen {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hseen.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hseen.2 none
-}
-}
-
-clonescan {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hclonescan.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hclonescan.2 none
-blacktools:tell $nick $host $hand $chan $chan1 hclonescan.3 none
-}
-}
-
-greet {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hgreet.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hgreet.2 none
-}
-}
-leave {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hleave.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hleave.2 none
-}
-}
-
-idle {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hidle.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hidle.2 none
-}
-}
-
-chanreport {
-if {[matchattr $hand nm|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hchanreport.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hchanreport.2 none
-blacktools:tell $nick $host $hand $chan $chan1 hchanreport.3 none
-}
-}
-
-topwords {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 htopwords.1 none
-blacktools:tell $nick $host $hand $chan $chan1 htopwords.2 none
-blacktools:tell $nick $host $hand $chan $chan1 htopwords.3 none
-}
-}
-
-settings {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hsettings.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hsettings.2 none
-blacktools:tell $nick $host $hand $chan $chan1 hsettings.3 none
-blacktools:tell $nick $host $hand $chan $chan1 hsettings.4 none
-blacktools:tell $nick $host $hand $chan $chan1 hsettings.5 none
-blacktools:tell $nick $host $hand $chan $chan1 hsettings.6 none
-}
-}
-
-reason {
-if {[matchattr $hand nm|M $chan]} {
-if {[channel get $chan showhandle]} { set showhandle "+showhandle" } else { set showhandle "-showhandle" }
-if {[channel get $chan showcount]} { set showcount "+showcount" } else { set showcount "-showcount" }
-if {[channel get $chan showtime]} { set showtime "+showtime" } else { set showtime "-showtime" }
-blacktools:tell $nick $host $hand $chan $chan1 hreason.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hreason.2 "$showhandle $showcount $showtime"
-blacktools:tell $nick $host $hand $chan $chan1 hreason.3 none
-blacktools:tell $nick $host $hand $chan $chan1 hreason.4 none
-blacktools:tell $nick $host $hand $chan $chan1 hreason.5 none
-blacktools:tell $nick $host $hand $chan $chan1 hreason.6 none
-}
-}
-
-
-extra {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hextra.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hextra.2 none
-blacktools:tell $nick $host $hand $chan $chan1 hextra.3 none
-blacktools:tell $nick $host $hand $chan $chan1 hextra.4 none
-blacktools:tell $nick $host $hand $chan $chan1 hextra.5 none
-}
-}
-
-antipub {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hantipub.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hantipub.2 none
-blacktools:tell $nick $host $hand $chan $chan1 hantipub.3 none
-}
-}
-
-privat {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hprivat.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hprivat.2 none
-blacktools:tell $nick $host $hand $chan $chan1 hprivat.3 none
-}
-}
-
-antidle {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hantidle.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hantidle.2 none
-blacktools:tell $nick $host $hand $chan $chan1 hantidle.3 none
-}
-}
-
-
-antinotice {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hantinotice.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hantinotice.2 none
-blacktools:tell $nick $host $hand $chan $chan1 hantinotice.3 none
-}
-}
-
-antictcp {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hantictcp.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hantictcp.2 none
-blacktools:tell $nick $host $hand $chan $chan1 hantictcp.3 none
-}
-}
-
-antibadword {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hantibadword.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hantibadword.2 none
-blacktools:tell $nick $host $hand $chan $chan1 hantibadword.3 none
-}
-}
-
-antilongtext {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hantilongtext.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hantilongtext.2 none
-blacktools:tell $nick $host $hand $chan $chan1 hantilongtext.3 none
-}
-}
- 
-antibadquitpart {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hantibadquitpart.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hantibadquitpart.2 none
-blacktools:tell $nick $host $hand $chan $chan1 hantibadquitpart.3 none
-}
-}
-
-antijoinpart {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hantijoinpart.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hantijoinpart.2 none
-blacktools:tell $nick $host $hand $chan $chan1 hantijoinpart.3 none
-}
-}
-
-antispam {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hantispam.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hantispam.2 none
-blacktools:tell $nick $host $hand $chan $chan1 hantispam.3 none
-}
-}
-
-antirepeat {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hantirepeat.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hantirepeat.2 none
-blacktools:tell $nick $host $hand $chan $chan1 hantirepeat.3 none
-}
-}
-
-anticolor {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hanticolor.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hanticolor.2 none
-blacktools:tell $nick $host $hand $chan $chan1 hanticolor.3 none
-}
-}
-
-antibold {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hantibold.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hantibold.2 none
-blacktools:tell $nick $host $hand $chan $chan1 hantibold.3 none
-}
-}
-
-antiunderline {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hantiunderline.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hantiunderline.2 none
-blacktools:tell $nick $host $hand $chan $chan1 hantiunderline.3 none
-}
-}
-
-anticaps {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hanticaps.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hanticaps.2 none
-blacktools:tell $nick $host $hand $chan $chan1 hanticaps.3 none
-}
-}
-
-badfullname {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hbadfullname.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hbadfullname.2 none
-blacktools:tell $nick $host $hand $chan $chan1 hbadfullname.3 none
-}
-}
-
-badnick {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hbadnick.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hbadnick.2 none
-blacktools:tell $nick $host $hand $chan $chan1 hbadnick.3 none
-}
-}
-
-badident {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hbadident.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hbadident.2 none
-blacktools:tell $nick $host $hand $chan $chan1 hbadident.3 none
-}
-}
-
-antichanflood {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hantichanflood.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hantichanflood.2 none
-blacktools:tell $nick $host $hand $chan $chan1 hantichanflood.3 none
-}
-}
-
-antijoinflood {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hantijoinflood.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hantijoinflood.2 none
-blacktools:tell $nick $host $hand $chan $chan1 hantijoinflood.3 none
-}
-}
-
-dr {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hdr.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hdr.2 none
-blacktools:tell $nick $host $hand $chan $chan1 hdr.3 none
-}
-}
-
-bot {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hbot.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hbot.2 none
-blacktools:tell $nick $host $hand $chan $chan1 hbot.3 none
-}
-}
-
-
-n {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hn.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hn.2 none
-blacktools:tell $nick $host $hand $chan $chan1 hn.3 none
-}
-}
-
-id {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hid.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hid.2 none
-blacktools:tell $nick $host $hand $chan $chan1 hid.3 none
-}
-}
-
-w {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hw.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hw.2 none
-blacktools:tell $nick $host $hand $chan $chan1 hw.3 none
-}
-}
-
-spam {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hspam.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hspam.2 none
-blacktools:tell $nick $host $hand $chan $chan1 hspam.3 none
-}
-}
-
-
-bw {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hbw.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hbw.2 none
-blacktools:tell $nick $host $hand $chan $chan1 hbw.3 none
-}
-}
-
-badchannel {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hbadchannel.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hbadchannel.2 none
-blacktools:tell $nick $host $hand $chan $chan1 hbadchannel.3 none
-}
-}
-
-counter {
-if {[matchattr $hand nm|M $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 hcounter.1 none
-blacktools:tell $nick $host $hand $chan $chan1 hcounter.2 none
-blacktools:tell $nick $host $hand $chan $chan1 hcounter.3 none
-}
-}
-
-}
-}
-
-
-
-
-proc comand:pubme {nick host hand chan arg} {
-global botnick wordsdir wdir sdir black seendir count server uptime {server-online}
-set arg [split $arg]
-set bnick [lindex [split $arg] 0]
-set what [lindex [split $arg] 1]
-if {([lsearch -exact [string tolower $bnick] [string tolower $botnick]] == 0)} {
-switch -exact -- [string tolower $what] {
-
-clear {
-if {[matchattr $hand nm|M $chan]} {
-set why [lindex [split $arg] 2]
-set type 1
-set chan1 "$chan"
-if {[regexp {^[\\+!#&]} $why] && [matchattr $hand nm|- $chan]} {
-set chan "$why"
-set why [lindex [split $arg] 3]
-}
-clear:process $nick $host $hand $chan $chan1 $why $type
-}
-}
-
-
-private {
-if {[matchattr $hand nm|M $chan]} {
-set type 1
-set chan1 "$chan"
-set why [lindex [split $arg] 2]
-set user [lindex [split $arg] 3]
-set host [lindex [split $arg] 4]
-if {[regexp {^[\\+!#&]} $why] && [matchattr $hand nm|- $chan]} {
-set chan "$why"
-set why [lindex [split $arg] 3]
-set user [lindex [split $arg] 4]
-set host [lindex [split $arg] 5]
-}
-private:process $nick $host $hand $chan $chan1 $why $user $host $type
-}
-}
-
-
-login {
-if {[matchattr $hand nm|MSOAV $chan]} {
-putquick "$black(login)"
-putquick "MODE $botnick :$black(xmod)"
-blacktools:tell:prv $nick $host $hand login.1 $black(chanserv)
-}
-}
-
-h {
-if {[matchattr $hand nm|MSOAV $chan]} {
-set chan1 "$chan"
-set command [lindex [split $arg] 2]
-h:process $nick $host $hand $chan $chan1 $command
-}
-}
-
-secure {
-if {[matchattr $hand nm|M $chan]} {
-set what [lindex [split $arg] 2]
-set type 1
-set chan1 "$chan"
-if {[regexp {^[#&]} $what] && [matchattr $hand nm|- $chan]} {
-set chan "$what"
-set what [lindex [split $arg] 3]
-}
-secure:process $nick $host $hand $chan $chan1 $what $type
-}
-}
-
-ignore {
-if {[matchattr $hand nm|- $chan]} {
-set chan1 "$chan"
-set what [lindex [split $arg] 2]
-set mask [lindex [split $arg] 3]
-set time [lindex [split $arg] 4]
-set reason [join [lrange [split $arg] 5 end]]
-if {$what == ""} { blacktools:tell $nick $host $hand $chan $chan1 ignore.2 none
-return 0
-}
-ignore:process $nick $host $hand $chan $chan1 $what $mask $time $reason
-}
-}
-
-
-
-idle {
-if {[matchattr $hand nm|M $chan]} {
-set char(p) [lindex $black(cmdchar) 0]
-set flag "-|f"
-set type1 1
-set chan1 "$chan"
-set why [lindex [split $arg] 2]
-set type [lindex [split $arg] 3]
-set user [lindex [split $arg] 3]
-set host [lindex [split $arg] 4]
-if {[regexp {^[\\+!#&]} $why] && [matchattr $hand nm|- $chan]} {
-set chan "$why"
-set why [lindex [split $arg] 3]
-set type [lindex [split $arg] 4]
-set user [lindex [split $arg] 4]
-set host [lindex [split $arg] 5]
-}
-antidle:process $why $type $type1 $user $host $nick $hand $chan $chan1
-}
-}
-
-version {
-if {[matchattr $hand nm|MASOV $chan]} {
-set chan1 "$chan"
-version:process $nick $host $hand $chan $chan1
-}
-}
-
-cc {
-if {[matchattr $hand nm|MASO $chan]} {
-set ::chan $chan
-set chan1 "$chan"
-set c [lindex [split $arg] 2]
-if {$c == ""} { blacktools:tell $nick $host $hand $chan $chan1 cc.2 none
-return 0
-}
-if {![regexp {^[\\+!#&]} $c]} {
-set c #$c
- } 
-
-putquick "MODE $c"
-bind raw - 329 createdpublic
-bind raw - 403 nocreatedpublic
-}
-}
-
-activ {
-if {[matchattr $hand nm|MASOV $chan]} {
-set type 1
-set chan1 "$chan"
-set user [lindex [split $arg] 2]
-if {[regexp {^[#&]} $user] && [matchattr $hand nm|- $chan]} {
-set chan "$user"
-set user [lindex [split $arg] 3]
-}
-activ:process $nick $host $hand $chan $chan1 $user $type
-}
-}
-
-delmyhost {
-if {[matchattr $hand nm|- $chan]} {
-set chan1 "$chan"
-set why [lindex [split $arg] 2]
-if {$why == ""} { blacktools:tell $nick $host $hand $chan $chan1 delmyhost.1 none
-return 0
-}
-delmyhost:process $nick $host $hand $chan $chan1 $why
-}
-}
-
-addmyhost {
-if {[matchattr $hand nm|- $chan]} {
-set why [lindex [split $arg] 2]
-set chan1 "$chan"
-if {$why == ""} { blacktools:tell $nick $host $hand $chan $chan1 addmyhost.2 none
-return 0
-}
-addmyhost:process $nick $host $hand $chan $chan1 $why
-}
-}
-
-
-leave {
-if {[matchattr $hand nm|M $chan]} {
-set dir "logs/leave($chan).txt"
-set type 1
-set chan1 "$chan"
-set who [lindex [split $arg] 2]
-set leave [join [lrange [split $arg] 3 end]]
-set number [lindex [split $arg] 3]
-if {[regexp {^[\\+!#&]} $who] && [matchattr $hand nm|- $chan]} {
-set chan "$who"
-set who [lindex [split $arg] 3]
-set leave [join [lrange [split $arg] 4 end]]
-set number [lindex [split $arg] 4]
-}
-leave:process $who $leave $number $type $nick $host $hand $chan $chan1
-}
-}
-
-
-greet {
-if {[matchattr $hand nm|M $chan]} {
-set who [lindex [split $arg] 2]
-set type 1
-set chan1 "$chan"
-set greet [join [lrange [split $arg] 3 end]]
-set number [lindex [split $arg] 3]
-if {[regexp {^[\\+!#&]} $who] && [matchattr $hand nm|- $chan]} {
-set chan "$who"
-set who [lindex [split $arg] 3]
-set greet [join [lrange [split $arg] 4 end]]
-set number [lindex [split $arg] 4]
-}
-greet:process $who $greet $number $type $nick $host $hand $chan $chan1
-}
-}
-
-chat {
-if {[matchattr $hand nm|- $chan]} {
-*ctcp:CHAT $nick $host $hand $botnick CHAT $arg
-blacktools:tell $nick $host $hand $chan $chan1 chat.1 none
-} 
-}
-
-seen {
-if {[matchattr $hand -|- $chan]} {
-if {![channel get $chan seen]} {
-return 0
-}
-set type 1
-set wseen [lindex $arg 2]
-set chan1 "$chan"
-if {[regexp {^[\\+!#&]} $wseen] && [matchattr $hand nm|- $chan]} {
-set chan1 "$chan"
-set chan "$wseen"
-set wseen [lindex $arg 3]
-}
-seen:process $nick $host $hand $chan $chan1 $wseen $type
-}
-}
-
-topic {
-if {[matchattr $hand nm|M $chan]} {
-set nop [lindex [split $arg] 2]
-set type 1
-set chan1 "$chan"
-set tp [join [lrange [split $arg] 3 end]]
-set number [lindex [split $arg] 3]
-if {[regexp {^[\\+!#&]} $nop] && [matchattr $hand nm|- $chan]} {
-set chan "$nop"
-set nop [lindex [split $arg] 3]
-set tp [join [lrange [split $arg] 4 end]]
-set number [lindex [split $arg] 4]
-}
-topic:process $nick $host $hand $chan $chan1 $nop $tp $number $type
-}
-}
-
-limit {
-if {[matchattr $hand nm|M $chan]} {
-set why [lindex [split $arg] 2]
-set lm [lindex [split $arg] 3]
-set type 1
-set chan1 "$chan"
-if {[regexp {^[\\+!#&]} $why] && [matchattr $hand nm|- $chan]} {
-set chan "$why"
-set why [lindex [split $arg] 3]
-set lm [lindex [split $arg] 4]
-}
-limit:process $nick $host $hand $chan $chan1 $why $lm $type
-}
-}
-
-anunt {
-if {[matchattr $hand nm|M $chan]} {
-set type 1
-set chan1 "$chan"
-set who [lindex [split $arg] 2]
-set message [join [lrange [split $arg] 3 end]]
-set number [lindex [split $arg] 3]
-if {[regexp {^[\\+!#&]} $who] && [matchattr $hand nm|- $chan]} {
-set chan "$who"
-set who [lindex [split $arg] 3]
-set message [join [lrange [split $arg] 4 end]]
-set number [lindex [split $arg] 4]
-}
-anunt:process $nick $host $hand $chan $chan1 $who $message $number $type
-}
-}
-
-bt {
-if {[matchattr $hand nm|- $chan]} {
-set who [lindex [split $arg] 2]
-set chan1 "$chan"
-set message [join [lrange [split $arg] 3 end]]
-set number [lindex [split $arg] 3]
-if {$who == ""} { blacktools:tell $nick $host $hand $chan $chan1 autobroadcast.2 none
-return 0
-}
-broadcast:process $nick $host $hand $chan $chan1 $who $message $number
-}
-}
-
-badchan {
-if {[matchattr $hand nm|M $chan]} {
-set why [lindex [split $arg] 2]
-set type 1
-set chan1 "$chan"
-set bdchan [join [lindex [split $arg] 3]]
-if {[regexp {^[\\+!#&]} $why] && [matchattr $hand nm|- $chan]} {
-set chan "$why"
-set why [lindex [split $arg] 3]
-set bdchan [join [lindex [split $arg] 4]]
-}
-badchan:process $nick $host $hand $chan $chan1 $why $bdchan $type
-}
-}
-
-count {
-if {[matchattr $hand nm|M $chan]} {
-set why [lindex [split $arg] 2]
-set type 1
-set chan1 "$chan"
-if {[regexp {^[\\+!#&]} $why] && [matchattr $hand nm|- $chan]} {
-set chan "$why"
-set why [lindex [split $arg] 3]
-}
-count:process $nick $host $hand $chan $chan1 $why $type
-}
-}
-
-delvoice {
-if {[matchattr $hand nm|M $chan]} {
-set user [lindex [split $arg] 2]
-set type 1
-set chan1 "$chan"
-if {[regexp {^[\\+!#&]} $user] && [matchattr $hand nm|- $chan]} {
-set chan "$user"
-set user [lindex [split $arg] 3]
-}
-delvoice:process $nick $host $hand $chan $chan1 $user $type
-}
-
-}
-
-delop {
-if {[matchattr $hand nm|M $chan]} {
-set user [lindex [split $arg] 2]
-set type 1
-set chan1 "$chan"
-if {[regexp {^[\\+!#&]} $user] && [matchattr $hand nm|- $chan]} {
-set chan "$user"
-set user [lindex [split $arg] 3]
-}
-delop:process $nick $host $hand $chan $chan1 $user $type
-}
-
-}
-
-addvoice {
-if {[matchattr $hand nm|M $chan]} {
-set user [lindex [split $arg] 2]
-set type 1
-set chan1 "$chan"
-if {[regexp {^[\\+!#&]} $user] && [matchattr $hand nm|- $chan]} {
-set chan "$user"
-set user [lindex [split $arg] 3]
-}
-addvoice:process $nick $host $hand $chan $chan1 $user $type
-}
-}
-
-addop {
-if {[matchattr $hand nm|M $chan]} {
-set user [lindex [split $arg] 2]
-set type 1
-set chan1 "$chan"
-if {[regexp {^[\\+!#&]} $user] && [matchattr $hand nm|- $chan]} {
-set chan "$user"
-set user [lindex [split $arg] 3]
-}
-addop:process $nick $host $hand $chan $chan1 $user $type
-}
-}
-
-
-addbot {
-if {[matchattr $hand nm|- $chan]} {
-set why [lindex [split $arg] 2]
-set host [lindex [split $arg] 3]
-set chan1 "$chan"
-if {$why == ""} { blacktools:tell $nick $host $hand $chan $chan1 addbot.2 none
-return 0
-}
-addbot:process $nick $host $hand $chan $chan1 $why $host
-}
-}
-
-whois {
-if {[matchattr $hand nm|MAOS $chan]} {
-set chan1 "$chan"
-set who [lindex [split $arg] 2]
-if {$who == ""} { blacktools:tell $nick $host $hand $chan $chan1 whois.2 none
-return 0
-}
-whois:process $nick $host $hand $chan $chan1 $who
-}
-}
-
-vers {
-if {[matchattr $hand nm|MAOS $chan]} {
-set chan1 "$chan"
-set why [lindex [split $arg] 2]
-if {$why == ""} { blacktools:tell $nick $host $hand $chan $chan1 vers.2 none
-return 0
-}
-vers:process $nick $host $hand $chan $chan1 $why
-}
-}
-
-time {
-if {[matchattr $hand nm|MAOSV $chan]} {
-set chan1 "$chan"
-set time [ctime [unixtime]]
-blacktools:tell $nick $host $hand $chan $chan1 time.1 $time
-}
-}
-
-ping {
-if {[matchattr $hand nm|MAOSV $chan]} {
-putquick "PRIVMSG $nick :\001PING [expr {abs([clock clicks -milliseconds])}]\001"
-return 0
-}
-}
-
-us {
-if {[matchattr $hand nm|MA $chan]} {
-set type 1
-set chan1 "$chan"
-set users [lindex [split $arg] 2]
-if {[regexp {^[#&]} $users] && [matchattr $hand nm|- $chan]} {
-set chan "$users"
-set users [lindex [split $arg] 3]
-}
-us:process $nick $host $hand $chan $chan1 $users $type
-}
-} 
-
-s {
-if {[matchattr $hand nm|MA $chan]} {
-set type 1
-set chan1 "$chan"
-set users [lindex [split $arg] 2]
-if {[regexp {^[#&]} $users] && [matchattr $hand nm|- $chan]} {
-set chan "$users"
-set users [lindex [split $arg] 3]
-}
-s:process $nick $host $hand $chan $chan1 $users $type
-}
-}
-
-info {
-if {[matchattr $hand nm|MASOV $chan]} {
-set user [lindex [split $arg] 2]
-set type 1
-set chan1 "$chan"
-if {[regexp {^[\\+!#&]} $user] && [matchattr $hand nm|- $chan]} {
-set chan "$user"
-set user [lindex [split $arg] 3]
-}
-info:process $nick $host $hand $chan $chan1 $user $type
-}
-}
-
-channels {
-if {[matchattr $hand nm|MASOV $chan]} {
-set chan1 "$chan"
-channels:process $nick $host $hand $chan $chan1
-}
-}
-
-
-userlist {
-if {[matchattr $hand nm|MASOV $chan]} {
-set level [lindex [split $arg] 2]
-set type 1
-set chan1 "$chan"
-if {[regexp {^[#&]} $level] && [matchattr $hand nm|- $chan]} {
-set chan "$level"
-set level [lindex [split $arg] 3]
-} 
-userlist:execute $hand $host $level $chan $chan1 $nick $type
-}
-}
-
-chuser {
-if {[matchattr $hand nm|M $chan]} {
-set user [lindex [split $arg] 2]
-set type 1
-set chan1 "$chan"
-set chandle [lindex [split $arg] 3]
-chuser:process $nick $host $hand $chan $chan1 $user $chandle $type
-}
-}
-
-
-delhost {
-if {[matchattr $hand nm|M $chan]} {
-set user [lindex [split $arg] 2]
-set type 1
-set chan1 "$chan"
-set hosts [lrange [split $arg] 3 end]
-delhost:process $nick $host $hand $chan $chan1 $user $hosts $type
-}
-}
-
-botidle {
-if {[matchattr $hand nm|M $chan]} {
-set chan1 "$chan"
-set what [lindex [split $arg] 2]
-if {$what == ""} { blacktools:tell $nick $host $hand $chan $chan1 antibotidle.2 none
-return 0
-}
-botidle:process $nick $host $hand $chan $chan1 $what
-}
-}
-
-addhost {
-if {[matchattr $hand nm|M $chan]} {
-set type 1
-set chan1 "$chan"
-set user [lindex [split $arg] 2]
-set hosts [lrange [split $arg] 3 end]
-addhost:process $nick $host $hand $chan $chan1 $user $hosts $type
-}
-}
-
-del {
-if {[matchattr $hand nm|- $chan]} {
-set args [lrange [split $arg] 2 end]
-set type 1
-set chan1 "$chan"
-del:process $nick $host $hand $chan $chan1 $args $type
-}
-}
-
-
-delacc {
-if {[matchattr $hand nm|MA $chan]} {
-set args [lrange [split $arg] 2 end]
-set type 1
-set chan1 "$chan"
-set c [lindex [split $arg] 2]
-if {[regexp {^[#&]} $c] && [matchattr $hand nm|- $chan]} {
-set chan "$c"
-set args [lrange [split $arg] 3 end]
-}
-delacc:process $nick $host $hand $chan $chan1 $args $type
-}
-}
-
-adduser {
-if {[matchattr $hand nm|MA $chan]} {
-set chan1 "$chan"
-set level [lindex [split $arg] 2]
-set args [lrange [split $arg] 3 end]
-set c [lindex [split $arg] 3]
-set type 1
-if {[regexp {^[#&]} $c] && [matchattr $hand nm|- $chan]} {
-set chan "$c"
-set args [lrange [split $arg] 4 end]
-}
-adduser:process $nick $host $hand $chan $chan1 $args $level $type
-}
-}
-
-add {
-if {[matchattr $hand nm|MA $chan]} {
-set level [lindex [split $arg] 2]
-set time [ctime [unixtime]]
-set type 1
-set chan1 "$chan"
-set args [lrange [split $arg] 3 end]
-set c [lindex [split $arg] 3]
-if {[regexp {^[#&]} $c] && [matchattr $hand nm|- $chan]} {
-set chan "$c"
-set args [lrange [split $arg] 4 end]
-}
-if {[matchattr $hand -|q $chan]} { 
-blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-add:process $args $time $level $hand $host $chan $chan1 $nick $type
-}
-}
-
-unsuspend {
-if {[matchattr $hand nm|- $chan]} {
-set chans [lindex [split $arg] 2]
-set chan1 "$chan"
-if {$chans == ""} {blacktools:tell $nick $host $hand $chan $chan1 unsuspend.5 none
-return 0 
-}
-
-if {![regexp {^[\\+!#&]} $chans]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
- }
- 
-if {![validchan $chans]} { blacktools:tell $nick $host $hand $chan $chan1 unsuspend.2 $chans
-return 0
-}
-
-if {![channel get $chans inactive]} {
-blacktools:tell $nick $host $hand $chan $chan1 unsuspend.3 $chans
-return 0
-}
-channel set $chans -inactive
-blacktools:tell $nick $host $hand $chan $chan1 unsuspend.4 $chans
-}
-}
-
-
-
-suspend {
-if {[matchattr $hand nm|- $chan]} {
-set chans [lindex [split $arg] 2]
-set chan1 "$chan"
-if {$chans == ""} {blacktools:tell $nick $host $hand $chan $chan1 suspend.5 none
-return 0 
-}
-
-if {![regexp {^[\\+!#&]} $chans]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
- }
-
-if {![validchan $chans]} { blacktools:tell $nick $host $hand $chan $chan1 suspend.2 $chans
-return 0
-}
-
-if { [channel get $chans inactive]} {
-blacktools:tell $nick $host $hand $chan $chan1 suspend.3 $chans 
-return 0
-}
-channel set $chans +inactive
-blacktools:tell $nick $host $hand $chan $chan1 suspend.4 $chans 
-}
-}
-
-
-delchan {
-if {[matchattr $hand nm|- $chan]} {
-set chans [lindex [split $arg] 2]
-set chan1 "$chan"
-if {$chans == ""} {blacktools:tell $nick $host $hand $chan $chan1 delchan.4 none
-return 0 
-}
-if {![regexp {^[\\+!#&]} $chans]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none 
-return 0
- } 
-
-if {![validchan $chans]} { blacktools:tell $nick $host $hand $chan $chan1 delchan.2 $chans
-return 0
-}
-channel remove $chans
-delchan:stats $chans $hand $host
-blacktools:tell $nick $host $hand $chan $chan1 delchan.3 $chans
-}
-}
-
-addchan {
-if {[matchattr $hand nm|- $chan]} {
-set chan1 "$chan"
-set chans [lindex [split $arg] 2]
-if {$chans == ""} {blacktools:tell $nick $host $hand $chan $chan1 addchan.4 none
-return 0 
-}
-
-if {![regexp {^[\\+!#&]} $chans]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
-return 0
- } 
-
-if {[validchan $chans]} {
-blacktools:tell $nick $host $hand $chan $chan1 addchan.2 $chans
-return 0
-} else {
-channel add $chans
-addchan:stats $chans $hand $host
-blacktools:tell $nick $host $hand $chan $chan1 addchan.3 $chans
-}
-}
-}
-
-die {
-if {[matchattr $hand nm|- $chan]} {
-set chan1 "$chan"
-blacktools:tell $nick $host $hand $chan $chan1 die.1 none
-utimer 3 [list die "byeeee"]
-}
-}
-
-jump {
-if {[matchattr $hand nm|- $chan]} {
-set chan1 "$chan"
-set serv [lindex [split $arg] 2]
-blacktools:tell $nick $host $hand $chan $chan1 jump.1 none
-utimer 3 [list jump $serv]
-}
-}
-
-
-save {
-if {[matchattr $hand nm|- $chan]} {
-set chan1 "$chan"
-blacktools:tell $nick $host $hand $chan $chan1 save.1 none
- save
-}
-}
-
-restart {
-if {[matchattr $hand nm|- $chan]} {
-set chan1 "$chan"
-blacktools:tell $nick $host $hand $chan $chan1 restart.1 none
- utimer 3 [list restart]
-}
-}
-
-rehash {
-if {[matchattr $hand nm|- $chan]} {
-set chan1 "$chan"
-blacktools:tell $nick $host $hand $chan $chan1 rehash.1 none
- rehash
-}
-}
-
-nick {
-if {[matchattr $hand nm|- $chan]} {
-set who "$nick"
-set newnick [lindex [split $arg] 2]
-nick:process $who $newnick $host $hand $chan
-}
-}
-
-
-
-msg {
-if {[matchattr $hand nm|- $chan]} {
-set nicks [lindex [split $arg] 2]
-set chan1 "$chan"
-set msg [join [lrange [split $arg] 3 end]]
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-if {$nicks == ""} {blacktools:tell $nick $host $hand $chan $chan1 msg.2 none
-return 0
-}
-if {[isbotnick $nicks]} { 
-return 0
- }
-putquick "PRIVMSG $nicks :$msg"
-}
-}
-
-
-silence {
-if {[matchattr $hand nm|- $chan]} {
-set value [lindex [split $arg] 2]
-set chan1 "$chan"
-if {$value == ""} { blacktools:tell $nick $host $hand $chan $chan1 silence.2 none
-return 0
-}
-silence:process $nick $host $hand $chan $chan1 $value
-}
-}
-
-set {
-if {[matchattr $hand nm|M $chan]} {
-set flags [lindex [split $arg] 2]
-set type [join [lrange [split $arg] 3 end]]
-set type1 1
-set chan1 "$chan"
-if {[regexp {^[#&]} $flags] && [matchattr $hand nm|- $chan]} {
-set chan "$flags"
-set flags [lindex [split $arg] 3]
-set type [join [lrange [split $arg] 4 end]]
-}
-set:process $nick $host $hand $chan $chan1 $flags $type $type1
-}
-}
-
-mode {
-if {[matchattr $hand nm|OSMA $chan]} {
-set modes [lindex [split $arg] 2]
-set type 1
-set chan1 "$chan"
-foreach c [channels] {
-set backchan [channel get $c backchan]
-if {[string match -nocase $chan $backchan] && [channel get $c chanreport]} {
-set chan "$c"
-}
-}
-if {[regexp {^[#&]} $modes] && [matchattr $hand nm|- $chan]} {
-set chan "$modes"
-set modes [lindex [split $arg] 3]
-}
-mode:process $nick $host $hand $chan $chan1 $modes $type
-}
-}
-
-away {
-if {[matchattr $hand nm|- $chan]} {
-set chan1 "$chan"
-set aw [join [lrange [split $arg] 2 end]]
-if {$aw == "" } {blacktools:tell $nick $host $hand $chan $chan1 away.2 none
-return 0
-}
-away:process $nick $host $hand $chan $chan1 $aw
-}
-}
-
-cycle {
-if {[matchattr $hand nm|OSMA $chan]} {
-set reason [join [lrange [split $arg] 2 end]]
-set c [lindex [split $arg] 2]
-set chan1 "$chan"
-if {[regexp {^[\\+!#&]} $c] && [matchattr $hand nm|- $chan]} {
-set chan "$c"
-set reason [join [lrange [split $arg] 3 end]]
-}
-cycle:process $nick $host $hand $chan $chan1 $reason
-}
-}
-
-
-purge {
-if {[matchattr $hand nm|M $chan]} {
-set reason [join [lrange [split $arg] 2 end]]
-set chan1 "$chan"
-if {$reason == ""} {
-blacktools:tell $nick $host $hand $chan $chan1 purge.1 none
-return 0
-}
-purge:process $nick $host $hand $chan $chan1 $reason
-}
-}
-
-
-check {
-if {[matchattr $hand nm|OSMA $chan]} {
-set chan1 "$chan"
-set checked [lindex [split $arg] 2]
-if {$checked == ""} { blacktools:tell $nick $host $hand $chan $chan1 check.2 none
-return 0
-}
-check:process $nick $host $hand $chan $chan1 $checked
-}
-}
-
-broadcast {
-if {[matchattr $hand nm|- $chan]} {
-set chan1 "$chan"
-set text [join [lrange [split $arg] 2 end]]
-if {$text == ""} { 
-blacktools:tell $nick $host $hand $chan $chan1 broadcast.2 none
-return 0
-}
-broadcast:cmd:process $nick $host $hand $chan $chan1 $text
-}
-}
-
-act {
-if {[matchattr $hand nm|SMA $chan]} {
-set text [join [lrange [split $arg] 2 end]]
-set c [lindex [split $arg] 2]
-set type 1
-set chan1 "$chan"
-if {[regexp {^[\\+!#&]} $c] && [matchattr $hand nm|- $chan]} {
-set chan "$c"
-set text [join [lrange [split $arg] 3 end]]
-}
-act:process $nick $host $hand $chan $chan1 $text $type
-}
-}
-
-
-say {
-if {[matchattr $hand nm|SMA $chan]} {
-set text [join [lrange [split $arg] 2 end]]
-set c [lindex [split $arg] 2]
-set type 1
-set chan1 "$chan"
-if {[regexp {^[\\+!#&]} $c] && [matchattr $hand nm|- $chan]} {
-set chan "$c"
-set text [join [lrange [split $arg] 3 end]]
-}
-say:process $nick $host $hand $chan $chan1 $text $type
-}
-}
-
-v {
-if {[matchattr $hand nm|VOSMA $chan]} {
-set voicex [lrange $arg 2 end]
-set c [lindex [split $arg] 2]
-set nick [split $nick]
-set chan1 "$chan"
-if {[regexp {^[\\+!#&]} $c] && [matchattr $hand nm|- $chan]} {
-set chan "$c"
-set voicex [lrange $arg 3 end]
-}
-v:process $nick $host $hand $chan $chan1 $voicex
-}
-}
-
-o {
-if {[matchattr $hand nm|OSMA $chan]} {
-set opex [lrange $arg 2 end]
-set c [lindex [split $arg] 2]
-set nick [split $nick]
-set chan1 "$chan"
-if {[regexp {^[\\+!#&]} $c] && [matchattr $hand nm|- $chan]} {
-set chan "$c"
-set opex [lrange $arg 3 end]
-}
-o:process $nick $host $hand $chan $chan1 $opex
-}
-}
-
-uptime {
-if {[matchattr $hand nm|- $chan]} {
-set chan1 "$chan"
-set up [duration [expr [unixtime] - $uptime]]
-set on [duration [expr [unixtime] - ${server-online}]]
-blacktools:tell $nick $host $hand $chan $chan1 status.1 $up
-blacktools:tell $nick $host $hand $chan $chan1 status.2 $server
-blacktools:tell $nick $host $hand $chan $chan1 status.3 $on
-}
-}
-
-status {
-if {[matchattr $hand nm|- $chan]} {
-set chan1 "$chan"
-regsub -all " " [channels] ", " chans
-catch {exec uptime} shelluptime
-set up [duration [expr [unixtime] - $uptime]]
-set on [duration [expr [unixtime] - ${server-online}]]
-blacktools:tell $nick $host $hand $chan $chan1 status.1 $up
-blacktools:tell $nick $host $hand $chan $chan1 status.2 $server
-blacktools:tell $nick $host $hand $chan $chan1 status.3 $on
-blacktools:tell $nick $host $hand $chan $chan1 status.4 $chans
-blacktools:tell $nick $host $hand $chan $chan1 status.5 $shelluptime
-}
-}
-
-t {
-if {[matchattr $hand nm|VOSMA $chan]} {
-set topics [join [lrange [split $arg] 2 end]]
-set type 1
-set chan1 "$chan"
-if {[regexp {^[\\+!#&]} $topics] && [matchattr $hand nm|- $chan]} {
-set chan "$topics"
-set topics [join [lrange [split $arg] 3 end]]
-}
-t:process $nick $host $hand $chan $chan1 $topics $type
-}
-}
-
-d {
-if {[matchattr $hand nm|SMA $chan]} {
-set days [lindex [split $arg] 2]
-set dnick [lindex [split $arg] 3]
-set type 1
-set mask [lindex [split $arg] 3]
-set reason [join [lrange [split $arg] 4 end]]
-set handle [nick2hand $dnick]
-set chan1 "$chan"
-foreach c [channels] {
-set backchan [channel get $c backchan]
-if {[string match -nocase $chan $backchan] && [channel get $c chanreport]} {
-set chan "$c"
-}
-}
-if {[regexp {^[\\+!#&]} $days] && [matchattr $hand nm|- $chan]} {
-set chan "$days"
-set days [lindex [split $arg] 3]
-set mask [lindex [split $arg] 4]
-set dnick [lindex [split $arg] 4]
-set reason [join [lrange [split $arg] 5 end]]
-if {![regexp {^[0-9]} $days]} {
-set days 1
-set mask [lindex [split $arg] 3]
-set dnick [lindex [split $arg] 3]
-set reason [join [lrange [split $arg] 4 end]]
-} 
-}
-if {![regexp {^[0-9]} $days]} {
-set days 1
-set mask [lindex [split $arg] 2]
-set dnick [lindex [split $arg] 2]
-set reason [join [lrange [split $arg] 3 end]]
-}
-d:process $dnick $mask $days $reason $nick $hand $host $chan $chan1 $type
-}
-}
-
-sb {
-if {[matchattr $hand nm|VOSMA $chan]} {
-set bhost [string tolower [lindex [split $arg] 2]]
-set what [lindex [split $arg] 3]
-set type 1
-set chan1 "$chan"
-foreach c [channels] {
-set backchan [channel get $c backchan]
-if {[string match -nocase $chan $backchan] && [channel get $c chanreport]} {
-set chan "$c"
-}
-}
-if {[regexp {^[\\+!#&]} $bhost] && [matchattr $hand nm|- $chan]} {
-set chan "$bhost"
-set bhost [string tolower [lindex [split $arg] 3]]
-set what [lindex [split $arg] 4]
-}
-sb:process $bhost $what $nick $hand $host $chan $chan1 $type
-}
-}
-
-ub {
-if {[matchattr $hand nm|OSMA $chan]} {
-set ban [lindex [split $arg] 2]
-set why [lindex [split $arg] 3]
-set type 1
-set chan1 "$chan"
-foreach c [channels] {
-set backchan [channel get $c backchan]
-if {[string match -nocase $chan $backchan] && [channel get $c chanreport]} {
-set chan "$c"
-}
-}
-if {[regexp {^[\\+!#&]} $ban] && [matchattr $hand nm|- $chan]} {
-set chan "$ban"
-set ban [lindex [split $arg] 3]
-}
-ub:process $ban $why $nick $hand $host $chan $chan1 $type
-}
-
-}
-
-bw {
-if {[matchattr $hand nm|OSMA $chan]} {
-set abuser [lindex [split $arg] 2]
-set mask [lindex [split $arg] 2]
-set type 1
-set chan1 "$chan"
-set handle [nick2hand $abuser]
-foreach c [channels] {
-set backchan [channel get $c backchan]
-if {[string match -nocase $chan $backchan] && [channel get $c chanreport]} {
-set chan "$c"
-}
-}
-if {[regexp {^[\\+!#&]} $abuser] && [matchattr $hand nm|- $chan]} {
-set chan "$abuser"
-set abuser [lindex [split $arg] 3]
-set mask [lindex [split $arg] 3]
-}
-bw:process $abuser $mask $nick $hand $host $chan $chan1 $type
-}
-}
-
-stick {
-if {[matchattr $hand nm|SMA $chan]} {
-set snick [lindex [split $arg] 2]
-set mask [lindex [split $arg] 2]
-set type 1
-set time [lindex [split $arg] 3]
-set reason [join [lrange [split $arg] 4 end]]
-set handle [nick2hand $snick]
-set list [userlist $black(exceptflags) $chan]
-set chan1 "$chan"
-foreach c [channels] {
-set backchan [channel get $c backchan]
-if {[string match -nocase $chan $backchan] && [channel get $c chanreport]} {
-set chan "$c"
-}
-}
-if {[regexp {^[\\+!#&]} $snick] && [matchattr $hand nm|- $chan]} {
-set chan "$snick"
-set time [lindex [split $arg] 4]
-set mask [lindex [split $arg] 3]
-set snick [lindex [split $arg] 3]
-set reason [join [lrange [split $arg] 5 end]]
-if {![regexp {^[0-9]} $time]} {
-set time "$black(dfstickbantime)"
-set reason [join [lrange [split $arg] 4 end]]
-}
-}
-if {![regexp {^[0-9]} $time]} {
-set time "$black(dfstickbantime)"
-set reason [join [lrange [split $arg] 3 end]]
-}
-stick:process $snick $mask $time $reason $nick $hand $host $chan $chan1 $type
-}
-}
-
-
-k {
-if {[matchattr $hand nm|VOSMA $chan]} {
-set knick [lindex [split $arg] 2]
-set type 1
-set reason [join [lrange [split $arg] 3 end]]
-set handle [nick2hand $knick]
-set chan1 "$chan"
-foreach c [channels] {
-set backchan [channel get $c backchan]
-if {[string match -nocase $chan $backchan] && [channel get $c chanreport]} {
-set chan "$c"
-}
-}
-if {[regexp {^[\\+!#&]} $knick] && [matchattr $hand nm|- $chan]} {
-set chan "$knick"
-set knick [lindex [split $arg] 3]
-set reason [join [lrange [split $arg] 4 end]]
-}
-k:process $knick $nick $hand $host $reason $chan $chan1 $type
-}
-}
-
-spam {
-if {[matchattr $hand nm|OSMA $chan]} {
-set spammer [lindex [split $arg] 2]
-set type 1
-set mask [lindex [split $arg] 2]
-set handle [nick2hand $spammer]
-set chan1 "$chan"
-foreach c [channels] {
-set backchan [channel get $c backchan]
-if {[string match -nocase $chan $backchan] && [channel get $c chanreport]} {
-set chan "$c"
-}
-}
-if {[regexp {^[\\+!#&]} $spammer] && [matchattr $hand nm|- $chan]} {
-set chan "$spammer"
-set spammer [lindex [split $arg] 2]
-set mask [lindex [split $arg] 2]
-}
-spam:process $spammer $mask $nick $hand $host $chan $chan1 $type
-}
-}
-
-w {
-if {[matchattr $hand nm|OVSMA $chan]} {
-set wnick [lindex [split $arg] 2]
-set type 1
-set chan1 "$chan"
-set handle [nick2hand $wnick]
-foreach c [channels] {
-set backchan [channel get $c backchan]
-if {[string match -nocase $chan $backchan] && [channel get $c chanreport]} {
-set chan "$c"
-}
-}
-if {[regexp {^[\\+!#&]} $wnick] && [matchattr $hand nm|- $chan]} {
-set chan "$wnick"
-set wnick [lindex [split $arg] 3]
-}
-w:process $wnick $nick $hand $host $chan $chan1 $type
-}
-}
-
-black {
-if {[matchattr $hand nm|SMA $chan]} {
-set blnick [lindex [split $arg] 2]
-set mask [lindex [split $arg] 2]
-set type 1
-set reason [join [lrange [split $arg] 3 end]]
-set handle [nick2hand $blnick]
-set chan1 "$chan"
-foreach c [channels] {
-set backchan [channel get $c backchan]
-if {[string match -nocase $chan $backchan] && [channel get $c chanreport]} {
-set chan "$c"
-}
-}
-if {[regexp {^[\\+!#&]} $blnick] && [matchattr $hand nm|- $chan]} {
-set chan "$blnick"
-set blnick [lindex [split $arg] 3]
-set mask [lindex [split $arg] 3]
-set reason [join [lrange [split $arg] 4 end]]
-}
-black:process $blnick $nick $mask $hand $host $chan $chan1 $reason $type
-}
-}
-
-
-bl {
-if {[matchattr $hand nm|SMA $chan]} {
-set blnick [lindex [split $arg] 2]
-set mask [lindex [split $arg] 2]
-set type 1
-set chan1 "$chan"
-set reason [join [lrange [split $arg] 3 end]]
-set handle [nick2hand $blnick]
-foreach c [channels] {
-set backchan [channel get $c backchan]
-if {[string match -nocase $chan $backchan] && [channel get $c chanreport]} {
-set chan "$c"
-}
-}
-if {[regexp {^[\\+!#&]} $blnick] && [matchattr $hand nm|- $chan]} {
-set chan "$blnick"
-set blnick [lindex [split $arg] 3]
-set mask [lindex [split $arg] 3]
-set reason [join [lrange [split $arg] 4 end]]
-}
-black:process $blnick $nick $mask $hand $host $chan $chan1 $reason $type
-}
-}
-
-
-
-id {
-if {[matchattr $hand nm|OSMA $chan]} {
-set idnick [lindex [split $arg] 2]
-set handle [nick2hand $idnick]
-set type 1
-set chan1 "$chan"
-foreach c [channels] {
-set backchan [channel get $c backchan]
-if {[string match -nocase $chan $backchan] && [channel get $c chanreport]} {
-set chan "$c"
-}
-}
-if {[regexp {^[\\+!#&]} $idnick] && [matchattr $hand nm|- $chan]} {
-set chan "$idnick"
-set idnick [lindex [split $arg] 3]
-}
-id:process $idnick $nick $hand $host $chan $chan1 $type
-}
-}
-
-bot {
-if {[matchattr $hand nm|OSMA $chan]} {
-set bot [lindex [split $arg] 2]
-set mask [lindex [split $arg] 2]
-set type 1
-set chan1 "$chan"
-foreach c [channels] {
-set backchan [channel get $c backchan]
-if {[string match -nocase $chan $backchan] && [channel get $c chanreport]} {
-set chan "$c"
-}
-}
-if {[regexp {^[\\+!#&]} $bot] && [matchattr $hand nm|- $chan]} {
-set chan "$bot"
-set bot [lindex [split $arg] 3]
-set mask [lindex [split $arg] 3]
-}
-bot:process $bot $mask $nick $hand $host $chan $chan1 $type
-}
-}
-
-dr {
-if {[matchattr $hand nm|OSMA $chan]} {
-set drone [lindex [split $arg] 2]
-set mask [lindex [split $arg] 2]
-set type "1"
-set chan1 "$chan"
-foreach c [channels] {
-set backchan [channel get $c backchan]
-if {[string match -nocase $chan $backchan] && [channel get $c chanreport]} {
-set chan "$c"
-}
-}
-if {[regexp {^[\\+!#&]} $drone] && [matchattr $hand nm|- $chan]} {
-set chan "$drone"
-set drone [lindex [split $arg] 3]
-set mask [lindex [split $arg] 3]
-}
-dr:process $drone $mask $nick $hand $host $chan $chan1 $type
-}
-}
-
-b {
-if {[matchattr $hand nm|OSMA $chan]} {
-set bnick [lindex [split $arg] 2]
-set mask [lindex [split $arg] 2]
-set time [lindex [split $arg] 3]
-set type 1
-set chan1 "$chan"
-set type1 [lindex [split $arg] 3]
-set type2 [lindex [split $arg] 4]
-set reason [join [lrange [split $arg] 4 end]] 
-set handle [nick2hand $bnick]
-if {[string match -nocase "global" $type1] || [string match -nocase "global" $type2]  && [matchattr $hand nm|- $chan]} {
-if {[string match -nocase $type1 "global"]} {
-set reason [join [lrange [split $arg] 4 end]]
-}
-if {[string match -nocase $type2 "global"]} {
-set reason [join [lrange [split $arg] 5 end]]
-}
-set list [userlist nm|-]
-foreach user $list {
- set hosts [getuser $user hosts]
-foreach host $hosts {
-if {[string match $mask $host]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noban none
- return 0
-}
-}
-}
-if {[matchattr $handle nm|- $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noban none
- return 0
-}
-
-if {![regexp {^[0-9]} $time]} {
-set reason [join [lrange [split $arg] 4 end]]
-set time "$black(btime)"
-}
-if {$reason == ""} {set reason1 "(GLOBAL) $black(dfreason)"
- } else { set reason1 "(GLOBAL) $reason" }
-
-if {[channel get $chan showhandle]} {
-set reason "($hand) $reason1"
-} else { set reason "$reason1" 
-}
-
-if {[isbotnick $bnick]} {
-return 0
-}
-if {![botisop $chan]} {
-blacktools:tell $nick $host $hand $chan $chan1 gl.noop none
-return 0
-}
-if {$mask == "*!*@*"} {
- return 0
-}
-if {[onchan $bnick $chan]} {
-set mask *!*@[lindex [split [getchanhost $bnick $chan] "@"] 1] 
-}
-newban $mask $hand $reason $time
-if {$time == "0"} { set reply "Permanent" } else { set reply "$time" }
-blacktools:tell $nick $host $hand $chan $chan1 b.8 "$mask $reply"
-return 0
-}
-set chan1 "$chan"
-foreach c [channels] {
-set backchan [channel get $c backchan]
-if {[string match -nocase $chan $backchan] && [channel get $c chanreport]} {
-set chan "$c"
-}
-}
-if {[regexp {^[\\+!#&]} $bnick] && [matchattr $hand nm|- $chan]} {
-set chan "$bnick"
-set bnick [lindex [split $arg] 3]
-set mask [lindex [split $arg] 3]
-set time [lindex [split $arg] 4]
-set reason [join [lrange [split $arg] 5 end]]
-if {![regexp {^[0-9]} $time]} {
-set reason [join [lrange [split $arg] 4 end]]
-set time "$black(btime)"
-}
-}
-if {![regexp {^[0-9]} $time]} {
-set reason [join [lrange [split $arg] 3 end]]
-set time "$black(btime)"
-}
-b:local $bnick $mask $time $nick $reason $hand $host $chan $chan1 $type
-}
-}
-
-
-n {
-if {[matchattr $hand nm|OSMA $chan]} {
-set bnick [lindex [split $arg] 2]
-set type 1
-set handle [nick2hand $bnick]
-set chan1 "$chan"
-foreach c [channels] {
-set backchan [channel get $c backchan]
-if {[string match -nocase $chan $backchan] && [channel get $c chanreport]} {
-set chan "$c"
-}
-}
-if {[regexp {^[\\+!#&]} $bnick] && [matchattr $hand nm|- $chan]} {
-set chan "$bnick"
-set bnick [lindex [split $arg] 3]
-}
-n:process $bnick $nick $hand $host $chan $chan1 $type
-}
-}
-
-gag {
-if {[matchattr $hand nm|OSMA $chan]} {
-set gagger [lindex [split $arg] 2]
-set type 1
-set handle [nick2hand $gagger]
-set chan1 "$chan"
-foreach c [channels] {
-set backchan [channel get $c backchan]
-if {[string match -nocase $chan $backchan] && [channel get $c chanreport]} {
-set chan "$c"
-}
-}
-if {[regexp {^[\\+!#&]} $gagger] && [matchattr $hand nm|- $chan]} {
-set chan "$gagger"
-set gagger [lindex [split $arg] 3]
-}
-gag:process $gagger $nick $hand $host $chan $chan1 $type
-}
-}
-
-l {
-if {[matchattr $hand nm|OSMA $chan]} {
-set times [lindex [split $arg] 2]
-set type 1
-set chan1 "$chan"
-if {[regexp {^[\\+!#&]} $times] && [matchattr $hand nm|- $chan]} {
-set chan "$times"
-set times [lindex [split $arg] 3]
-}
-l:process $nick $host $hand $chan $chan1 $times $type
-}
-}
-
-ul {
-if {[matchattr $hand nm|OSMA $chan]} {
-set c [lindex [split $arg] 0]
-set chan1 "$chan"
-if {[regexp {^[\\+!#&]} $c] && [matchattr $hand nm|- $chan]} {
-set chan "$c"
-}
-ul:process $nick $host $hand $chan $chan1
-}
-}
-
-show {
-if {[matchattr $hand nm|OSMA $chan]} {
-set wich [lindex [split $arg] 2]
-set type 1
-set chan1 "$chan"
-if {[regexp {^[#&]} $wich] && [matchattr $hand nm|- $chan]} {
-set chan "$wich"
-set wich [lindex [split $arg] 3]
-}
-show:process $nick $host $hand $chan $chan1 $wich $type
-}
-}
-
-reset {
-if {[matchattr $hand nm|M $chan]} {
-set dece [lindex [split $arg] 2]
-set type 1
-set chan1 "$chan"
-if {[regexp {^[#&]} $dece] && [matchattr $hand nm|- $chan]} {
-set chan "$dece"
-set dece [lindex [split $arg] 3]
-}
-reset:process $nick $host $hand $chan $chan1 $dece $type
-}
-}
-
-clonescan {
-if {[matchattr $hand nm|M $chan]} {
-set c [lindex [split $arg] 2]
-set type 1
-set chan1 "$chan"
-if {[regexp {^[\\+!#&]} $c] && [matchattr $hand nm|- $chan]} {
-set chan "$c"
-}
-scanner:process $nick $host $hand $chan $chan1
-}
-}
-
-top {
-if {[matchattr $hand nm|AOSM $chan]} {
-set cmd [lindex [split $arg] 2]
-set del [lindex [split $arg] 2]
-set type 1
-set chan1 "$chan"
-if {[regexp {^[#&]} $cmd] && [matchattr $hand nm|- $chan]} {
-set chan "$cmd"
-set cmd [lindex [split $arg] 3]
-set del [lindex [split $arg] 3]
-}
-top:process $nick $host $hand $chan $chan1 $cmd $type $del
-}
-}
-
-banlist {
-if {[matchattr $hand nm|AOSM $chan]} {
-set user [lindex [split $arg] 2]
-set type 1
-set chan1 "$chan"
-if {[regexp {^[\\+!#&]} $user] && [matchattr $hand nm|- $chan]} {
-set chan "$user"
-set user [lindex [split $arg] 3]
-}
-banlist:process $nick $host $hand $chan $chan1 $user $type
-}
-}
-
-stats {
-if {[matchattr $hand nm|AOSM $chan]} {
-set chan1 "$chan"
-set c [lindex [split $arg] 2]
-if {[regexp {^[#&]} $c] && [matchattr $hand nm|- $chan]} {
-set chan "$c"
-}
-stats:process $nick $host $hand $chan $chan1
-}
-}
-
-myset {
-if {[matchattr $hand nm|VAOSM $chan]} {
-set chan1 "$chan"
-set flags [lindex [split $arg] 2]
-set type [lindex [split $arg] 3]
-if {$type == ""} {
-blacktools:tell $nick $host $hand $chan $chan1 myset.4 none
-return 0
-}
-myset:process $nick $host $hand $chan $chan1 $flags $type
-}
-}
-
-i {
-if {[matchattr $hand nm|VAOSM $chan]} {
-set type 1
-set chan1 "$chan"
-set inick [lrange [split $arg] 2 end]
-set c [lindex [split $arg] 2]
-if {[regexp {^[\\+!#&]} $c] && [matchattr $hand nm|- $chan]} {
-set chan "$c"
-set inick [join [lrange [split $arg] 3 end]]
-}
-i:process $nick $host $hand $chan $chan1 $inick $type
-}
-}
-
-addinfo {
-if {[matchattr $hand nm|VAOSM $chan]} {
-set info [join [lrange [split $arg] 2 end]]
-set chan1 "$chan"
-if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
-return 0
-}
-if {$info == ""} { 
-blacktools:tell $nick $host $hand $chan $chan1 addinfo.2 none
-return 0
-}
-addinfo:process $nick $host $hand $chan $chan1 $info
-}
-}
-
-badword {
-if {[matchattr $hand nm|M $chan]} {
-set why [lindex [split $arg] 2]
-set type 1
-set chan1 "$chan"
-set bdword [lrange [split $arg] 3 end]
-set bdnumber [lindex [split $arg] 3]
-if {[regexp {^[\\+!#&]} $why] && [matchattr $hand nm|- $chan]} {
-set chan "$why"
-set why [lindex [split $arg] 3]
-set bdnumber [lindex [split $arg] 4]
-set bdword [lrange [split $arg] 4 end]
-}
-antibadword:command:process $nick $host $hand $chan $chan1 $why $bdword $bdnumber $type
-}
-}
-
-
-
-
-}
-}
-}
-
-
-putlog "$black(name) $black(vers) by $black(author) Loaded -> BLaCkShaDoW ProductionS ®"