--[[ ======================================== DISCORD MANAGER/CLIENT FOR FIVEM2DISCORD ======================================== - DO NOT EDIT THIS FILE UNLESS YOU KNOW WHAT YOU ARE DOING ======================================== ]] local formattedToken = "Bot " .. CONFIG.DiscordBotToken local function FM2Discord() -- [[ HANDLE DISCORD REQUESTS SERVER SIDE ]] function DiscordRequest(method, endpoint, jsondata) local data = nil PerformHttpRequest(CONFIG.DiscordAPIUrl .. 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 -- [[ GET DISCORD USER DATA ]] function GetDiscordUser(id) local user = DiscordRequest("GET", "user/" .. id) if user.code ~= 200 then return nil else local userData = json.decode(user.data) return userData.user end end -- [[ GET DISCORD USER AVATAR ]] function GetDiscordAvatar(id) local id = string:gsub(ExtractIdentifiers(id).discord, "discord:", "") local Userdata = GetDiscordUser(id) if Userdata ~= nil then if (Userdata.avatar:sub(1, 1) and Userdata.avatar:sub(2, 2) == '_') then imgUrl = "https://cdn.discordapp.com/avatars/" .. id .. "/" .. Userdata.avatar .. ".gif" else imgUrl = "https://cdn.discordapp.com/avatars/" .. id .. "/" .. Userdata.avatar .. ".png" end else imgUrl = CONFIG.System.UserAvatar end return imgUrl end function GetDiscordName(user, f, l) if CONFIG.Discord.UseNames then local id = string:gsub(ExtractIdentifiers(user).discord, "discord:", "") local userData = GetDiscordUser(id) if userData ~= nil then if userData.discriminator ~= nil or 0 then return userData.username else return userData.global_name end else return GetPlayerName(user) or ''..f..' '..l..'' -- default end else return GetPlayerName(user) or ''..f..' '..l..'' -- default end end function ExtractIdentifiers(src) local identifiers = { steam = "", ip = "", discord = "", license = "", xbl = "", live = "", fivem = "" } for i = 0, GetNumPlayerIdentifiers(src) - 1 do local id = GetPlayerIdentifier(src, i) -- [[ LOOP OVER ALL AVAILABLE SERVER IDENTIFIERS ]] if string.find(id, "steam") then identifiers.steam = id elseif string.find(id, "ip") then identifiers.ip = id elseif string.find(id, "discord") then identifiers.discord = id elseif string.find(id, "license") then identifiers.license = id elseif string.find(id, "xbl") then identifiers.xbl = id elseif string.find(id, "live") then identifiers.live = id elseif string.find(id, "fivem") then identifiers.fivem = id end end end end