My raw events
Of course, these are not all my raws.
Whois.
This is the default mIRC whois (on Efnet).
Neal is ~Laptop@adsl-76-197-198-250.dsl.chcgil.sbcglobal.net * LostShadow
Neal on #ytmnd #y0y0y0 #assistance #SOCK #tidez #chi-town #whitesox #chicago #mirc
Neal using irc.mzima.net Welcome to the fjear nation.
Neal is away: Global away 10/12 networks: On computer. /msg Neal !commands
Neal actually using host 76.197.198.250
Neal has been idle 36mins 7secs, signed on Tue Mar 20 10:16:23
neal End of /WHOIS list.
And, with my raw events, when I type /whois Neal, what I see is:
Neal is ~Laptop@adsl-76-197-198-250.dsl.chcgil.sbcglobal.net * LostShadow
Neal is in a minimum of 9 channels total.
Neal is in #mirc #chicago #whitesox #chi-town #tidez #SOCK #assistance #y0y0y0 #ytmnd
Neal is using irc.mzima.net Welcome to the fjear nation.
Neal is away: Global away 10/12 networks: On computer. /msg Neal !commands
Neal has been away for 1941 weeks 5 days 17 hours 39 minutes 30 seconds
IP 76.197.198.250 actually using host
Neal actually using host 76.197.198.250
Neal has signed on at Tuesday 03/20/2007 10:16:23 AM
Neal has been on-line for 2 hours 23 minutes 7 seconds (2 hours 23 minutes 7 seconds)
Neal has been idle for 0 hours 36 minutes 9 seconds (36 minutes 9 seconds)
So as you can tell, I lke default, as opposed to fancy colors.
raw 301:*: { /haltdef if ($network $+ %IRCd == ConferenceRoom) { /echo -s $2 is away: Away since $asctime($3,dddd mm/dd/yyyy hh:nn:ss TT) $4- /echo -s $2 has been away for $replace($duration($calc($ctime - $3)),sec,$+($chr(32),second),seconds,$+($chr(32),seconds),min,$+($chr(32),minute),mins,$+($chr(32),minutes),hr,$+($chr(32),hour),hrs,$+($chr(32),hours),day,$+($chr(32),day),wk,$+($chr(32),week)) } if ($network $+ %IRCd != ConferenceRoom) { /echo -s $2 is away: $3- } } The format for ConferenceRoom IRCds are different than anywhere else. In ConferenceRoom IRCds, $3 is the $ctime (seconds after January 1, 1970 00:00) of which the away message was triggered, and $4- being the away message, whereas, every other IRCd, it does not give the time, so $3- is the away message. Therefore, on other IRCds, it is impossible to tell when the user set their away message. raw 311:*: { /haltdef /echo -s $2 is $3 $+ @ $+ $4- } This is exactly the same as the default.. raw 312:*: { /haltdef /echo -s $2 is using $3- } raw 317:*: { /haltdef /echo -s $2 has signed on at $asctime($4,dddd mm/dd/yyyy hh:nn:ss TT) /echo -s $2 has been on-line for $replace($nduration($calc($ctime - $4)),sec,$+($chr(32),second),min,$+($chr(32),minute),hr,$+($chr(32),hour),day,$+($chr(32),day),wk,$+($chr(32),week)) ( $+ $replace($duration($calc($ctime - $4)),sec,$+($chr(32),second),min,$+($chr(32),minute),hr,$+($chr(32),hour),day,$+($chr(32),day),wk,$+($chr(32),week)) $+ ) /echo -s $2 has been idle for $replace($nduration($3),sec,$+($chr(32),second),min,$+($chr(32),minute),hr,$+($chr(32),hour),day,$+($chr(32),day),wk,$+($chr(32),week)) ( $+ $replace($duration($3),sec,$+($chr(32),second),min,$+($chr(32),minute),hr,$+($chr(32),hour),day,$+($chr(32),day),wk,$+($chr(32),week)) $+ ) /echo -s - } raw 318:*:/halt raw 319:*: { /haltdef /echo -s $2 is in a minimum of $calc($0 -2) channel $+ $iif($calc($0 -2) == 1,$null,s) total. /echo -s $2 is in $wordreverse($3-) } Why use word reverse? Because the default servers, on all IRCds to my knowledge, show the channels you joined in reverse order. Therefore, this is the right way, and as far as I know, I'm the only known person in the world of IRC that fixes this... wordreverse { var %temp, %loop = $numtok($1-,32) while (%loop) { set %temp %temp $gettok($1-,%loop,32) dec %loop } return %temp }
Join channel.
This is the default events, on Danet.
* Rejoined channel #8
* Topic is 'welcome to #8'
* Set by Register on Sun Feb 18 00:42:33
What I see.
* Rejoined channel #8
* The topic of #8 is "welcome to #8"
* The topic of #8 was set by Register on Sunday 02/18/2007 12:42:33 AM
* The topic of #8 was created 4 weeks 2 days 15 hours 12 minutes 26 seconds (735 hours 12 minutes 25 seconds)
Code.
raw 332:*: { /haltdef /echo $2 $timestamp * The topic of $2 is " $+ $3- $+ " /write $mircdir $+ Channels\ $+ $2 $+ . $+ $network $+ .txt $timestamp * The topic of $2 is " $+ $3- $+ " } raw 333:*: { /haltdef if (!$exists($mircdir $+ Channels\ $+ $2 $+ . $+ $network $+ . txt)) { /write $mircdir $+ Channels\ $+ $2 $+ . $+ $network $+ .txt I first joined this channel on $replace($timestamp,[,$null,],$null) $+ . } /echo $2 $timestamp * The topic of $2 was set by $3 on $asctime($4,dddd mm/dd/yyyy hh:nn:ss TT) /echo $2 $timestamp * The topic of $2 was created $replace($duration($calc($ctime - $4)),sec,$+($chr(32),second),min,$+($chr(32),minute),hr,$+($chr(32),hour),day,$+($chr(32),day),wk,$+($chr(32),week)) ( $+ $replace($nduration($calc($ctime - $4)),sec,$+($chr(32),second),min,$+($chr(32),minute),hr,$+($chr(32),hour),day,$+($chr(32),day),wk,$+($chr(32),week)) $+ ) /write $mircdir $+ Channels\ $+ $2 $+ . $+ $network $+ .txt * The topic of $2 was set by $3 on $asctime($4,dddd mm/dd/yyyy hh:nn:ss TT) /write $mircdir $+ Channels\ $+ $2 $+ . $+ $network $+ .txt * The topic of $2 was created $replace($duration($calc($ctime - $4)),sec,$+($chr(32),second),min,$+($chr(32),minute),hr,$+($chr(32),hour),day,$+($chr(32),day),wk,$+($chr(32),week)) ( $+ $replace($nduration($calc($ctime - $4)),sec,$+($chr(32),second),min,$+($chr(32),minute),hr,$+($chr(32),hour),day,$+($chr(32),day),wk,$+($chr(32),week)) $+ ) }
You can ignore the /write commands, it justs writes it to a file in a folder different from the log folders...
How to detect if the %IRCd is ConferenceRoom or not (as used to /away aliases).
raw 2:*: { if ($7 == ConferenceRoom) { /set %IRCd $+ $network ConferenceRoom } else { /set %IRCd $+ $network NotConferenceRoom } }
The best of ConferenceRoom IRCds:
What I absolutely love about the ConferenceRoom IRCd over any other IRCd in the world, is that if you have someone on notify, and that person sets an away message, you will see that too.
Example: /notify Neal
And I type /away Test.
Default is:
Neal Test.
What I see:
Neal is away: Test.
If I type /away is away: Test.
I still see:
Neal is away: Test.
Code.
raw 610:*: { /haltdef if ($3 != is) && (($4 != away) || ($4 != away:)) { /echo -s $time $2 is away: $3- } if ($3 == is) && (($4 == away) || ($4 == away:)) { /echo -s $time $2 is away: $5- } }
How I view bans.
I did a /mode #Neal +b Neal!*@* in #Neal on the Slacked network.
Default view.
#Neal Neal!*@* set by Neal!~Laptop@adsl-76-197-223-171.dsl.chcgil.sbcglobal.net (Sat Apr 14 15:28:05)
#Neal End of Channel Ban List
How I view it.
#Neal Neal!*@* set by Neal!~Laptop@adsl-76-197-223-171.dsl.chcgil.sbcglobal.net at Saturday 04/14/2007 03:28:05 PM (20 seconds)
Where 20 seconds = how long the ban is, according to the server.
However, everytime I join a channel, my mIRC automatically doesn 2 things: /who the channel, and /mode $chan b. This is to /who the channel and count up the number of bans in the channel. The number of bans in the channel goes to my titlebar, which updates how many bans are in the channel by the second, as I browse from different channel to channel.
But, when my script automatically does the /who and /mode $chan b, I obviously /who the channel to fill my IAL, and /mode $chan b to count up the total channel bans, therefore, I do not want to see them in my status window. The display are halted. (But not when I manually type /who and /mode $chan b).
And then there are 2 /who commands I use, /who $chan, and /who 0 o (for scanning IRC ops). Because I do not want to interfere with /who $chan and /who 0 o, and they both are the same raw numeric, I have to /disable and /enable #who0o (/who 0 o), from the rest. The /who $chan will tell me if the user is an IRC op, etc., or not, whereas /who 0 o will list all IRC ops that the server gives you (may be outside your channels).
Then, the IRC ops and help ops from /who $chan, if they are in the channel I join, will be echo'd to the channel window. If not, then it won't even echo that there aren't any.
Code.
on me:*:JOIN:#:/hadd -mu600 MeJoin $+($cid,#) 1 | /.enable #who0o | /.raw $+(mode # b,$crlf,who #) (End of /who). #who0o off raw 315:*: { /haltdef if ($($+(%,op.,$2,.list),2) != $null) { /echo $2 * Oper list: $iif($($+(%,op.,$2,.list),2),$replace($v1,$chr(44),$+($chr(44),$chr(32))) $+($chr(40),$numtok($v1,44),$chr(41)),None) } if ($($+(%,hop.,$2,.list),2) != $null) { /echo $2 * Help Op list: $iif($($+(%,hop.,$2,.list),2),$replace($v1,$chr(44),$+($chr(44),$chr(32))) $+($chr(40),$numtok($v1,44),$chr(41)),None) } /unset $+(%,op.,$2) $+(%,op.,$2,.list) $+(%,hop.,$2,.list) } #who0o end raw 315:*:/haltdef | if ($hget(MeJoin, $+($cid,$2))) { hdel MeJoin $+($cid,$2) | /.disable #who0o | /halt } (/Who). raw 352:*:if ($hget(MeJoin, $+($cid,$2))) /halt raw 367:*: { /haltdef if ($hget(MeJoin, $+($cid,$2))) /halt if ($($+(%,bcheck.,$2),2) == $true) /haltdef else { /echo -s $2 $3 set by $4 at $asctime($5,dddd mm/dd/yyyy hh:nn:ss TT) ( $+ $replace($duration($calc($ctime - $5)),sec,$+($chr(32),second),seconds,$+($chr(32),seconds),min,$+($chr(32),minute),mins,$+($chr(32),minutes),hr,$+($chr(32),hour),hrs,$+($chr(32),hours),day,$+($chr(32),day),wk,$+($chr(32),week)) $+ ) } } (End of channel ban list). raw 368:*:/haltdef | /echo -s -
My ban check script.
This script, if I view the channel bans of the channel, and I am banned there, my mIRC will view the ban every 30 seconds until my ban is removed, then /join it. It will not display all the bans in my status window of course. Thanks to Dan (digitok, diabolic) of Webnet, Dalnet, and Efnet for starting this script up.
#bancheck on raw 367:*: { if (%BanCheck != $true) /halt if ($($+(%,bcheck.,$2),2) == $true) /haltdef if ($me !ison $2) { if ($3 iswm $address($me,5)) { /set $+(%,bcheck.,$2,.banned) $true .timerbcheck $+ $2 1 30 /mode $2 b /echo 4 -s * Banned from $+($2,...) Trying again in 30 seconds. } } } raw 368:*: { if (%BanCheck != $true) /halt if ($($+(%,bcheck.,$2,.banned),2) == $true) /halt if ($($+(%,bcheck.,$2),2) == $true) /haltdef if ($me !ison $2 && !$($+(%,bcheck.,$2,.banned),2)) { if ($2 != #spiderslair) { /join $2 } .timerbcheck $+ $2 off /unset $+(%,bcheck.,$2) } /unset $+(%,bcheck.,$2,.banned) } I can also /bancheck #raw 473:*: { /chanserv invite $2 } } raw 474:*: { if ($($+(%,bcheck.,$2),2) == $true) /halt /chanserv invite $2 }alias bcheck { /set $+(%,bcheck.,$1) $true /set -u5 %BanCheck $true if (#* iswm $1 && $me !ison $1) { /mode $1 b } } BCheck2 is for IRCds where you cannot receive channel bans when outside the channel. alias bcheck2 { /set $+(%,bcheck.,$1) $true /set -u5 %BanCheck $true /.timer $+ $1 0 30 /join $1 } #bancheck end