Code:
on !@*:MODE:#Channel:{
  if (k isin $gettok($1,1,32)) mode $chan $iif(+ isin $1,-k,+k) $gettok($1-,$numtok($1-,32),32)
  if ($2) mode $chan $replace($replace($1-,+,$chr(161),-,$chr(162)),$chr(161),-,$chr(162),+) $2-
  else mode $chan $replace($replace($1-,+,$chr(161),-,$chr(162)),$chr(161),-,$chr(162),+)
  msg $chan $nick $+ , please do not change the channel modes.
}


The !@ prefix means it will not trigger if you did it, and that you must also be opped.

The actual code, I used some obscure characters to replace every +mode with -mode and each -mode with +mode. It will work with modes that have a second parameter also (+k for example).