Auto kicks all matching banmasks on userlevel 100 ban, unbans in 60 seconds to keep the banlist down and then ausers the address, so on join it will kick the nick.
To help prevent the bot lagging out I would suggest pushmode, which you can find on mircscripts.org by wiebe.
When loading it you must /hop on your channel(s) for it to update your ial! It will not work without ial. It updates the ial by doing /who $chan.
Can be used over multiple channels.. just use /set %channels #chan1,#chan2,#chan3 etc.
on 100:BAN:%channels: {
if ($me isop $chan) {
if ($ialchan($banmask,$chan,1).nick ison $chan) {
var %num.affected = $ialchan($banmask,$chan,0).nick
while (%num.affected) {
if ($ialchan($banmask,$chan,%num.affected).nick != $me) {
kick $chan $ialchan($banmask,$chan,%num.affected).nick You are BANNED from this channel.
dec %num.affected
}
else {
dec %num.affected
}
}
auser banned $banmask
ban -u60 $chan $banmask
}
else {
auser banned $banmask
ban -u60 $chan $banmask
}
}
else {
halt
}
}
on *:JOIN:%channels: {
if ($level($fulladdress) == banned) {
var %addr = $address($nick,2)
kick $chan $nick You are BANNED from this channel.
mode $chan +b %addr
}
elseif ($nick == $me) {
who $chan
}
}