I worked fine here.. i just some little changes:

Code:
on *:text:*:#: {
  if ($ulevel == 4) {
    if (!mopop == $1) { mode  [color:red]$chan[/color] +o $2 }
    [color:red]elseif[/color] (!mopdeop == $1) { mode  [color:red]$chan[/color] -o $2 }
    [color:red]elseif[/color] (!moptopic == $1) { topic  [color:red]$chan[/color] $2 }
    [color:red]elseif[/color] (!mopvoice == $1) { mode  [color:red]$chan[/color] +v $2 } 
  }
  elseif ($ulevel == 6) {
     if (!request MoPBoT == [color:red]$$1 $2[/color]) { join $3 }
  }
  else { msg $nick You don't have the user levels to do that! }
}


The $chan identifier will make sure that the bot makes the mode change in the channel that the event took place (if the bot is in more than 2 chans, it can mix them up)

To activate those command, the string should be: !mopop <nickname>, !mopdeop <nickname> and so on..
and !request MoPBoT #channel

Hope this helps!