zxscv, возможно... у браузеров есть паранойя на открытие новых окон и вкладок, если событие генерируется в яваскрипте и не является вызванным пользователем, то оно считается фишингом и не работает
Петр, Тогда все элементарно, при получении команды проверяем по ключу существование класса с функциями, если есть выполняем нужные действия, если нет, отвечаем дефолтным действием.
Аргументы парсить проще всего(если я правильно понял синтаксис вашего бота), строчку нужно разрезать через пробел, получить массив, вынуть первый элемент массива стандартными средствами (array.pop или что то подобное) и все что осталось - ваши аргументы