Автор: MIKHAIL 25.5.2015, 0:37
Создаю контекстное меню пользователя с родной командой Птоки ("Помощь"):
Код
Core.SendToUser("$UserCommand 1 1 Помощь$$To: %[nick] From: %[mynick] $<%[mynick]> !help|")
результат работы будет отображен в приватном сообщении бота хаба как список доступных команд для данного профиля пользователя.
Использование данного контекстного меню равносильно непосредственному вводу данной команды (!help) пользователем конкретно в привате бота хаба.
Вопрос: как я со стороны хаба могу выполнить данную команду "как бы" от имени пользователя, т. е. чтобы результатом работы было бы отображение в приватном сообщении бота хаба списка доступных команд для данного пользователя?
Капаю как-то так:
Код
Core.SendToUser(tUser,"$To: BOTNICK From: USERNICK $<USERNICK> !help|")
но безрезультатно...
Прошу помощи по решению данного вопроса.
Автор: Артём 29.5.2015, 21:40
Цитата(MIKHAIL @ 25.5.2015, 0:37)
Вопрос: как я со стороны хаба могу выполнить данную команду "как бы" от имени пользователя...
Отвечу: скриптом
Скорей всего нерабочий код, ну, возможно поймёшь в какую сторону копать
Код
function UserConnected(user)
Core.SendToUser(user,"$UserCommand 1 3 Отправить Помощь этому юзеру$<%[mynick]> [%nick] !shelp|")
end
local message = {
[[ Текст для отправки пользователю в лс от его имени
]]
}
function ToArrival(user,data)
local s,e,to,from,message = string.find(data, "%$To:%s(%S+)%sFrom:%s(%S+)%s$<(%S+)%>%s(.*)$")
local tToUser = Core.GetUser(to)
Core.SendPmToUser(user, to, message)
end
--ChatArrival=ToArrival
P.S. хотя, может я что-то не так понял и не в тему коммент оставил...
Автор: MIKHAIL 30.5.2015, 0:08
Артём, фишка в том, чтобы выполнить родную команду Птоки !help без телодвижений со стороны пользователя и отослать ему результат в приват от бота, как если бы он (пользователь) сам выполнил эту команду через тот же приват бота. Да что уж там приват, реализовать хотя бы в общем чате.
То есть всё сводится к тому, как правильно подсунуть Птоке !help от имени пользователя: сам пользователь "ничего не трогает", а ему приходит сообщение, что, мол, вам доступны такие-то родные команды самой Птоки, естественно, в зависимости от вашего профиля.
Автор: Артём 30.5.2015, 12:53
MIKHAIL, только скриптом.
Автор: MIKHAIL 5.6.2015, 13:01
Вообщем, сказать от имени пользователя TEST команду "!help" в главном чате по аналогии с:
Код
"$UserCommand 1 1 Help$<%[mynick]> !help|"
ни так:
Код
Core.SendToUser(tUser,"!help|")
ни так:
Код
Core.SendToNick("TEST","!help|")
не получается.
Вот если бы была такая функция API для родных команд Птоки:
Core.ExecAsUser(tUser,sCmd)...