comp-tg/src/events/command.moon

29 lines
746 B
Plaintext

(api, msg) =>
l = msg.from.language_code
owner = msg.from.id == @config.owner
cmd = @cmds[msg.cmd]
msg.l = l
if not cmd
api\send msg, @locale\get 'error', 'inv_cmd', l
elseif type(cmd.run) ~= 'function'
api\send msg, @locale\get 'error', 'cmd_run', l
elseif cmd.private and not owner
api\send msg, @locale\get 'error', 'adm_cmd', l
else
msg.args = api.parseArgs api.unparseArgs msg.args if cmd.useQArgs
msg.loc = @locale\get 'cmds', msg.cmd, l
suc, err = pcall cmd.run, @, msg, owner
if not suc
-- whoops
print err
api\forward @config.owner, msg.chat.id, msg.message_id, false
api\send @config.owner, err
api\reply msg, @locale\get 'error', 'not_suc', l
return