Поиск сообщений и отправка значений на discord помощью sampev.onServerMessage

saradaken

Участник
Автор темы
41
6
Версия MoonLoader
.027.0-preview
рукопись https://www.blast.hk/threads/122504/


Здравствуйте, я хочу отправить эту сумму в Discord, но ничего не происходит.

สกรีนช็อต 2024-09-20 2146gfgfgf19.png


Вот что произошло после отправки.
สกรีนช็อต 2024-09-20 215036.png



Lua:
function sampev.onServerMessage(color, text)
    if text:find("Состояние счета: $(%d+)") then
        if dw then
        lua_thread.create(function()
        account_balance = text:match("$(%d+)")
        end)
    end
    end
end

Lua:
require 'lib.moonloader'
local sampev = require 'samp.events'
local effil = require('effil') -- подключаем библиотеку effil для отправки запросов
local encoding = require('encoding') -- подключаем библиотеку encoding для перевода текста из Windows-1251 в UTF-8
local u8 = encoding.UTF8
encoding.default = 'CP1251'

local dw = false
local account_balance = 0

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)
    if text:find("Состояние счета: $(%d+)") then
        if dw then
        lua_thread.create(function()
        account_balance = text:match("$(%d+)")
        end)
    end
    end
end




function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand('dw', function(arg)
        dw = not dw
        if dw then

        
        local MyId = select(2, sampGetPlayerIdByCharHandle(PLAYER_PED))
        local MyName = sampGetPlayerNickname(MyId)
        local MyLvl = sampGetPlayerNickname(MyId)
        local ServerName = sampGetCurrentServerName(MyId)
        local ServerAddress = table.concat({sampGetCurrentServerAddress()}, ':')
        SendWebhook('https://discord.com/api/webhooks/', ([[{
            "content":  "**Discohook**! The easiest way to personalise your Discord server.",
            "embeds": [
              {
                "title": "**`Bank $%d`**",
                "description": "**NAME:** `%s`\n**ID:** `%s`\n**IP:** `%s`",
                "color": 14268408,
                "timestamp": "2024-09-19T18:33:00.000Z"
              }
            ],
            "attachments": []
          }]]):format(account_balance,ServerName,MyName, MyId, ServerAddress))
    --    sampAddChatMessage('DiscordWebhook >> message sent!', -1)
    
            sampAddChatMessage('PayDay Notifer activated', 0x01FFD5)
        else
            sampAddChatMessage('Payday Notifer deactivated', 0x01FFD5)
        end
    end)
    wait(-1)
end