Automatically rejoin channels you have been kicked and banned from.
The script will keep retrying until you close the channel or get back in.
Requires 'Rejoin channel when kicked' and 'Keep channels open' are enabled.
Written by Raccoon on 27-Aug-2012.
; r_banrejoin.mrc * Version 1.1 * 27-Aug-2012 * 12-Sept-2012 Raccoon/EFnet
; This script has no dependencies. It belongs in the Remotes section.
;*******************************************************************************
;* Automatically rejoin channels you have been kicked and banned from. *
;* The script will keep retrying until you close the channel or get back in. *
;* First 5 tries at 10,20,30,40,50 seconds, then between 5-10 minutes random. *
;* Requires 'Rejoin channel when kicked' and 'Keep channels open' are enabled. *
;* Written by Raccoon on 27-Aug-2012. #mIRC/EFNet #mSL/SwiftIRC www.hawkee.com *
;*******************************************************************************
;----- Begin "Auto-Rejoin When Banned" by Raccoon -----
;474 $me $chan :Cannot join channel (+b)
RAW 474:*: { ; By Raccoon 27-Aug-2012
var %chan = $2
inc -e %BANREJOIN. $+ $cid $+ %chan
var %n = $($+(%,BANREJOIN.,$cid,%chan),2)
var %t = $iif(%n isnum 1-5,$calc(%n * 10),$r(300,600))
.timerBANREJOIN. $+ $cid $+ %chan 1 %t _timer_ban_rejoin $chsafe(%chan)
if (%n == 1) { .timer 1 0 echo -tic notice $chsafe(%chan) * Attempting to rejoin until ban is lifted... }
else { haltdef }
}
;Called via /timer to check if we should try rejoining.
ALIAS _timer_ban_rejoin { ; By Raccoon 27-Aug-2012
var %chan = $1
if $window(%chan,0) && ($me !ison %chan) { join %chan }
else { unset %BANREJOIN. $+ $cid $+ %chan }
}
;366 $me $chan :End of /NAMES list.
RAW 366:*: { unset %BANREJOIN. $+ $cid $+ $2 }
;Use in /timers to sanitize channel names like #$q(hacked!). By Raccoon.
ALIAS -l chsafe { return $iif($ isin $1,$!replace( $replace($1,$,`$) ,`$,$),$1) }
;----- End "Auto-Rejoin When Banned" by Raccoon -----