What I can think of at this moment is include an additional feature to add protected addresses in a hash table, along with the rawmode event to catch the wildcard match like so:
on *:exit:{
hsave pro pro
}
on *:start:{
if ($isfile(pro)) {
hmake pro 1000
hload pro pro
}
}
on !@*:rawmode:#:{
if ($hfind(pro,$2,1,w)) {
mode # -b $v1
}
}
on @*:ban:#:{
var %? = 1
while (%? <= $ulist(*,100,0)) {
if ($banmask iswm $ialchan($ulist(*,100,%?),#,1)) {
mode # -b $v1
}
inc %?
}
}
To add those wildcard addresses, use:
/hadd -m pro *!cDn@*.rogers.com
/hadd -m pro *!cDn@*.cpe.net.cable.rogers.com