The format for adding/removing channels is the same.
Op/Half-op nicks are now stored in a special entry in the hash table, and all hash table items include a network reference, just in case you (or someone else) wants to use this on multiple networks.
Code:
on *:input:*:{
  if $1 == !addchan {    chan add $strip($2-)  }
  elseif $1 == !remchan {    chan rem $strip($2-)  }
}
on *:text:!*:#:{
  if $istok($hget(Badchan,$+($network,.,$chan)),$nick,44) {
    if $1 == !addchan {    chan add $strip($2-)  }
    elseif $1 == !remchan {    chan rem $strip($2-)  }
  }
}
on *:start:{
  if !$hget(badchan) { .hmake badchan 100 }
  if $exists($scriptdirbadchan.hsh) { .hload badchan $scriptdirbadchan.hsh }
  .scon -at1 checkops
}
on *:exit:{
  .hsave badchan $scriptdirbadchan.hsh
}
on *:disconnect:{
  .hsave badchan $scriptdirbadchan.hsh
}
alias -l checkops {
  var %b = $chan(0)
  while %b {
    var %c = $nick($chan(%b),0,oh), %ohnicks
    while %c {
      %ohnicks = $addtok(%ohnicks,$nick($chan(%b),%c,oh),44)
      dec %c
    }
    .hadd -m Badchan $+(oh.,$network,.,$chan(%b)) %ohnicks
    dec %b
  }
}
alias chan {
  if $1 == add {
    if !$2 {
      .msg $nick Usage !addchan #channel_1,#channel_2,#channel_3 Message
      .msg $nick Multiple channels can be specified by comma separating them.
      .msg $nick A common message regarding all specified channels can be entered by separating the message from the channels with a space.
    }
    else {
      var %a = $numtok($2,44)
      while %a {
        .hadd -m Badchan $+($network,.,$gettok($2,%a,44)) $iif($3,$3-,Bad Channel)
        dec %a
      }
      .msg $nick Bad channels $2 have been added with the message of $iif($3,$3-,Bad Channel)
    }
  }
  elseif $1 == rem {
    if !$2 {
      .msg $nick Usage !remchan #channel_1,#channel_2,#channel_3
      .msg $nick Multiple channels can be specified by comma separating them.
    }
    else {
      var %a = $numtok($2,44)
      while %a {
        .hdel Badchan $gettok($2,%a,44)
        dec %a
      }
      .msg $nick Bad channels $2 have been removed.
    }
  }
}
on *:join:#:{
  var %ohchan = $chan
  .enable #ohnotice
  .whois $nick
}
#ohnotice off
raw 318:*:{
  .disable #ohnotice
  haltdef
}
raw 319:*:{
  var %a = $numtok($3-,32)
  while $hget(Badchan,$+($network,.,$gettok($3-,%a,32))) {
    .notice $hget(Badchan,$+(oh.,$network,.,%ohchan)) $2 is also on $gettok($3-,%a,32) with a warning message of $hget(Badchan,$+($network,.,$gettok($3-,%a,32)))
    dec %a
  }
  haltdef
}
#ohnotice end
on *:op:#:{  ohnick add $chan $opnick }
on *:help:#:{  ohnick add $chan $hnick }
on *:deop:#:{  ohnick rem $chan $opnick }
on *:dehelp:#:{  ohnick rem $chan $hnick }
on *:quit:{  ohnick rem $chan $nick }
on *:part:#:{  ohnick rem $chan $nick }
on *:kick:#:{  ohnick rem $chan $knick }
alias -l ohnick {
  var %ohnicks = $hget(Badchan,$+(oh.,$network,.,$2))
  if $1 == add {    %ohnicks = $addtok(%ohnicks,$3,44)  }
  elseif $1 == rem {    %ohnicks = $remtok(%ohnicks,$3,1,44)  }
  .hadd -m Badchan $+(oh.,$network,.,$chan) %ohnicks
}


I have tested this out briefly, and everything seems to be ok.

Let me know if you have any difficulties.

P.S.: Due to the differences in how the information is stored in the hash table, please delete the old badchan.hsh file (if there is one) as the data in the old file no longer has a compatable format.