diff --git a/.gitignore b/.gitignore index 5c65614..9ec5eb3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ ND_Blackjack/ ND_Blips/ +ND_Laser/ ND_Inventory/ -ND_Laser/ \ No newline at end of file diff --git a/ND_CharacterSelection/fxmanifest.lua b/ND_CharacterSelection/fxmanifest.lua index e649787..0967851 100644 --- a/ND_CharacterSelection/fxmanifest.lua +++ b/ND_CharacterSelection/fxmanifest.lua @@ -2,7 +2,7 @@ author "Andyyy#7666, N1K0#0001" description "ND Character Selection (DOJ Based)" -version "2.1.0" +version "2.2.0" fx_version "cerulean" game "gta5" diff --git a/ND_CharacterSelection/source/server.lua b/ND_CharacterSelection/source/server.lua index 6674cb8..b9f39d9 100644 --- a/ND_CharacterSelection/source/server.lua +++ b/ND_CharacterSelection/source/server.lua @@ -50,14 +50,16 @@ end) RegisterNetEvent("ND_CharacterSelection:checkPerms") AddEventHandler("ND_CharacterSelection:checkPerms", function() local player = source - local discordUserId = string.gsub(NDCore.Functions.GetPlayerIdentifierFromType("discord", player), "discord:", "") + local discordUserId = NDCore.Functions.GetPlayerIdentifierFromType("discord", player):gsub("discord:", "") local allowedRoles = {} - local roles = NDCore.Functions.GetUserDiscordInfo(discordUserId).roles - + print("test") + local discordInfo = NDCore.Functions.GetUserDiscordInfo(discordUserId) + print(discordInfo) -- Check if the players discord roles will grant them permission to the department. for dept, roleTable in pairs(config.departments) do for _, roleId in pairs(roleTable) do - if roles[roleId] or roleId == 0 or roleId == "0" then + print(roleId) + if roleId == 0 or roleId == "0" or (discordInfo and discordInfo.roles[roleId]) then table.insert(allowedRoles, dept) end end diff --git a/ND_Core/fxmanifest.lua b/ND_Core/fxmanifest.lua index 67d7f58..3027990 100644 --- a/ND_Core/fxmanifest.lua +++ b/ND_Core/fxmanifest.lua @@ -2,7 +2,7 @@ author "Andyyy#7666, N1K0#0001" description "ND Framework Core" -version "3.0.1" +version "3.1.1" fx_version "cerulean" game "gta5" diff --git a/ND_Core/server/functions.lua b/ND_Core/server/functions.lua index 77e73c4..d68f77e 100644 --- a/ND_Core/server/functions.lua +++ b/ND_Core/server/functions.lua @@ -6,13 +6,21 @@ function NDCore.Functions.GetPlayers(players) cb(NDCore.Players) end + +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.", + +} -- Used to retrive the players discord server nickname, discord name and tag, and the roles. function NDCore.Functions.GetUserDiscordInfo(discordUserId) local data - PerformHttpRequest("https://discordapp.com/api/guilds/" .. server_config.guildId .. "/members/" .. discordUserId, function(errorCode, resultData, resultHeaders) - if errorCode ~= 200 then - print("Error: " .. errorCode .. ", discord token might be missing.") - return + local request = 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 = {} @@ -24,11 +32,13 @@ 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}) - while not data do - Citizen.Wait(0) + if request then + return data + else + return false end - return data end -- Get player any identifier, available types: steam, license, xbl, ip, discord, live.