Нужна помощь/ответ в написании lua sampEvents

sadlines

Новичок
Автор темы
3
0
Приветствую всех знатоков!
Недавно начал изучать lua скрипты и их написание. Наткнулся на тему chapo, где он при помощи json кода discord при вводе команды отправлял форму на webhook.
Кому интересно, вот ссылка на blast.hk.
И вот, далее встречаю команды sampEvents, а именно​
Данная команда создана для вывода с сервера на игрока сообщений из чата.
Полистав в 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
 

Masayuki

Участник
77
31
Lua:
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

local url = 'ссылку на вебхук сюда'

function main()
    while not isSampAvailable() do wait(0) end
    wait(-1)
end

function sampev.onServerMessage(color, text)
    if string.find(text, 'Администратор', 1, true) then
        SendWebhook(url, ([[{
            "content": null,
            "embeds": [
              {
                "title": "Логи действий Администрации",
                "description": "**Действие:** `%s`",
                "color": 16711680
              }
            ],
            "attachments": []
          }]]):format(text))
    end
end
 

sadlines

Новичок
Автор темы
3
0
Lua:
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

local url = 'ссылку на вебхук сюда'

function main()
    while not isSampAvailable() do wait(0) end
    wait(-1)
end

function sampev.onServerMessage(color, text)
    if string.find(text, 'Администратор', 1, true) then
        SendWebhook(url, ([[{
            "content": null,
            "embeds": [
              {
                "title": "Логи действий Администрации",
                "description": "**Действие:** `%s`",
                "color": 16711680
              }
            ],
            "attachments": []
          }]]):format(text))
    end
end
Благодарю!

Извиняюсь, что сейчас проверить это не выйдет, т.к. завтра слишком рано вставать. Как проверю отпишу<3

Lua:
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

local url = 'ссылку на вебхук сюда'

function main()
    while not isSampAvailable() do wait(0) end
    wait(-1)
end

function sampev.onServerMessage(color, text)
    if string.find(text, 'Администратор', 1, true) then
        SendWebhook(url, ([[{
            "content": null,
            "embeds": [
              {
                "title": "Логи действий Администрации",
                "description": "**Действие:** `%s`",
                "color": 16711680
              }
            ],
            "attachments": []
          }]]):format(text))
    end
end
вроде работает, еще раз спасибо
 
Последнее редактирование: