; Spamfilter example: ; (|http:\/\/)(|www\.)bigassmessage\.com\/8596f on $^*:Snotice:/(\S+)\s\((\S+)\)\sdid\sa\s.whois\son\syou/Si:{ if (!$window($($+(@whois.,$network),2))) { window -ne $($+(@whois.,$network),2) } ; echo -sgt 4Whois -> 12[11 $+ $network $+ 12:11 $+ $+($regml(1),!,$regml(2)) $+ 12] aline -pa $($+(@whois.,$network),2) 12( $+ $snoticets $+ 12) $1- haltdef } on $^*:Snotice:/HelpOp\s--\sfrom\s(\S+)\s(\(HelpOp\):\s)?(?:\(Local\):\s)?(.+)/Si:{ if (!$regml(3)) { ;echo 4*** 12HelpOP: 11(4 $+ $network $+ 11:4 $+ $regml(1) $+ 11:4 $+ $regml(2) $+ 11) ; query -n $regml(1) ;echo $regml(1) 4*** Needed HelpOp for -> $regml(2) } if (!$window($($+(@HelpOp.,$network),2))) { window -ne $($+(@HelpOp.,$network),2) } aline -pa $($+(@HelpOp.,$network),2) 12( $+ $snoticets $+ 12) 04HelpOp: $regml(1) 12-> $iif($regml(3),$regml(3),$regml(2)) haltdef } on $^*:Snotice:/NetAdmin.Chat\s--\sfrom\s(\S+):\s(.+)/Si:{ if (!$window($($+(@NaChat.,$network),2))) { window -ne $($+(@NaChat.,$network),2) } aline -pa $($+(@NaChat.,$network),2) 12( $+ $snoticets $+ 12) 4NaChat: $regml(1) 12-> $regml(2) haltdef } on $^*:Snotice:/AdminChat\s--\sfrom\s(\S+):\s(.+)/Si:{ if (!$window($($+(@Adminchat.,$network),2))) { window -ne $($+(@AdminChat.,$network),2) } aline -pa $($+(@AdminChat.,$network),2) 12( $+ $snoticets $+ 12) 4AdminChat: $regml(1) 12-> $regml(2) haltdef } on $^*:Snotice:/Global\s--\sfrom\s(\S+):\s(.+)/Si:{ if (!$window($($+(@GlobOPS.,$network),2))) { window -ne $($+(@GlobOPS.,$network),2) } aline $iif($regml(1) == OperServ,-pa,-pa) $($+(@GlobOPS.,$network),2) 12( $+ $snoticets $+ 12) 4Global: $regml(1) 12-> $regml(2) haltdef } on $^*:Snotice:/LocOps\s--\sfrom\s(\S+):\s(.+)/Si: { if (!$window($($+(@LocOPS.,$network),2))) { window -ne $($+(@LocOPS.,$network),2) } aline -pa $($+(@LocOPS.,$network),2) 12( $+ $snoticets $+ 12) 4LocOps: $regml(1) 12-> $regml(2) haltdef } on $^*:Snotice:/ChatOps\s--\sfrom\s(\S+):\s(.+)/Si:{ if (!$window($($+(@ChatOPS.,$network),2))) { window -ne $($+(@ChatOPS.,$network),2) } aline -pa $($+(@ChatOPS.,$network),2) 12( $+ $snoticets $+ 12) 4ChatOps: $regml(1) 12-> $regml(2) haltdef } on $^*:WALLOPS:*:{ if (!$window($($+(@WallOPS.,$network),2))) { window -ne $($+(@WallOPS.,$network),2) } aline -pa $($+(@WallOPS.,$network),2) 12( $+ $snoticets $+ 12) 4WallOps: $nick 12-> $1- haltdef } ;on *:INPUT:@ChatOPS.*:{ ChatOps $1- | haltdef } ;on *:INPUT:@HelpOp.*:{ helpop $1- | haltdef } ;on *:INPUT:@NaChat.*:{ nachat $1- | haltdef } ;on *:INPUT:@AdminChat.*:{ AdChat $1- | haltdef } ;on *:INPUT:@GlobOPS.*:{ GlobOPS $1- | haltdef } ;on *:INPUT:@WallOPS.*:{ WallOPS $1- | haltdef } ; ; Some #Services stuff (Written for Anope) ; on $*:TEXT:/New\svHost\sRequested\sby\s(\S+)/Si:#Services:{ if ($nick == Global) { if (!$window($($+(@Services.,$network),2))) { window -ne $($+(@Services.,$network),2) } aline -pa $($+(@Services.,$network),2) 12( $+ $snoticets $+ 12) 4vHost Request: $regml(1) } } on $*:TEXT:/NickServ.\s(\S+)\s(automatically\s)?identified\sfor\snick\s(\S+)/Si:#Services:{ if ($nick == Global) { if (!$window($($+(@Services.,$network),2))) { window -ne $($+(@Services.,$network),2) } aline -pa $($+(@Services.,$network),2) 12( $+ $snoticets $+ 12) 4Nick Identification: $regml(1) 12-> $iif($regml(3),$regml(3),$regml(2)) } } on $*:TEXT:/NickServ.\s(\S+)\slogged\sout\snickname\s(\S+):#Services:{ if ($nick == Global) { if (!$window($($+(@Services.,$network),2))) { window -ne $($+(@Services.,$network),2) } aline -pa $($+(@Services.,$network),2) 12( $+ $snoticets $+ 12) 4Nick Logout: $regml(1) 12-> $regml(2) } } on $*:TEXT:/NickServ.\sFailed\sIDENTIFY\sfor\s(\S+)/Si:Services:{ if ($nick == Global) { if (!$window($($+(@Services.,$network),2))) { window -ne $($+(@Services.,$network),2) } aline -pa $($+(@Services.,$network),2) 12( $+ $snoticets $+ 12) 4Identification Failure: $regml(1) } } on $*:TEXT:/ChanServ.\s(\S+)\sidentified\sfor\(\S+):#Services:{ if ($nick == Global) { if (!$window($($+(@Services.,$network),2))) { window -ne $($+(@Services.,$network),2) } aline -pa $($+(@Services.,$network),2) 12( $+ $snoticets $+ 12) 4Channel Identification: $regml(1) 12-> $regml(2) } } on $*:TEXT:/NickServ.\sNick\s(\S+)\shas\sbeen\srequested/Si:#Services:{ if ($nick == Global) { if (!$window($($+(@Services.,$network),2))) { window -ne $($+(@Services.,$network),2) } aline -pa $($+(@Services.,$network),2) 12( $+ $snoticets $+ 12) 4Nick Request: $regml(1) 12was requested. } } on $*:TEXT:/NickServ.\ssent\sregistration\sverification\scode\sto\s(\S+)/Si:#Services:{ if ($nick == Global) { if (!$window($($+(@Services.,$network),2))) { window -ne $($+(@Services.,$network),2) } aline -pa $($+(@Services.,$network),2) 12( $+ $snoticets $+ 12) 4Registration sent: $regml(1) } } on $*:TEXT:/NickServ.\s'(\S+)'\sregistered\sby\s(\S+)\s\(e-mail.\s(\S+)\)/Si:#Services:{ if ($nick == Global) { if (!$window($($+(@Services.,$network),2))) { window -ne $($+(@Services.,$network),2) } aline -pa $($+(@Services.,$network),2) 12( $+ $snoticets $+ 12) 4Nick Registration: $($+($regml(1),!,$regml(2)),2) 12email: $regml(3) } } on $*:TEXT:/ChanServ.\sChannel\s'(\S+)'\sregistered\sby\s(\S+)/Si:#Services:{ if ($nick == Global) { if (!$window($($+(@Services.,$network),2))) { window -ne $($+(@Services.,$network),2) } aline -pa $($+(@Services.,$network),2) 12( $+ $snoticets $+ 12) 4Channel Registration: $regml(2) 12-> $regml(1) } } on $*:TEXT:/ChanServ.\sChannel\s(\S+)\sdropped\sby\s(\S+)\s\(founder.\s(\S+)\)/Si:#Services:{ if ($nick == Global) { if (!$window($($+(@Services.,$network),2))) { window -ne $($+(@Services.,$network),2) } aline -pa $($+(@Services.,$network),2) 12( $+ $snoticets $+ 12) 4Channel Drop: $regml(2) 12-> $regml(1) 12Founder: $regml(3) } } on $*:TEXT:/Expiring\snickname\s(\S+)\s\(group.\s(\S+)\)\s\(e-mail.\s(\S+)\)/Si:#Services:{ if ($nick == Global) { if (!$window($($+(@Services.,$network),2))) { window -ne $($+(@Services.,$network),2) } aline -pa $($+(@Services.,$network),2) 12( $+ $snoticets $+ 12) 4Nick Expire:12 Nick: $regml(1) 12Group: $regml(2) 12Email: $regml(3) } } on $*:TEXT:/NickServ.\sdeleting\snickname\sgroup\s(\S+)/Si:#Services:{ if ($nick == Global) { if (!$window($($+(@Services.,$network),2))) { window -ne $($+(@Services.,$network),2) } aline -pa $($+(@Services.,$network),2) 12( $+ $snoticets $+ 12) 4Deleting NickGroup: $regml(1) } } ; ; This part makes Connects & Disconnects go to @Clients ; on $^*:Snotice:/Notice\s--\sClient\sconnecting\s(?:on|at).+:\s(\S+)\s\((\S+)\)/Si:{ if (!$window($($+(@Connects.,$network),2))) { window -ne $($+(@Connects.,$network),2) } ; aline -pa $($+(@Connects.,$network),2) 12( $+ $snoticets $+ 12) 4Connect: $+($regml(1),!,$regml(2)) aline -pa $($+(@Connects.,$network),2) 12( $+ $snoticets $+ 12) $1- haltdef } on $^*:Snotice:/Notice\s--\sClient\sexitin(?:g\sat.+:\s(\S+)\s\(.+\)|g:\s(\S+)\s\((\S+)\)\s\[(.+)\])/Si:{ if (!$window($($+(@Exits.,$network),2))) { window -ne $($+(@Exits.,$network),2) } ; aline -pa $($+(@Exits.,$network),2) 12( $+ $snoticets $+ 12) 4Disconnect: $+($regml(1),!,$regml(2)) 12-> $regml(3) aline -pa $($+(@Exits.,$network),2) 12( $+ $snoticets $+ 12) $1- ;echo -gs exit-debug: $regml(1) ;echo -gs exit-debug: $regml(2) ;echo -gs exit-debug: $regml(3) ;echo -gs exit-debug: $1- haltdef } alias snoticets { return $asctime(mmmm dd yyyy HH:nn:ss) } ; This takes ALL of the ban messages and slides them into @Network-Kills/Bans ; on $^*:Snotice:/Notice\s--\sReceived\sKILL\smessage\sfor\s(\S+)\sfrom\s(\S+)\sPath:\s(\S+)!(\S+)\s\((.+)\)/Si:{ if (!$window($($+(@Kills.,$network),2))) { window -ne $($+(@Kills.,$network),2) } aline -pa $($+(@Kills.,$network),2) 12( $+ $snoticets $+ 12) 4KILL: $regml(1) 12was killed by $+($regml(2),!,$regml(4),@,$regml(3)) 12for $regml(5) haltdef } ;@Network-Kills/Bans. on $^*:Snotice:/(.:Line)\sadded\sfor\s(\S+)\son.+\(from\s(\S+)(?:\sto\sexpire\sat\s(.+))?:\s(.+)\)/Si:{ if (!$window($($+(@Bans.,$network),2))) { window -ne $($+(@Bans.,$network),2) } aline -pa $($+(@Bans.,$network),2) 12( $+ $snoticets $+ 12) $+(4,$regml(1),:) $regml(3) 12set $regml(2) 12set to expire on: $iif($regml(5),$regml(4),Permanent) 12reason: $iif($regml(5),$regml(5),$regml(4)) haltdef } on $^*:Snotice:/Expiring\s(?:Global\s)?(.):Line\s\((\S+)\)\smade\sby\s(\S+)\s\(Reason:\s(.+)\)/Si:{ if (!$window($($+(@Bans.,$network),2))) { window -ne $($+(@Bans.,$network),2) } aline -pa $($+(@Bans.,$network),2) 12( $+ $snoticets $+ 12) 4Expiring $+($regml(1),:Line:) $regml(2) 12set by $regml(3) 12reason $regml(4) haltdef } on $^*:Snotice:/(\S+)\sremoved\s(?:Global\s)?(\S+)\s(\S+).+\sreason:\s(.+)\)/Si:{ if (!$window($($+(@Bans.,$network),2))) { window -ne $($+(@Bans.,$network),2) } aline -pa $($+(@Bans.,$network),2) 12( $+ $snoticets $+ 12) $+(4Removed,$chr(32),$regml(2),:) $regml(1) 12removed $regml(3) haltdef } ; ; This part handles the nick changes & puts them in @NickChanges ; on $^*:Snotice:/Notice\s--\s(\S+)\s\((\S+)\)\shas\s(?:been\sforced\sto\s)?change(?:d)?\shis.her\snickname\sto\s(\S+)/Si:{ if (!$window($($+(@NickChanges.,$network),2))) { window -ne $($+(@NickChanges.,$network),2) } aline -pa $($+(@NickChanges.,$network),2) 12( $+ $snoticets $+ 12) 4NickChange: $+($regml(1),!,$regml(2)) 12-> $regml(3) haltdef } ; ; This does most oper shit & keeps it in @Oper ; on $^*:Snotice:/OperOverride\s--\s(\S+)\s\((\S+)\)\s(.+)/Si:{ if (!$window($($+(@Oper.,$network),2))) { window -ne $($+(@Oper.,$network),2) } aline -pa $($+(@Oper.,$network),2) 12( $+ $snoticets $+ 12) 4OverRide: $+($regml(1),!,$regml(2)) 12used Oper-Override for: $regml(3) haltdef } on $^*:Snotice:/(\S+)\s\((\S+)\)\s\[(\S+)\]\sis\snow\s(.+)/Si:{ if (!$window($($+(@Oper.,$network),2))) { window -ne $($+(@Oper.,$network),2) } aline -pa $($+(@Oper.,$network),2) 12( $+ $snoticets $+ 12) 4Oper: $+($regml(1),!,$regml(2)) 12using OperID $regml(3) 12is now $regml(4) haltdef } on $^*:Snotice:/Failed\sOPER\sattempt\sby\s(\S+)\s\((\S+)\)\s(?:using\sUID\s(\S+)\s)?\[(.+)\]/Si:{ if (!$window($($+(@Oper.,$network),2))) { window -ne $($+(@Oper.,$network),2) } aline -pa $($+(@Oper.,$network),2) 12( $+ $snoticets $+ 12) 4Failed Oper Attempt: $+($regml(1),!,$regml(2)) 12OperID $iif($regml(4),$regml(3),Not Valid) 12reason: $iif($regml(4),$regml(4),$regml(3)) haltdef } on $^*:Snotice:/Notice\s--\s(\S+)\sused\s(\S+)\sto\smake\s(\S+)\s(\S+)\s(\S+)/Si:{ if (!$window($($+(@Oper.,$network),2))) { window -ne $($+(@Oper.,$network),2) } aline -pa $($+(@Oper.,$network),2) 12( $+ $snoticets $+ 12) $+(4,$regml(2),:) $regml(1) 12used $regml(2) to make $regml(3) $+(12,$regml(4),) $regml(5) haltdef } on $^*:Snotice:/(\S+)\sused\sSAMODE\s(\S+)\s\((.+)\)/Si:{ if (!$window($($+(@Oper.,$network),2))) { window -ne $($+(@Oper.,$network),2) } aline -pa $($+(@Oper.,$network),2) 12( $+ $snoticets $+ 12) 4SAMODE: $regml(1) 12used SAMODE on $regml(2) 12to set modes $regml(3) } on $^*:Snotice:/(\S+)\schanged\sthe\svirtual\s(\S+)\sof\s(\S+)\s\((\S+)\)\sto\sbe\s(\S+)/Si:{ if (!$window($($+(@Oper.,$network),2))) { window -ne $($+(@Oper.,$network),2) } aline -pa $($+(@Oper.,$network),2) 12( $+ $snoticets $+ 12) $+(4CHG,$iif($regml(2) == ident,IDENT,HOST),:) $regml(1) 12changed the virtual $regml(2) of $+($regml(3),!,$regml(4)) 12to $regml(5) haltdef } on $^*:Snotice:/(\S+)\schanged\sthe\sGECOS\sof\s(\S+)\s\((\S+)\)\sto\sbe\s(.+)/Si:{ if (!$window($($+(@Oper.,$network),2))) { window -ne $($+(@Oper.,$network),2) } aline -pa $($+(@Oper.,$network),2) 12( $+ $snoticets $+ 12) 4CHGNAME: $regml(1) 12changed the real name of $+($regml(2),!,$regml(3)) 12to $regml(4) haltdef } ; ; Used with the CLOSE command, closes unknown connections (Not exactly sure what the ; purpose of this is though) ; on $^*:Snotice:/Notice\s--\s(\S+)\sclosed\s(\S+)\sunknown\sconnections/Si:{ if (!$window($($+(@Oper.,$network),2))) { window -ne $($+(@Oper.,$network),2) } aline -pa $($+(@Oper.,$network),2) 12( $+ $snoticets $+ 12) 4CLOSE: $regml(1) 12used CLOSE to close $regml(2) 12unknown connections. haltdef } ; ; Grabs the /STATS requests. ; on $^*:Snotice:/Stats\s'(\S+)'\srequested\sby\s(\S+)\s\((\S+)\)/Si:{ if (!$window($($+(@Oper.,$network),2))) { window -ne $($+(@Oper.,$network),2) } aline -pa $($+(@Oper.,$network),2) 12( $+ $snoticets $+ 12) 4STATS: $+($regml(2),!,$regml(3)) 12requested stats: $regml(1) haltdef } ; ; TS Control stuff ; on $^*:Snotice:/Notice\s--\sTS\sControl\s-\s(\S+)\sset\stime\sto\sbe\s(\S+)\s\(timediff:\s(\S+)\)/Si:{ if (!$window($($+(@Oper.,$network),2))) { window -ne $($+(@Oper.,$network),2) } aline -pa $($+(@Oper.,$network),2) 12( $+ $snoticets $+ 12) 4TS Control: $regml(1) 12set the IRC time to be $regml(2) 12TimeDifference is now $regml(3) haltdef } ; ; The RecvQ flood limits ; on $^*:Snotice:/Flood\s--\s(\S+)\s\((\S+)\)\sexceeds\s(\S+)\srecvQ/Si:{ if (!$window($($+(@Oper.,$network),2))) { window -ne $($+(@Oper.,$network),2) } aline -pa $($+(@Oper.,$network),2) 12( $+ $snoticets $+ 12) 4Flood: $regml(1) 12exceeded the recvQ limit $regml(2) > $regml(3) haltdef } ; ; Spamfilters ; on $^*:Snotice:/\[Spamfilter\]\s(\S+)\smatches\sfilter\s'(\S+)':\s\[([^\]]+)\]\s\[([^\]]+)\]/Si:{ if (!$window($($+(@Spamfilter.,$network),2))) { window -ne $($+(@Spamfilter.,$network),2) } aline -pa $($+(@Spamfilter.,$network),2) 12( $+ $snoticets $+ 12) 4SpamFilter: $regml(1) 12Matched $regml(2) 12using $regml(3) 12reason for filter: $regml(4) haltdef } on $^*:Snotice:/(\S+)\sremoved\sspamfilter\s'(\S+)'/Si:{ if (!$window($($+(@Spamfilter.,$network),2))) { window -ne $($+(@Spamfilter.,$network),2) } aline -pa $($+(@Spamfilter.,$network),2) 12( $+ $snoticets $+ 12) 4SpamFilter: $regml(1) 12removed spamfilter $regml(2) haltdef } on $^*:Snotice:/Spamfilter\sAdded:\s\S+\s\[target:\s(\S+)\]\s\[action:\s([^\]]+)\]\s\[reason:\s([^\]]+)\]\son\s.*\(from\s(\S+)\)/Si:{ if (!$window($($+(@Spamfilter.,$network),2))) { window -ne $($+(@Spamfilter.,$network),2) } aline -pa $($+(@Spamfilter.,$network),2) 12( $+ $snoticets $+ 12) 4SpamFilter: $regml(4) 12added $4 12targeting: $regml(1) 12action: $regml(2) 12reason: $regml(3) haltdef } ; ; Linking/Delinking ; Currently untested. It's on my list of shit to do. * on $*^:Snotice:/Received\sSQUIT\s(\S+)\sfrom\s(\S+)\[(\S+)\]\s\((.+)\)/Si:{ if (!$window($($+(@Link.,$network),2))) { window -ne $($+(@Link.,$network),2) } aline -pa $($+(@Link.,$network),2) 12( $+ $snoticets $+ 12) 4SQUIT: $regml(1) 12from $regml(2) ( $+ $regml(3) $+ ) 12reason: $regml(4) haltdef } on $^*:Snotice:/Notice\s--\s\(link\)\sLink\s(\S+)\s->\s(\S+)\[@(\S+)\]\sestablished/Si:{ if (!$window($($+(@Link.,$network),2))) { window -ne $($+(@Link.,$network),2) } aline -pa $($+(@Link.,$network),2) 12( $+ $snoticets $+ 12) 4LINK: $regml(1) 12linked $regml(2) ( $+ $regml(3) $+ ) haltdef } on $^*:Snotice:/Notice\s--\sLink\s(\S+)\s->\s(\S+)\sis\snow\ssynced\s\[secs:\s(\S+)\srecv:\s(\S+)\ssent:\s(\S+)\]/Si:{ if (!$window($($+(@Link.,$network),2))) { window -ne $($+(@Link.,$network),2) } aline -pa $($+(@Link.,$network),2) 12( $+ $snoticets $+ 12) 4SYNC: $regml(1) 12-> $regml(2) haltdef } on $^*:Snotice:/Lag\sreply\s--\s(\S+)\s(\S+)\s(\d+)/Si:{ if (!$window($($+(@Link.,$network),2))) { window -ne $($+(@Link.,$network),2) } aline -pa $($+(@Link.,$network),2) 12( $+ $snoticets $+ 12) 4LAG: $regml(1) 12<--> $regml(2) 12-> $regml(3) 12( $+ $duration($calc($ctime - $regml(3))) $+ 12) haltdef } on ^*:snotice:*** Notice --*: { if (!$window($($+(@misc.,$network),2))) { window -ne $($+(@misc.,$network),2) } aline -pa $($+(@misc.,$network),2) 12( $+ $snoticets $+ 12) $1- haltdef } on ^*:snotice:*[vhost]*: { if (!$window($($+(@misc.,$network),2))) { window -ne $($+(@misc.,$network),2) } aline -pa $($+(@misc.,$network),2) 12( $+ $snoticets $+ 12) $1- haltdef } on ^*:snotice:*** Notice -- Please be sure your clock is always synchronized*: { if (!$window($($+(@Link.,$network),2))) { window -ne $($+(@Link.,$network),2) } aline -pa $($+(@Link.,$network),2) 12( $+ $snoticets $+ 12) $1- haltdef } on ^*:snotice:*** Notice -- Incorrect time for IRC servers is a serious problem*: { if (!$window($($+(@Link.,$network),2))) { window -ne $($+(@Link.,$network),2) } aline -pa $($+(@Link.,$network),2) 12( $+ $snoticets $+ 12) $1- haltdef } on ^*:snotice:*** Notice -- [TimeShift] Resetting some timers!: { if (!$window($($+(@Link.,$network),2))) { window -ne $($+(@Link.,$network),2) } aline -pa $($+(@Link.,$network),2) 12( $+ $snoticets $+ 12) $1- haltdef } on ^*:snotice:*** Notice -- No response from*: { if (!$window($($+(@Link.,$network),2))) { window -ne $($+(@Link.,$network),2) } aline -pa $($+(@Link.,$network),2) 12( $+ $snoticets $+ 12) $1- haltdef } on ^*:snotice:*** Notice -- (link) Secure ZIPlink *: { if (!$window($($+(@Link.,$network),2))) { window -ne $($+(@Link.,$network),2) } aline -pa $($+(@Link.,$network),2) 12( $+ $snoticets $+ 12) $1- haltdef } on ^*:snotice:*** Notice -- Zipstats for link to*: { if (!$window($($+(@Link.,$network),2))) { window -ne $($+(@Link.,$network),2) } aline -pa $($+(@Link.,$network),2) 12( $+ $snoticets $+ 12) $1- haltdef } ;on ^*:snotice:(Lost connection)[A-z0-9.,:() ]*: { ; if (!$window($($+(@Link.,$network),2))) { window -ne $($+(@Link.,$network),2) } ; aline -pa $($+(@Link.,$network),2) 12 $+ $snoticets $+ 12) $1- ; haltdef ;} on ^*:snotice:Lost connection*: { if (!$window($($+(@Link.,$network),2))) { window -ne $($+(@Link.,$network),2) } aline -pa $($+(@Link.,$network),2) 12( $+ $snoticets $+ 12) $1- haltdef } ; ----------------- on ^*:NOTICE:*:?: { ; Requires IRCop (probably services access - services root admin. Unsure about services operator and services admin. Too lazy to test) ; Takes the date of a user's nickname expiration and uses mIRC's $duration to see how long until the drop date. ; Disclaimer: I cannot be held responsible for an Operator that uses this in an abusive manner (such as modifying the script to publicly announce how long until a nickname expires) if ($nick == NickServ) && ($1 == Expires) { var %expiredate $3-6 echo $color(NOTICE) -ga $timestamp $+(-,$nick,-) $str($chr(32),4) Expires in (approx.): $duration($calc($ctime(%expiredate) - $ctime)) } ; elseif ($nick == ChanServ) && ($1 == Expires) { ; var %expiredate $3-6 ; echo $color(NOTICE) -ga $timestamp $+(-,$nick,-) $str($chr(32),4) Expires in (approx.): $duration($calc($ctime(%expiredate) - $ctime)) ; } }