update: discord function to core object func

This commit is contained in:
Andyyy7666
2023-08-23 00:32:49 +02:00
parent ab15847a32
commit cf67d9a4e2
2 changed files with 32 additions and 29 deletions

View File

@@ -50,6 +50,38 @@ function NDCore.loadSQL(fileLocation, resource)
return true
end
function NDCore.getDiscordInfo(discordUserId)
local done = false
local data
local discordErrors = {
[400] = "Improper HTTP request",
[401] = "Discord bot token might be missing or incorrect",
[404] = "User might not be in the server",
[429] = "Discord bot rate limited"
}
if not discordUserId then return end
if type(discordUserId) == "string" and discordUserId:find("discord:") then discordUserId:gsub("discord:", "") end
PerformHttpRequest(("https://discordapp.com/api/guilds/%s/members/%s"):format(Config.discordGuildId, discordUserId), function(errorCode, resultData, resultHeaders)
if errorCode ~= 200 then
done = true
return print(("^3Warning: %d %s"):format(errorCode, discordErrors[errorCode]))
end
local result = json.decode(resultData)
data = {
nickname = result.nick or result.user.username,
user = result.user,
roles = result.roles
}
done = true
end, "GET", "", {["Content-Type"] = "application/json", ["Authorization"] = ("Bot %s"):format(Config.discordBotToken)})
while not done do Wait(50) end
return data
end
for name, func in pairs(NDCore) do
if type(func) == "function" then
exports(name, func)

View File

@@ -3,12 +3,6 @@ NDCore.players = {}
PlayersInfo = {}
local resourceName = GetCurrentResourceName()
local tempPlayersInfo = {}
local discordErrors = {
[400] = "Improper HTTP request",
[401] = "Discord bot token might be missing or incorrect",
[404] = "User might not be in the server",
[429] = "Discord bot rate limited"
}
Config = {
serverName = GetConvar("core:serverName", "Unconfigured ND-Core Server"),
@@ -45,29 +39,6 @@ local function getIdentifierList(src)
return list
end
local function getDiscordInfo(discordUserId)
local done = false
local data
PerformHttpRequest(("https://discordapp.com/api/guilds/%s/members/%s"):format(Config.discordGuildId, discordUserId), function(errorCode, resultData, resultHeaders)
if errorCode ~= 200 then
done = true
return print(("^3Warning: %d %s"):format(errorCode, discordErrors[errorCode]))
end
local result = json.decode(resultData)
data = {
nickname = result.nick or result.user.username,
user = result.user,
roles = result.roles
}
done = true
end, "GET", "", {["Content-Type"] = "application/json", ["Authorization"] = ("Bot %s"):format(Config.discordBotToken)})
while not done do Wait(500) end
return data
end
AddEventHandler("playerJoining", function(oldId)
local src = source
PlayersInfo[src] = tempPlayersInfo[oldId]