usually not a good habit to use multiple text (or any) events on the same script, they can clash :)
on *:TEXT:*:#:{ if ($1 == !warn) { if ($2 == on) { ... } elseif ($2 == off) { ... } } else { ... } }