Yeah the : in your wildcard match there would give you an error.

Code:
on *:text:*:#:{

;checks if nick is correct & your nick is in the first word. 
if ($nick = OnOeS) && ($me isin $1) {

;checks timer to not reset timer until 5 min is up.
if (!%onoes) {
;sets variable so you wont keep resetting it.
;as long as variable exists it wont reset the timer and send a message.
set -u300 %onoes $true

;!weap
if ($2 = !weap) timeronoes 1 300 msg #batcave You just used the !weap command, Please wait 5 minutes.

;has join the channel
elseif ($2-3 = has joined) timeronoes_join 1 300 msg #Batcave 5 minute countdown started.
}

;check timer duration status
if ($2 = !c4) msg # Join timer: $calc($timer(onoes_join).secs / 60) minute(s). Weap timer: $calc($timer(onoes).secs / 60) minute(s).
  }
}


I wrote this in this edit box, untested but a basic approach to your request.

This will only answer one person, you didn't sepcify more. If it is supposed to answer more nicks you would make a list, then check if nick is in the list.