Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local FormattedToken = "Bot " .. config.discordBotToken
- function vRP.DiscordRequest(method, endpoint, jsondata)
- local data = nil
- PerformHttpRequest("https://discordapp.com/api/"..endpoint, function(errorCode, resultData, resultHeaders)
- data = {data=resultData, code=errorCode, headers=resultHeaders}
- end, method, #jsondata > 0 and json.encode(jsondata) or "", {["Content-Type"] = "application/json", ["Authorization"] = FormattedToken})
- while data == nil do
- Citizen.Wait(0)
- end
- return data
- end
- function vRP.loadUserDiscordData(source, user_id, cbr)
- local callback = false
- local function cb(ret)
- if not callback then
- callback = true
- cbr(ret)
- end
- end
- local discordId = nil
- for _, id in ipairs(GetPlayerIdentifiers(source)) do
- if string.match(id, "discord:") then
- discordId = string.gsub(id, "discord:", "")
- break
- end
- end
- if discordId then
- local result = vRP.DiscordRequest("GET", "users/" .. discordId, {})
- local data = json.decode(result.data)
- if data then
- if data['avatar'] then
- vRP.user_tmp_tables[user_id].avatar_hash = data['avatar']
- if string.sub(data['avatar'], 1, 2) == "a_" then
- vRP.user_tmp_tables[user_id].avatar = "https://cdn.discordapp.com/avatars/" .. discordId .. "/" .. data['avatar'] .. ".gif"
- else
- vRP.user_tmp_tables[user_id].avatar = "https://cdn.discordapp.com/avatars/" .. discordId .. "/" .. data['avatar'] .. ".png"
- end
- end
- if data['id'] then
- vRP.user_tmp_tables[user_id].discord_id = data['id']
- end
- if data['username'] then
- vRP.user_tmp_tables[user_id].discord_username = data['username']
- end
- if data['discriminator'] then
- vRP.user_tmp_tables[user_id].discord_discriminator = data['discriminator']
- end
- if data['username'] and data['discriminator'] then
- vRP.user_tmp_tables[user_id].discord = data['username'] .. "#" .. data['discriminator']
- end
- end
- cb(true)
- else
- cb(false)
- end
- Wait(500)
- if not callback then
- cb(false)
- end
- end
- function vRP.initializeUserData(source, user_id, cbr)
- local callback = false
- local function cb(ret)
- if not callback then
- callback = true
- cbr(ret)
- end
- end
- vRP.user_tmp_tables[user_id].connected = os.time()
- cb(true)
- end
- -- Complicated spaghet that fetches the users Steam Avatar
- local SAK = config.steamApiKey
- function vRP.loadUserSteamData(source, user_id, cbr)
- local callback = false
- local function cb(ret)
- if not callback then
- callback = true
- cbr(ret)
- end
- end
- local function validResponse(text, statusCode)
- return (text ~= nil and statusCode ~= nil and tonumber(statusCode) == 200)
- end
- local steamid = GetPlayerIdentifier(source, 0)
- if not steamid then
- cb(true)
- return true
- end
- if not string.find(steamid, "steam:") then
- cb(true)
- return true
- end
- local steam64 = tonumber(string.gsub(steamid,"steam:", ""),16)
- if not steam64 then
- cb(true)
- return true
- end
- PerformHttpRequest('http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key='..SAK..'&steamids='..steam64..'', function(statusCode, text, headers)
- if text then
- if validResponse(text, statusCode) then
- local info = json.decode(text)
- if info['response']['players'][1]['avatarmedium'] then
- vRP.user_tmp_tables[user_id].avatar = info['response']['players'][1]['avatarmedium']
- end
- if info['response']['players'][1]['steamid'] then
- vRP.user_tmp_tables[user_id].steamid = info['response']['players'][1]['steamid']
- end
- if info['response']['players'][1]['profileurl'] then
- vRP.user_tmp_tables[user_id].profileurl = info['response']['players'][1]['profileurl']
- end
- else
- end
- end
- cb(true)
- end, 'GET', json.encode({}), { ["Content-Type"] = 'application/json' })
- Wait(500)
- if not callback then
- cb(false)
- end
- end
- function vRP.getAvatar(user_id)
- if not vRP.user_tmp_tables[user_id] then return nil end
- return vRP.user_tmp_tables[user_id].avatar
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement