The bot responds the command in the channel, but not by private message.

Code:
on *:text:*:#,?: { 
  if ($strip($1) == .silence) { 
    if ($ulevel < 500) { msg # Acces denied! }
    if ($ulevel >= 500) && ($me isop $chan) && ($2 !ison $chan) {  msg # Error, Cannot find, the $qt($2) nickname is NOT on the channel! }
    if ($ulevel >= 500) && ($me isop $chan) && ($2 ison $chan) {   .ban $chan $2 | .mode $chan -v $2 | .mode $chan -o $2 }
    if ($ulevel >= 500) && ($me !isop $chan) && ($2) {  msg # I haven´t @ in $chan }
  } 
}


Result for command in channel .silence peter:
Quote:
=> ¦ ControlBoT pone modo [+b peter!*grexe@BhgR4f.Boe777.virtual ]
=> ¦ ControlBoT pone modo [-v peter ]


Result for command in private message .silence peter:
In the channel does not shows anything, on the bot status window shows:
Quote:
[13:37] -> *I* haven´t @ in
-
I No such nick - Nick no presente en IRC
-


How I can do to make me accept commands by channel and private message.?
Other commands work for channel and private message, but this no.