Код
--- Скриптик для предупреждений и сообщений от бота
--- Название: BotForOp_api2.lua
--- Накалякал Ksan из Томска для Милены Питерской, сидя на плечах гигантов-скриптёров..
sHelp = " *** Помощь по командам (важно при писании в чат сообщений с несколькими строками от имени бота):\n\t!frombottouserpm НИК ТЕКСТ_СООБЩЕНИЯ - сообщение в приват юзера от имени бота\n\t!frombottousermc НИК ТЕКСТ_СООБЩЕНИЯ - тихое сообщение в чате юзеру от имени бота (видит только этот юзер)\n\t!frombottousermcall НИК ТЕКСТ_СООБЩЕНИЯ - громкое сообщение в чате юзеру (видно всем)\n\t!frombottochat ТЕКСТ_СООБЩЕНИЯ - сообщение в чате от имени бота (видно всем)\n\t!warn НИК ТЕКСТ_СООБЩЕНИЯ - предупреждение юзера в чате (видят все)\n\t!helpforwarn - получение этой самой помощи по командам"
function OnStartup()
sBot = SetMan.GetString(21)
end
function UserConnected(tUser)
local t = ProfMan.GetProfilePermissions(tUser.iProfile)
if t then
if t.bTempBan then
Core.SendToUser(tUser, "$UserCommand 1 2 << АДМИНКА >>\\От имени бота\\Юзеру в приват от бота..$<%[mynick]> !frombottouserpm %[nick] %[line:Текст сообщения]|")
Core.SendToUser(tUser, "$UserCommand 1 2 << АДМИНКА >>\\От имени бота\\Юзеру в чат от бота (тихо)..$<%[mynick]> !frombottousermc %[nick] %[line:Текст сообщения]|")
Core.SendToUser(tUser, "$UserCommand 1 2 << АДМИНКА >>\\От имени бота\\Юзеру в чат от бота (громко)..$<%[mynick]> !frombottousermcall %[nick] %[line:Текст сообщения]|")
Core.SendToUser(tUser, "$UserCommand 1 1 << АДМИНКА >>\\От имени бота\\Сообщение в чате от бота..$<%[mynick]> !frombottochat %[line:Текст сообщения]|")
Core.SendToUser(tUser, "$UserCommand 1 1 << АДМИНКА >>\\От имени бота\\Помощь по командам$<%[mynick]> !helpforwarn|")
end
if t.bKick then
Core.SendToUser(tUser, "$UserCommand 1 2 << АДМИНКА >>\\От имени бота\\Предупреждение в чате..$<%[mynick]> !warn %[nick] %[line:Причина]|")
end
end
end
OpConnected = UserConnected
RegConnected = UserConnected
function ChatArrival(tUser, sData)
Core.GetUserAllData(tUser)
local t = ProfMan.GetProfilePermissions(tUser.iProfile)
local sData = sData:sub(1,-2)
local s,e, sCmd = string.find(sData, "^%b<>%s+(%S+)")
local s,e, sParam = string.find(sData, "^%b<>%s+%S+%s+(.+)")
if t then
if t.bTempBan then
if sCmd and sCmd == "!frombottouserpm" then
local s,e, sNick, sMsg = string.find(sParam, "^(%S+)%s+(.+)$")
if sNick and sMsg then
local CurUser = Core.GetUser(sNick)
if CurUser then
Core.GetUserData(CurUser, 16)
FromBot(CurUser, sMsg)
FromBot(tUser, "Юзеру "..sNick.." отправлено в приват сообщение: "..sMsg)
else
ToUser(tUser, "Ошибка: юзер "..sNick.." не найден на хабе")
end
else
ToUser(tUser, "Ошибка синтаксиса. Синтаксис: !frombottouserpm <ник> <текст сообщения>")
end
return true
end
if sCmd and sCmd == "!frombottousermc" then
local s,e,sNick, sMsg = string.find(sParam, "^(%S+)%s+(.+)$")
if sNick and sMsg then
local CurUser = Core.GetUser(sNick)
if CurUser then
Core.GetUserData(CurUser, 16)
ToUser(CurUser, sNick..": *** "..sMsg)
ToUser(tUser, sNick..": *** "..sMsg)
else
ToUser(tUser, "Ошибка: юзер "..sNick.." не найден на хабе")
end
else
ToUser(tUser, "Ошибка синтаксиса. Синтаксис: !frombottousermc <ник> <текст сообщения>")
end
return true
end
if sCmd and sCmd == "!frombottousermcall" then
local s,e, sNick, sMsg = string.find(sParam, "^(%S+)%s+(.+)$")
if sNick and sMsg then
local CurUser = Core.GetUser(sNick)
if CurUser then
Core.GetUserData(CurUser, 16)
FromBotToChat(sNick..": *** "..sMsg)
else
ToUser(tUser,"Ошибка: юзер "..sNick.." не найден на хабе")
end
else
ToUser(tUser, "Ошибка синтаксиса. Синтаксис: !frombottousermcall <ник> <текст сообщения>")
end
return true
end
if sCmd and sCmd == "!frombottochat" then
local sMsg = sParam
if sMsg then
FromBotToChat(sMsg)
else
ToUser(tUser, "Ошибка: Нет текста сообщения")
end
return true
end
if sCmd and sCmd == "!helpforwarn" then
FromBot(tUser, sHelp)
return true
end
end
if t.bKick then
if sCmd and sCmd == "!warn" then
local s,e, sNick, sMsg = string.find(sParam, "^(%S+)%s+(.+)$")
if sNick and sMsg then
local CurUser = Core.GetUser(sNick)
if CurUser then
Core.GetUserData(CurUser, 16)
FromBotToChat(sNick..": *** Вам предупреждение: "..sMsg)
else
ToUser(tUser, "Ошибка: юзер "..sNick.." не найден на хабе")
end
else
ToUser(tUser, "Ошибка: Вы не ввели ник или причину!")
end
return true
end
end
end
collectgarbage("collect")
end
function FromBot(user, msg)
Core.SendPmToUser(user, sBot, msg)
end
function ToUser(user, msg)
Core.SendToUser(user, "<"..sBot.."> "..msg)
end
function FromBotToChat(msg)
Core.SendToAll("<"..sBot.."> "..msg)
end