; ==============================================
; Name: Session Resume
; Version: 23/12/09 11:54 (r0002)
; Author: Alyx/TigerTails (AlyxUK@gmail.com)
; ==============================================
;
; Notes:
; If you are running this script for the first time, disconnect and reconnect
; to all servers. Sorry, it's neccersary for how this script works.
;
; Changelog:
; 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
var %i = 2
while ($readini(SessionResume.ini,$server,%i) != $null) {
if ($readini(SessionResume.ini,$server,%i) != empty) /join $readini(SessionResume.ini,$server,%i)
inc %i
}
}
on *:DISCONNECT:{
/writeini SessionResume.ini $server 0 1
.timer 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
}
}
}
alias sessionresume_checkserver {
if ($readini(SessionResume.ini,$1,0) != $null) /remini SessionResume.ini $1
}