Posted to tcl by hypnotoad at Wed Feb 13 00:42:31 GMT 2019view pretty

proc znc:request { nick host handle chan text } {
  global scriptCommandPrefix zncPasswordSecurityLevel zncPasswordLength zncnetworkname zncrealname zncquitmsg zncvhost zncDefaultUserModules zncDefaultNetworkModules usePreconfiguredNetworks
  set username [lindex $text 0]
  set email [lindex $text 1]
  if { [llength $email] ni {2 5} || $email == ""} { 
    puthelp "privmsg $chan :Syntax: \"${scriptCommandPrefix}request \<username> \<email> \<networkname> \<server> \<\+\port>\""
    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 ]} {
    setuser $username COMMENT $email
    chattr $username +ZC
    znc:controlpanel:AddUser $username $password
                      znc:controlpanel:Set realname $username $zncrealname
                      znc:controlpanel:Set quitmsg $username $zncquitmsg
                      znc:controlpanel:Set bindhost $username $zncvhost 
    znc:blockuser:block $username
    znc:helpfunction:loadModuleList $username $zncDefaultUserModules
  } else {
    puthelp "privmsg $chan :Sry, but your wanted username is already in use..."
  }
  if {[llength $text]==2} return
  set networkname [lindex $text 2]
  set server [lindex $text 3]
  set port [lindex $text 4]
  
  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"
    }
  }
  puthelp "privmsg $chan :Success! Your new BNC (with ident: $username) will now be handled by a staff member. If your request is accepted, our bot will e-mail you with your new ZNC details and with login information."
}