; ============================================== ; Name: Session Resume ; Version: 20/03/10 21:04 (r0005) ; Author: Alyx/TigerTails (AlyxUK@gmail.com) ; ============================================== ; ; Description: ; This script will automaticaly rejoin servers and channels when you open mIRC. ; No commands are neccersary to change the autojoin list, when you close mIRC ; the list of current servers and channels are logged. ; ; Notes: ; If you are running this script for the FIRST TIME, disconnect and reconnect ; to all servers. It is neccersary for this script to work. ; ; Changelog: ; 20/03/10: ; 21:04 r0005: ; ! @XXXX: Fixed a small irritating bug, now nickserv info always stays ; 06/01/10: ; 01:00 r0004: ; ! @XXXX: Fixed an important bug in the "closed or disconnected" detection ; 24/12/09: ; 18:04 r0003: ; * Automatic NickServ identification, based on your previous authentication ; 23/12/09: ; 11:54 r0002: ; ! @0001: Closing mIRC will no longer remove all servers from the join list ; Bit of a hack-up fix, but it does the job ; ! @XXXX: Many fixes, a lot of code changed ; ; 20/12/09: ; 03:21 r0001: ; * Initial script. ; # @0001: Closing mIRC results in the removal of all servers from the join list. ; ; * = New Feature (...) ; ! = Fixed bug ; # = Known bug ; ; ============================================== on *:START:{ var %i = 1 while ($ini(SessionResume.ini,%i) != $null) { if ($readini(SessionResume.ini,$ini(SessionResume.ini,%i),1) != $null) /server $iif(%i == 1,$null,-m) $ini(SessionResume.ini,%i) inc %i } } on *:CONNECT:{ /remini SessionResume.ini $server 0 /writeini SessionResume.ini $server 1 1 if ($readini(SessionResume.ini,$server,ns) != $null) $readini(SessionResume.ini,$server,ns) var %i = 2 while ($readini(SessionResume.ini,$server,%i) != $null) { if ($readini(SessionResume.ini,$server,%i) != empty) .timer 1 %i /join $readini(SessionResume.ini,$server,%i) inc %i } } on *:DISCONNECT:{ /writeini SessionResume.ini $server 0 1 .timer -o 1 1 /sessionresume_checkserver $server } on *:JOIN:#:{ if ($nick == $me) { var %i = 2 while ($readini(SessionResume.ini,$server,%i) != $null) { if ($readini(SessionResume.ini,$server,%i) == empty) || ($readini(SessionResume.ini,$server,%i) = $chan) /break inc %i } /writeini SessionResume.ini $server %i $chan } } on *:PART:#:{ if ($nick == $me) { var %i = 2 while ($readini(SessionResume.ini,$server,%i) != $null) { if ($readini(SessionResume.ini,$server,%i) == $chan) { /writeini SessionResume.ini $server %i empty /break } inc %i } } } on *:INPUT:*:{ if ($ctrlenter == $false) { if (/msg isin $1) && ($2 == NickServ) && ($3 == IDENTIFY) && ($4 != $null) /writeini SessionResume.ini $server ns $1- if (/ns isin $1) && ($2 == identify) && ($3 != $null) /writeini SessionResume.ini $server ns $1- } } alias sessionresume_checkserver { if ($readini(SessionResume.ini,$1,0) != $null) { var %nspass = $readini(SessionResume.ini,$1,ns) /remini SessionResume.ini $1 if (%nspass != $null) /writeini SessionResume.ini $1 ns %nspass } }