Posted to tcl by hypnotoad at Wed Feb 13 00:55:37 GMT 2019view pretty

proc znc:request { nick host handle chan text } {
  global bannednetworks scriptCommandPrefix zncPasswordSecurityLevel zncPasswordLength zncnetworkname zncDefaultUserModules zncDefaultNetworkModules usePreconfiguredNetworks
  set bad 0
  if {[llength $text] < 2} {
     set bad 1
  } else {
    set username [lindex $text 0]
    set email [lindex $text 1]
    set networkname [lindex $text 2]
    set server [lindex $text 3]
    set port [lindex $text 4]
    if {$email eq {}} { set bad 1 }
  }
  if {$bad} { 
      puthelp "NOTICE $nick :${scriptCommandPrefix}request syntax is \"${scriptCommandPrefix}request <zncusername> <e-mail-address> \[<networkname> \[<serveraddress> <\[+\]port>\]\]\" for more please use \"${scriptCommandPrefix}help reqest\""
      return
  }
  if {[string tolower $networkname] in $bannednetworks} {
    putserv "PRIVMSG $chan :The network \002$networkname\002 is BANNED."
    return
  }
  set password [znc:helpfunction:generatePassword  $zncPasswordSecurityLevel $zncPasswordLength ]
  if {![ adduser $username ]} {
    puthelp "NOTICE $nick :Sry, but your wanted username is already in use..."
  }
  setuser $username COMMENT $email
  chattr $username +ZC
  znc:controlpanel:AddUser $username $password 
  znc:blockuser:block $username 
  znc:helpfunction:loadModuleList $username $zncDefaultUserModules
  if { $networkname != ""} {
          set preServer ""
          if { $usePreconfiguredNetworks } {
                  set preServer [array names knownNetworks -exact [string tolower $networkname]]
          }
          znc:controlpanel:AddNetwork $username $networkname
          znc:helpfunction:loadNetModuleList $username $networkname $zncDefaultNetworkModules
          if { $preServer != "" } {
                  foreach {networkname networkserver} [array get knownNetworks [string tolower $networkname]] {
                          znc:controlpanel:AddServer $username $networkname $networkserver 
                  }
          } else {
                  if { $port != "" } {
                          znc:controlpanel:AddServer $username $networkname "$server $port"
                  } else {
                      puthelp "NOTICE $nick :Sry, I don't know the port for $server"
                  }
          }
  }
  puthelp "NOTICE $nick :Hey $nick, your request for $username is noticed and after confirm by an administrator you'll get an email with all needed data."
}