Advertisement
outsider

NickServ register reminder

Oct 1st, 2018
753
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
TCL 3.30 KB | None | 0 0
  1. setudef flag regreminder
  2. if {![info exists regreminder]} {
  3.     set regreminder(settings,timeout) "20"
  4.     set regreminder(settings,command) "ACC"
  5. }
  6.  
  7. proc regreminder:send {nick} {
  8.     global regreminder
  9.     if {[info exists regreminder($nick)]} { return }
  10.     if {[info exists regreminder(polling,$nick)] && [expr [unixtime] - $regreminder(polling,$nick)] < $regreminder(settings,timeout) } { return }
  11.     set regreminder(polling,$nick) [unixtime]
  12.     putserv [format "PRIVMSG NickServ :%s %s" $regreminder(settings,command) $nick]
  13. }
  14.  
  15. bind join - * regreminder:join
  16. proc regreminder:join {nick host hand chan} {
  17.     if {[isbotnick $nick]} { return }
  18.     if {[isignore $nick!$host]} { return }
  19.     if {![channel get $chan regreminder]} { return }
  20.     regreminder:send $nick
  21. }
  22.  
  23. bind nick - * regreminder:nick
  24. proc regreminder:nick {nick host hand chan newnick} {
  25.     global regreminder
  26.     if {[info exists regreminder($nick)]} { unset regreminder($nick) }
  27.     if {[isignore $newnick!$host]} { return }
  28.     regreminder:send $newnick
  29. }
  30.  
  31. bind part - * regreminder:part
  32. bind sign - * regreminder:part
  33. proc regreminder:part {nick host hand chan reason} {
  34.     global regreminder
  35.     if {![info exists regreminder($nick)] || [onchan $nick]} { return }
  36.     unset regreminder($nick)
  37. }
  38.  
  39. bind kick - * regreminder:kick
  40. proc regreminder:kick {nick host hand chan target reason} {
  41.     global regreminder
  42.     if {![info exists regreminder($target)] || [onchan $target]} { return }
  43.     unset regreminder($target)
  44. }
  45.  
  46. # -NickServ (services@services.host)- STATUS hawk 0
  47. bind notc - *STATUS* regreminder:notc
  48.  
  49. #-NickServ (NickServ@services.int)- hawk ACC 0 (not registered)
  50. bind notc - *ACC* regreminder:notc
  51.  
  52. proc regreminder:notc {nick host hand text {dest ""}} {
  53.     global botnick regreminder
  54.     if {$dest eq ""} { set dest $botnick }
  55.     if {[string tolower $nick] ne "nickserv"} { return }
  56.     if {![isbotnick $dest]} { return }
  57.  
  58.     if {[lindex $text 0] eq "STATUS"} {
  59.         set user [lindex $text 1]
  60.         set status [lindex $text 2]
  61.     } elseif {[lindex $text 1] eq "ACC"} {
  62.         set user [lindex $text 0]
  63.         set status [lindex $text 2]
  64.     } else {
  65.         return
  66.     }
  67.    
  68.     switch -- $status {
  69.         0 {
  70.             putserv [format "PRIVMSG %s :%s" $user "$user -> For security reasons please take a moment to register your nickname by typing: \002\/msg nickserv register MADEUP_PASSWORD YOUR_EMAIL_ADDRESS\002"]
  71.             putserv [format "PRIVMSG %s :%s" $user "When the NickServ responds with \002Nickname $user registered\002, please respond here with the word \002REGISTERED\002. Thanks $user!"]
  72.         }
  73.         1 {
  74.             putserv [format "PRIVMSG %s :%s" $user "$user -> For security reasons please take a moment to identify your nickname by typing: \002\/msg nickserv identify PASSWORD\002"]
  75.             putserv [format "PRIVMSG %s :%s" $user "When the NickServ responds with \002You are now identified for $user\002, please respond here with the word \002REGISTERED\002. Thanks $user!"]
  76.         }
  77.         default {
  78.             set regreminder($user) $status
  79.         }
  80.     }
  81. }
  82.    
  83. bind msg - registered regreminder:msg
  84. proc regreminder:msg {nick host hand args} {
  85.     global regreminder
  86.     if {[info exists regreminder($nick)] || [isignore $nick!$host] || ![onchan $nick]} { return }
  87.     foreach chan [channels] {
  88.         if {[channel get $chan regreminder] && [onchan $nick $chan]} {
  89.             putserv [format "PRIVMSG NickServ :%s %s" $regreminder(settings,command) $nick]
  90.             return
  91.         }
  92.     }
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement