- 3
- 0
Приветствую всех знатоков!
Недавно начал изучать lua скрипты и их написание. Наткнулся на тему chapo, где он при помощи json кода discord при вводе команды отправлял форму на webhook.
Кому интересно, вот ссылка на blast.hk.
И вот, далее встречаю команды sampEvents, а именно
Недавно начал изучать lua скрипты и их написание. Наткнулся на тему chapo, где он при помощи json кода discord при вводе команды отправлял форму на webhook.
Кому интересно, вот ссылка на blast.hk.
И вот, далее встречаю команды sampEvents, а именно
onServerMessage
Данная команда создана для вывода с сервера на игрока сообщений из чата.
Полистав в Youtube наткнулся на обучающий ролик. Изучил.
Полистав в Youtube наткнулся на обучающий ролик. Изучил.
Пример использования::
local sampev = require('lib.samp.events') --[[подключаем библиотеку sampEvents]]
function sampev.onServerMessage(color, text)
if string.find(text, 'Администратор', 1, true) then
return false
end
end
По ролику понял, что данная команда может убрать сообщения Администрации и их действия с чата.
Пояснение о работе: string.find ищет text с использованием 'Администратор' и return false убирает его.
Далее хотел написать код, который отправлял бы мне на webhook действия Администрации.
Например кто-то кого-то посадил и эта строка сразу шла мне в Discord.
Некий logger действий админов, так сказать.
Написал малый код, скопировав его у chapo, но он не хочет работать. Поэтому прошу помощи экспертов.
Тот код, который должен работать::
local sampev = require('lib.samp.events')
local effil = require('effil')
local encoding = require('encoding')
local u8 = encoding.UTF8
encoding.default = 'CP1251'
function SendWebhook(URL, DATA, callback_ok, callback_error) -- Функция отправки запроса
local function asyncHttpRequest(method, url, args, resolve, reject)
local request_thread = effil.thread(function (method, url, args)
local requests = require 'requests'
local result, response = pcall(requests.request, method, url, args)
if result then
response.json, response.xml = nil, nil
return true, response
else
return false, response
end
end)(method, url, args)
if not resolve then resolve = function() end end
if not reject then reject = function() end end
lua_thread.create(function()
local runner = request_thread
while true do
local status, err = runner:status()
if not err then
if status == 'completed' then
local result, response = runner:get()
if result then
resolve(response)
else
reject(response)
end
return
elseif status == 'canceled' then
return reject(status)
end
else
return reject(err)
end
wait(0)
end
end)
end
asyncHttpRequest('POST', URL, {headers = {['content-type'] = 'application/json'}, data = u8(DATA)}, callback_ok, callback_error)
end
function sampev.onServerMessage(color, text)
while not isSampAvailable() do wait(0) end
if string.find(text, 'Администратор', 1, true) then
local Adm = text
SendWebhook('ТУТ ДОЛЖНА БЫТЬ ССЫЛКА НА ВАШ WebHook Discord!', ([[{
"content": null,
"embeds": [
{
"title": "Логи действий Администрации",
"description": "**Действие:** `%s`",
"color": 16711680
}
],
"attachments": []
}]]):format(Adm))
end
wait(-1)
end
end