In the matter of not being able to search the IBL, yes.

Code:
if ( !$chan(#).ibl ) { echo -a # : Internal Ban List is empty! }
if ( !$chan(#).ial ) { echo -a # : Internal Address List is empty! }


That's just a simple example of testing the IAL/IBL for a room.

For your script, if you ever have problems flooding off, and wish to help reduce that risk (as an example, one unban is small scale, really)...
Code:
alias unban {
  if ( !$chan(#).ibl ) { mode # -b $ial($1) | return }
  if ( $ial($$1) !isban ) { return }
  var %x = $ibl(#,0), %b, %a = %ial($1)
  while (%x) { if ($ibl(#,%x) iswm %a) { var %b = %b $ibl(#,%x) } | dec %x }
  if ( %b ) { mode # $+(-,$str(b,$numtok(%b,32))) %b }
}

More work than it's really worth in some ways, but if you go to unban someone, that *should* lift all the bans related to that person if the ibl is filled for that channel.
grin