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

  1. proc znc:request { nick host handle chan text } {
  2. global bannednetworks scriptCommandPrefix zncPasswordSecurityLevel zncPasswordLength zncnetworkname zncDefaultUserModules zncDefaultNetworkModules usePreconfiguredNetworks
  3. set bad 0
  4. if {[llength $text] < 2} {
  5. set bad 1
  6. } else {
  7. set username [lindex $text 0]
  8. set email [lindex $text 1]
  9. set networkname [lindex $text 2]
  10. set server [lindex $text 3]
  11. set port [lindex $text 4]
  12. if {$email eq {}} { set bad 1 }
  13. }
  14. if {$bad} {
  15. puthelp "NOTICE $nick :${scriptCommandPrefix}request syntax is \"${scriptCommandPrefix}request <zncusername> <e-mail-address> \[<networkname> \[<serveraddress> <\[+\]port>\]\]\" for more please use \"${scriptCommandPrefix}help reqest\""
  16. return
  17. }
  18. if {[string tolower $networkname] in $bannednetworks} {
  19. putserv "PRIVMSG $chan :The network \002$networkname\002 is BANNED."
  20. return
  21. }
  22. set password [znc:helpfunction:generatePassword $zncPasswordSecurityLevel $zncPasswordLength ]
  23. if {![ adduser $username ]} {
  24. puthelp "NOTICE $nick :Sry, but your wanted username is already in use..."
  25. }
  26. setuser $username COMMENT $email
  27. chattr $username +ZC
  28. znc:controlpanel:AddUser $username $password
  29. znc:blockuser:block $username
  30. znc:helpfunction:loadModuleList $username $zncDefaultUserModules
  31. if { $networkname != ""} {
  32. set preServer ""
  33. if { $usePreconfiguredNetworks } {
  34. set preServer [array names knownNetworks -exact [string tolower $networkname]]
  35. }
  36. znc:controlpanel:AddNetwork $username $networkname
  37. znc:helpfunction:loadNetModuleList $username $networkname $zncDefaultNetworkModules
  38. if { $preServer != "" } {
  39. foreach {networkname networkserver} [array get knownNetworks [string tolower $networkname]] {
  40. znc:controlpanel:AddServer $username $networkname $networkserver
  41. }
  42. } else {
  43. if { $port != "" } {
  44. znc:controlpanel:AddServer $username $networkname "$server $port"
  45. } else {
  46. puthelp "NOTICE $nick :Sry, I don't know the port for $server"
  47. }
  48. }
  49. }
  50. 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."
  51. }