require'addon'
local inicfg = require 'config'
local inidir = 'Discord Webhook'
local cfg = inicfg.load({
main = {
name = "Name",
url = "[URL]https://discord.com/api/webhooks/[/URL]..."
}}, inidir)
inicfg.save(cfg, inidir)
local effil = require('effil')
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
newTask(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
local function sendwebhook(user, text)
local newData = string.format([[
{
"username": "%s",
"content": "%s"
}
]], user, text)
asyncHttpRequest(
'POST',
cfg.main.url,
{
headers = {
['content-type'] = 'application/json'
},
data = newData
},
nil,
nil
)
end
local ev = require 'samp.events'
function ev.onServerMessage(col, text)
local text = text:gsub("{......}", "")
sendwebhook(cfg.main.name, text)
end
function ev.onChatMessage(id, text)
local text = text:gsub("{......}", "")
sendwebhook(cfg.main.name, text)
end