Skip to content

Immediate crash when using Global:HttpRequest #265

@dewmguy

Description

@dewmguy

this script used to work perfectly prior to a recent update in acore and/or mod-eluna

currently on AzerothCore rev. 8f6d651471ee 2025-02-24 02:36:22 -0300 (master branch) (Unix, RelWithDebInfo, Static)

function sendDiscordNotification(player, actionType, actionDetail)
    local webhookUrl = "https://discord.com/api/webhooks/redacted"
    local playerName = player:GetName()
    local playerLevel = player:GetLevel()
    local playerClassEmoji = Classes[player:GetClass()] or ":question:"
    local playerFactionEmoji = GetPlayerFaction(player)
    local baseMessage = string.format("%s %s **%s**", playerFactionEmoji, playerClassEmoji, playerName)

    if actionType == "login" then
        message = baseMessage .. " has logged in."
    elseif actionType == "logout" then
        message = baseMessage .. " has logged out."
    elseif actionType == "death" then
        message = baseMessage .. string.format(" has been killed by %s!", actionDetail)
    elseif actionType == "murder" then
        message = baseMessage .. string.format(" has been ganked by %s!", actionDetail)
    elseif actionType == "suicide" then
        message = baseMessage .. string.format(" has %s!", actionDetail)
    elseif actionType == "levelUp" then
        message = baseMessage .. string.format(" has reached level **%d**!", actionDetail)
    elseif actionType == "item" then
        message = baseMessage .. string.format(" has found %s!", actionDetail)
    elseif actionType == "achievement" then
        message = baseMessage .. string.format(" has earned the achievement **[%s]**", actionDetail)
    end

    local payload = "content=" .. urlencode(message)

    HttpRequest("POST", webhookUrl, payload, "application/x-www-form-urlencoded", function(status, body, headers)
        if not status == 204 then
            local output = string.format("Failed to send %s notification for %s. Status: %s", actionType, playerName, status)
            print(output)
        end
    end)
end

tested r-o-b-o-t-o script and came to the same conclusion

-- test.lua
-- GET example (prints a random word)
print("loaded test.lua")

HttpRequest("GET", "https://random-word-api.herokuapp.com/word", function(status, body, headers)
    print("Random word: " .. string.sub(body, 3, body:len() - 2))
end)

-- POST example with JSON request body
HttpRequest("POST", "https://jsonplaceholder.typicode.com/posts", '{"userId": 1,"title": "Foo","body": "Bar!"}', "application/json", function(status, body, headers)
    print(body)
end)

-- Example with request headers
HttpRequest("GET", "https://postman-echo.com/headers", { Accept = "application/json", ["User-Agent"] = "Eluna Lua Engine" }, function(status, body, headers)
    print(body)
end)

console output at startup

Feb 25 08:36:34 warcraftserver worldserver[15278]:
Feb 25 08:36:34 warcraftserver worldserver[15278]: Eluna loaded script: class_deathknight_skipintro.lua
Feb 25 08:36:34 warcraftserver worldserver[15278]: Eluna loaded script: class_reloadammo.lua.lua
Feb 25 08:36:34 warcraftserver worldserver[15278]: loaded joke.lua
Feb 25 08:36:34 warcraftserver worldserver[15278]: Eluna loaded script: player_cdresetondeath.lua
Feb 25 08:36:34 warcraftserver worldserver[15278]: Eluna loaded script: player_enchantbuyback.lua
Feb 25 08:36:34 warcraftserver worldserver[15278]: Eluna loaded script: player_levelpurchase.lua
Feb 25 08:36:34 warcraftserver worldserver[15278]: Eluna loaded script: player_skillpurchase.lua
Feb 25 08:36:34 warcraftserver worldserver[15278]: Eluna loaded script: server_player_autotrainer.lua
Feb 25 08:36:34 warcraftserver worldserver[15278]: Eluna loaded script: server_player_levelrewards.lua
Feb 25 08:36:34 warcraftserver worldserver[15278]: Eluna loaded script: server_player_logout.lua
Feb 25 08:36:34 warcraftserver worldserver[15278]: Eluna loaded script: server_questskipper.lua
Feb 25 08:36:34 warcraftserver worldserver[15278]: loaded test.lua
Feb 25 08:36:34 warcraftserver worldserver[15278]: [Eluna]: HTTP request error: Connection timed out
Feb 25 08:36:34 warcraftserver worldserver[15278]:
Feb 25 08:36:34 warcraftserver systemd[1]: worldserver.service: Main process exited, code=killed, status=11/SEGV
Feb 25 08:36:34 warcraftserver systemd[1]: worldserver.service: Failed with result 'signal'.
Feb 25 08:36:34 warcraftserver systemd[1]: worldserver.service: Consumed 1min 4.864s CPU time.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions