myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 
 
Ответить в данную темуНачать новую тему

> CmdToAdmin, Скрипт посылает в приват владельцу хаба команды | API2

Теги
Нет тегов для показа
Tsd
сообщение 10.10.2010, 11:06
Сообщение #1


Продвинутый участник
****

Группа: Пользователи
Сообщений: 176
Регистрация: 11.7.2008
Пользователь №: 171
Спасибо сказали: 182 раза




Название скрипта: CmdToAdmin_1.3
Версия API: API2
Автор: Tsd
Описание: Скрипт посылает в приват владельцу хаба команды, посланные пользователями.
Иногда полезно знать кто какие команды использует. Не реагирует на команды, посланные ником в конфигураторе,
на "любимые" команды типа "+5" и т.п. Скрипт ставим выше всех скриптов, использующих команды/меню.
Tsd © 10.2010
Прикрепленные файлы
Прикрепленный файл  CmdToAdmin_1.3.lua ( 1.42 килобайт ) Кол-во скачиваний: 77
 


Спасибо сказали:
Go to the top of the page
+Quote Post
alex82
сообщение 10.10.2010, 11:38
Сообщение #2


Местный
*******

Группа: Неактивированные
Сообщений: 908
Регистрация: 26.12.2008
Пользователь №: 1 574
Спасибо сказали: 1406 раз




Можно несколько упростить код отлова команды в чате:

Код
function ChatArrival(user,data)
    if Core.GetUser(sNick) and user.sNick ~= sNick then
        local pre,cmd = data:match("%b<>%s+(["..SetMan.GetString(29):gsub("[%^%$%(%)%%%.%[%]%*%+%-%?]","%%%1").."])(%S+)")
        if pre then
            if not (pre == "+" and cmd:find("^%d+")) then -- Не реагируем на "+5", к примеру.
                cmd = cmd:lower()
                for i = 1,#tIgnoreCmd do
                    if cmd == tIgnoreCmd[i] then return end
                end        
                Core.SendPmToNick(sNick, sBot, "\tПослана команда хабу:  "..data:sub(1,-2))
            end    
        end
    end
end
Префиксы команд берутся из настроек хаба. Соответственно отпадает необходимость в таблице команд и цикле, проверяющем наличие команды в таблице. И чистка памяти, я думаю, здесь лишняя.

Код
ToArrival = ChatArrival
А это лучше удалить, поскольку во-первых, подавляющее большинство юзеров вообще не знают о возможности отправки команд главному боту хаба, во-вторых, будут проверяться все лички, а не только те, что были отправлены боту, а в третьих, при текущей реализации функции отлова команд, в лог будет попадать вся команда $To. Будет что-то вроде этого:
Цитата
<bot> Послана команда хабу: $To: bot From: user $<user> !command


Спасибо сказали:
Go to the top of the page
+Quote Post
Tsd
сообщение 10.10.2010, 11:54
Сообщение #3


Продвинутый участник
****

Группа: Пользователи
Сообщений: 176
Регистрация: 11.7.2008
Пользователь №: 171
Спасибо сказали: 182 раза




Префиксы в разных скриптах свои! По крайней мере у меня. А префиксы из настроек хаба вытянуть - согласен. Некоторые регистрируются отсылом боту в приват команду регистрации.

Не судите строго, я только учусь. 2 alex82 - спасибо за науку, много подчерпнул для себя важного.
Go to the top of the page
+Quote Post

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Сейчас: 19.4.2024, 4:15