diff --git a/ND_Core/server/functions.lua b/ND_Core/server/functions.lua index ae2cd19..f20d98d 100644 --- a/ND_Core/server/functions.lua +++ b/ND_Core/server/functions.lua @@ -10,16 +10,15 @@ local discordErrors = { [400] = "improper http request", [401] = "Discord bot token might be missing or incorrect", [404] = "user might not be in server.", - [429] = "Discord bot rate limited.", - + [429] = "Discord bot rate limited." } -- Used to retrive the players discord server nickname, discord name and tag, and the roles. function NDCore.Functions.GetUserDiscordInfo(discordUserId) local data - local request = PerformHttpRequest("https://discordapp.com/api/guilds/" .. server_config.guildId .. "/members/" .. discordUserId, function(errorCode, resultData, resultHeaders) + local timeout = 0 + PerformHttpRequest("https://discordapp.com/api/guilds/" .. server_config.guildId .. "/members/" .. discordUserId, function(errorCode, resultData, resultHeaders) if errorCode ~= 200 then print("Error: " .. errorCode .. " " .. discordErrors[errorCode]) - return false end local result = json.decode(resultData) local roles = {} @@ -31,13 +30,15 @@ function NDCore.Functions.GetUserDiscordInfo(discordUserId) discordTag = tostring(result.user.username) .. "#" .. tostring(result.user.discriminator), roles = roles } - return true end, "GET", "", {["Content-Type"] = "application/json", ["Authorization"] = "Bot " .. server_config.discordServerToken}) - if request then - return data - else - return false + while not data do + Wait(1000) + timeout = timeout + 1 + if timeout > 5 then + break + end end + return data end -- Get player any identifier, available types: steam, license, xbl, ip, discord, live.