2022-07-16 04:46:27 +02:00
-- For support join my discord: https://discord.gg/Z9Mxu72zZ6
2022-09-06 11:12:25 +02:00
-- return the players selected character.
function NDCore . Functions . GetPlayer ( player )
return NDCore.Players [ player ]
end
2022-07-16 04:46:27 +02:00
-- Callback to update each selected character on the server.
2022-07-16 00:12:02 -04:00
function NDCore . Functions . GetPlayers ( players )
if not cb then return NDCore.Players end
cb ( NDCore.Players )
2022-07-16 04:46:27 +02:00
end
2022-08-04 22:48:32 -04:00
local discordErrors = {
[ 400 ] = "improper http request" ,
[ 401 ] = "Discord bot token might be missing or incorrect" ,
[ 404 ] = "user might not be in server." ,
2022-08-11 01:17:13 +02:00
[ 429 ] = "Discord bot rate limited."
2022-08-04 22:48:32 -04:00
}
2022-07-16 04:46:27 +02:00
-- Used to retrive the players discord server nickname, discord name and tag, and the roles.
2022-07-16 00:12:02 -04:00
function NDCore . Functions . GetUserDiscordInfo ( discordUserId )
2022-07-16 04:46:27 +02:00
local data
2022-08-11 01:17:13 +02:00
local timeout = 0
PerformHttpRequest ( "https://discordapp.com/api/guilds/" .. server_config.guildId .. "/members/" .. discordUserId , function ( errorCode , resultData , resultHeaders )
2022-08-04 22:48:32 -04:00
if errorCode ~= 200 then
print ( "Error: " .. errorCode .. " " .. discordErrors [ errorCode ])
2022-07-16 04:46:27 +02:00
end
local result = json.decode ( resultData )
local roles = {}
for _ , roleId in pairs ( result.roles ) do
roles [ roleId ] = roleId
end
data = {
nickname = result.nick ,
discordTag = tostring ( result.user . username ) .. "#" .. tostring ( result.user . discriminator ),
roles = roles
}
end , "GET" , "" , {[ "Content-Type" ] = "application/json" , [ "Authorization" ] = "Bot " .. server_config.discordServerToken })
2022-08-11 01:17:13 +02:00
while not data do
Wait ( 1000 )
timeout = timeout + 1
if timeout > 5 then
break
end
2022-07-16 04:46:27 +02:00
end
2022-08-11 01:17:13 +02:00
return data
2022-07-16 04:46:27 +02:00
end
-- Get player any identifier, available types: steam, license, xbl, ip, discord, live.
2022-07-16 00:12:02 -04:00
function NDCore . Functions . GetPlayerIdentifierFromType ( type , player )
2022-07-16 04:46:27 +02:00
local identifierCount = GetNumPlayerIdentifiers ( player )
for count = 0 , identifierCount do
local identifier = GetPlayerIdentifier ( player , count )
if identifier and string.find ( identifier , type ) then
return identifier
end
end
return nil
end
-- This will return the server id and ND player data of a nearby player.
2022-07-16 00:12:02 -04:00
function NDCore . Functions . GetNearbyPedToPlayer ( player )
2022-07-16 04:46:27 +02:00
local pedCoords = GetEntityCoords ( GetPlayerPed ( player ))
2022-07-16 00:12:02 -04:00
for targetId , targetInfo in pairs ( NDCore.Players ) do
2022-07-16 04:46:27 +02:00
local targetCoords = GetEntityCoords ( GetPlayerPed ( targetId ))
if # ( pedCoords - targetCoords ) < 2.0 and targetId ~= player then
return targetId , targetInfo
end
end
end
-- update the players money on the client kinda like a refresh.
2022-07-16 00:12:02 -04:00
function NDCore . Functions . UpdateMoney ( player )
2022-07-16 04:46:27 +02:00
local player = tonumber ( player )
2022-09-18 02:36:45 +02:00
local result = MySQL.query . await ( "SELECT cash, bank FROM characters WHERE character_id = ? LIMIT 1" , { NDCore.Players [ player ]. id })
if result then
local cash = result [ 1 ]. cash
local bank = result [ 1 ]. bank
NDCore.Players [ player ]. cash = cash
NDCore.Players [ player ]. bank = bank
TriggerClientEvent ( "ND:updateMoney" , player , cash , bank )
end
2022-07-16 04:46:27 +02:00
end
-- Transfer money from one players bank account to another.
2022-07-16 00:12:02 -04:00
function NDCore . Functions . TransferBank ( amount , player , target )
2022-07-16 04:46:27 +02:00
local amount = tonumber ( amount )
local player = tonumber ( player )
local target = tonumber ( target )
if player == target then
TriggerClientEvent ( "chat:addMessage" , player , {
color = { 255 , 0 , 0 },
args = { "Error" , "You can't send money to yourself." }
})
return false
elseif GetPlayerPing ( target ) == 0 then
TriggerClientEvent ( "chat:addMessage" , player , {
color = { 255 , 0 , 0 },
args = { "Error" , "That player does not exist." }
})
return false
elseif amount <= 0 then
TriggerClientEvent ( "chat:addMessage" , player , {
color = { 255 , 0 , 0 },
args = { "Error" , "You can't send that amount." }
})
return false
2022-07-16 00:12:02 -04:00
elseif NDCore.Players [ player ]. bank < amount then
2022-07-16 04:46:27 +02:00
TriggerClientEvent ( "chat:addMessage" , player , {
color = { 255 , 0 , 0 },
args = { "Error" , "You don't have enough money." }
})
return false
else
2022-09-15 15:54:05 +02:00
MySQL.query . await ( "UPDATE characters SET bank = bank - ? WHERE character_id = ?" , { amount , NDCore.Players [ player ]. id })
2022-07-16 00:12:02 -04:00
NDCore.Functions . UpdateMoney ( player )
2022-09-18 02:36:45 +02:00
TriggerEvent ( "ND:moneyChange" , player , "bank" , amount , "remove" )
2022-07-16 04:46:27 +02:00
TriggerClientEvent ( "chat:addMessage" , player , {
color = { 0 , 255 , 0 },
2022-07-16 00:12:02 -04:00
args = { "Success" , "You paid " .. NDCore.Players [ target ]. firstName .. " " .. NDCore.Players [ target ]. lastName .. " $" .. amount .. "." }
2022-07-16 04:46:27 +02:00
})
2022-09-15 15:54:05 +02:00
MySQL.query . await ( "UPDATE characters SET bank = bank + ? WHERE character_id = ?" , { amount , NDCore.Players [ target ]. id })
NDCore.Functions . UpdateMoney ( target )
2022-09-18 02:36:45 +02:00
TriggerEvent ( "ND:moneyChange" , target , "bank" , amount , "add" )
2022-08-11 19:43:33 +02:00
TriggerClientEvent ( "chat:addMessage" , target , {
color = { 0 , 255 , 0 },
2022-08-23 21:26:44 +02:00
args = { "Success" , NDCore.Players [ player ]. firstName .. " " .. NDCore.Players [ player ]. lastName .. " sent you $" .. amount .. "." }
2022-08-11 19:43:33 +02:00
})
2022-07-16 04:46:27 +02:00
return true
end
end
-- Give cash from one players wallet to another.
2022-07-16 00:12:02 -04:00
function NDCore . Functions . GiveCash ( amount , player , target )
2022-07-16 04:46:27 +02:00
local amount = tonumber ( amount )
local player = tonumber ( player )
local target = tonumber ( target )
if player == target then
TriggerClientEvent ( "chat:addMessage" , player , {
color = { 255 , 0 , 0 },
args = { "Error" , "You can't give money to yourself." }
})
return false
elseif GetPlayerPing ( target ) == 0 then
TriggerClientEvent ( "chat:addMessage" , player , {
color = { 255 , 0 , 0 },
args = { "Error" , "That player does not exist." }
})
return false
elseif amount <= 0 then
TriggerClientEvent ( "chat:addMessage" , player , {
color = { 255 , 0 , 0 },
args = { "Error" , "You can't give that amount." }
})
return false
2022-07-16 00:12:02 -04:00
elseif NDCore.Players [ player ]. cash < amount then
2022-07-16 04:46:27 +02:00
TriggerClientEvent ( "chat:addMessage" , player , {
color = { 255 , 0 , 0 },
args = { "Error" , "You don't have enough money." }
})
return false
else
2022-09-15 15:54:05 +02:00
MySQL.query . await ( "UPDATE characters SET cash = cash - ? WHERE character_id = ?" , { amount , NDCore.Players [ player ]. id })
2022-07-16 00:12:02 -04:00
NDCore.Functions . UpdateMoney ( player )
2022-09-18 02:36:45 +02:00
TriggerEvent ( "ND:moneyChange" , player , "cash" , amount , "remove" )
2022-07-16 04:46:27 +02:00
TriggerClientEvent ( "chat:addMessage" , player , {
color = { 0 , 255 , 0 },
2022-09-15 15:54:05 +02:00
args = { "Success" , "You gave " .. NDCore.Players [ target ]. firstName .. " " .. NDCore.Players [ target ]. lastName .. " $" .. amount .. "." }
2022-08-11 19:43:33 +02:00
})
2022-09-15 15:54:05 +02:00
MySQL.query . await ( "UPDATE characters SET cash = cash + ? WHERE character_id = ?" , { amount , NDCore.Players [ target ]. id })
NDCore.Functions . UpdateMoney ( target )
2022-09-18 02:36:45 +02:00
TriggerEvent ( "ND:moneyChange" , target , "cash" , amount , "add" )
2022-08-11 19:43:33 +02:00
TriggerClientEvent ( "chat:addMessage" , target , {
color = { 0 , 255 , 0 },
args = { "Success" , " Received $" .. amount .. "." }
2022-07-16 04:46:27 +02:00
})
return true
end
end
-- Give money from a players wallet to a nearby player.
2022-07-16 00:12:02 -04:00
function NDCore . Functions . GiveCashToNearbyPlayer ( player , amount )
local targetId = NDCore.Functions . GetNearbyPedToPlayer ( player )
2022-07-16 04:46:27 +02:00
if targetId then
2022-07-16 00:12:02 -04:00
NDCore.Functions . GiveCash ( amount , player , targetId )
2022-07-16 04:46:27 +02:00
return true
end
TriggerClientEvent ( "chat:addMessage" , player , {
color = { 255 , 0 , 0 },
args = { "Error" , "No players nearby." }
})
return false
end
-- withdraws money from a players bank account to their wallet/cash.
2022-07-16 00:12:02 -04:00
function NDCore . Functions . WithdrawMoney ( amount , player )
2022-07-16 04:46:27 +02:00
local amount = tonumber ( amount )
local player = tonumber ( player )
if amount <= 0 then return false end
2022-07-16 00:12:02 -04:00
if NDCore.Players [ player ]. bank < amount then return false end
2022-09-03 07:54:09 -04:00
MySQL.query . await ( "UPDATE characters SET bank = bank - ? WHERE character_id = ? LIMIT 1" , { amount , NDCore.Players [ player ]. id })
MySQL.query . await ( "UPDATE characters SET cash = cash + ? WHERE character_id = ? LIMIT 1" , { amount , NDCore.Players [ player ]. id })
2022-07-16 00:12:02 -04:00
NDCore.Functions . UpdateMoney ( player )
2022-09-18 02:36:45 +02:00
TriggerEvent ( "ND:moneyChange" , player , "bank" , amount , "remove" )
TriggerEvent ( "ND:moneyChange" , player , "cash" , amount , "add" )
2022-07-16 04:46:27 +02:00
return true
end
-- deposits money from a players wallet/cash to their bank account.
2022-07-16 00:12:02 -04:00
function NDCore . Functions . DepositMoney ( amount , player )
2022-07-16 04:46:27 +02:00
local amount = tonumber ( amount )
local player = tonumber ( player )
if amount <= 0 then return false end
2022-07-16 00:12:02 -04:00
if NDCore.Players [ player ]. cash < amount then return false end
2022-09-03 07:54:09 -04:00
MySQL.query . await ( "UPDATE characters SET cash = cash - ? WHERE character_id = ? LIMIT 1" , { amount , NDCore.Players [ player ]. id })
MySQL.query . await ( "UPDATE characters SET bank = bank + ? WHERE character_id = ? LIMIT 1" , { amount , NDCore.Players [ player ]. id })
2022-07-16 00:12:02 -04:00
NDCore.Functions . UpdateMoney ( player )
2022-09-18 02:36:45 +02:00
TriggerEvent ( "ND:moneyChange" , player , "cash" , amount , "remove" )
TriggerEvent ( "ND:moneyChange" , player , "bank" , amount , "add" )
2022-07-16 04:46:27 +02:00
return true
end
-- Deducts money from the player, "bank" or "cash" needs to be specified.
2022-07-16 00:12:02 -04:00
function NDCore . Functions . DeductMoney ( amount , player , from )
2022-07-16 04:46:27 +02:00
local amount = tonumber ( amount )
local player = tonumber ( player )
if from == "bank" then
2022-09-03 07:54:09 -04:00
MySQL.query . await ( "UPDATE characters SET bank = bank - ? WHERE character_id = ? LIMIT 1" , { amount , NDCore.Players [ player ]. id })
2022-07-16 04:46:27 +02:00
elseif from == "cash" then
2022-09-03 07:54:09 -04:00
MySQL.query . await ( "UPDATE characters SET cash = cash - ? WHERE character_id = ? LIMIT 1" , { amount , NDCore.Players [ player ]. id })
2022-07-16 04:46:27 +02:00
end
2022-07-16 00:12:02 -04:00
NDCore.Functions . UpdateMoney ( player )
2022-09-18 02:36:45 +02:00
TriggerEvent ( "ND:moneyChange" , player , from , amount , "remove" )
2022-07-16 04:46:27 +02:00
end
-- Adds money from the player, "bank" or "cash" needs to be specified.
2022-07-16 00:12:02 -04:00
function NDCore . Functions . AddMoney ( amount , player , to )
2022-07-16 04:46:27 +02:00
local amount = tonumber ( amount )
local player = tonumber ( player )
if to == "bank" then
2022-09-03 07:54:09 -04:00
MySQL.query . await ( "UPDATE characters SET bank = bank + ? WHERE character_id = ? LIMIT 1" , { amount , NDCore.Players [ player ]. id })
2022-07-16 04:46:27 +02:00
elseif to == "cash" then
2022-09-03 07:54:09 -04:00
MySQL.query . await ( "UPDATE characters SET cash = cash + ? WHERE character_id = ? LIMIT 1" , { amount , NDCore.Players [ player ]. id })
2022-07-16 04:46:27 +02:00
end
2022-07-16 00:12:02 -04:00
NDCore.Functions . UpdateMoney ( player )
2022-09-18 02:36:45 +02:00
TriggerEvent ( "ND:moneyChange" , player , to , amount , "add" )
2022-07-16 04:46:27 +02:00
end
2022-07-16 00:12:02 -04:00
-- Adds the players character to the NDCore.Players table, this table consists of every players selected character.
function NDCore . Functions . SetActiveCharacter ( player , characterId )
2022-09-08 16:03:12 +02:00
if NDCore.Players [ player ] then
2022-11-14 00:53:23 +01:00
TriggerEvent ( "ND:characterUnloaded" , player , NDCore.Players [ player ])
2022-09-08 16:03:12 +02:00
end
2022-09-03 07:54:09 -04:00
local result = MySQL.query . await ( "SELECT * FROM characters WHERE character_id = ? LIMIT 1" , { characterId })
2022-07-16 04:46:27 +02:00
if result then
local i = result [ 1 ]
2022-07-16 00:12:02 -04:00
NDCore.Players [ player ] = {
2022-09-05 15:43:04 +02:00
source = player ,
2022-07-16 04:46:27 +02:00
id = characterId ,
firstName = i.first_name ,
lastName = i.last_name ,
dob = i.dob ,
gender = i.gender ,
twt = i.twt ,
job = i.job ,
cash = i.cash ,
2022-07-30 01:58:36 +02:00
bank = i.bank ,
2022-08-05 00:02:04 +02:00
phoneNumber = i.phone_number ,
groups = json.decode ( i.groups ),
lastLocation = json.decode ( i.last_location ),
2022-09-06 08:18:27 +02:00
clothing = json.decode ( i.clothing ),
2022-10-01 18:32:49 -04:00
inventory = json.decode ( i.inventory )
2022-07-16 04:46:27 +02:00
}
end
2022-11-04 22:16:39 -04:00
NDCore.Commands . Refresh ( player )
2022-09-06 11:18:24 +02:00
TriggerEvent ( "ND:characterLoaded" , NDCore.Players [ player ])
2022-07-16 00:12:02 -04:00
TriggerClientEvent ( "ND:setCharacter" , player , NDCore.Players [ player ])
2022-07-16 04:46:27 +02:00
end
-- This returns all the characters the player has.
2022-07-16 00:12:02 -04:00
function NDCore . Functions . GetPlayerCharacters ( player )
2022-07-16 04:46:27 +02:00
local characters = {}
2022-09-07 10:37:50 +02:00
local result = MySQL.query . await ( "SELECT * FROM characters WHERE license = ?" , { NDCore.Functions . GetPlayerIdentifierFromType ( "license" , player )})
2022-07-16 04:46:27 +02:00
for i = 1 , # result do
local temp = result [ i ]
2022-08-05 00:02:04 +02:00
characters [ temp.character_id ] = { id = temp.character_id , firstName = temp.first_name , lastName = temp.last_name , dob = temp.dob , gender = temp.gender , twt = temp.twt , job = temp.job , cash = temp.cash , bank = temp.bank , phoneNumber = temp.phone_number , groups = json.decode ( temp.groups ), lastLocation = json.decode ( temp.last_location ), clothing = json.decode ( temp.clothing )}
2022-07-16 04:46:27 +02:00
end
return characters
end
-- Creates a new character for the player and returns all their characters to the client.
2022-07-16 00:12:02 -04:00
function NDCore . Functions . CreateCharacter ( player , firstName , lastName , dob , gender , twt , job , cash , bank )
local license = NDCore.Functions . GetPlayerIdentifierFromType ( "license" , player )
2022-07-16 04:46:27 +02:00
if not cash or not bank or tonumber ( cash ) > config.startingCash or tonumber ( bank ) > config.startingBank then
cash = config.startingCash
bank = config.startingBank
end
local result = MySQL.query . await ( "SELECT character_id FROM characters WHERE license = ?" , { license })
if result and config.characterLimit > # result then
MySQL.query . await ( "INSERT INTO characters (license, first_name, last_name, dob, gender, twt, job, cash, bank) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)" , { license , firstName , lastName , dob , gender , twt , job , cash , bank })
2022-07-16 00:12:02 -04:00
TriggerClientEvent ( "ND:returnCharacters" , player , NDCore.Functions . GetPlayerCharacters ( player ))
2022-07-16 04:46:27 +02:00
end
2022-07-21 22:48:30 +02:00
return result
2022-07-16 04:46:27 +02:00
end
2022-08-05 00:02:04 +02:00
-- Update/edit a character info by character id.
2022-07-16 00:12:02 -04:00
function NDCore . Functions . UpdateCharacterData ( characterId , firstName , lastName , dob , gender , twt , job )
2022-09-03 07:54:09 -04:00
local result = MySQL.query . await ( "UPDATE characters SET first_name = ?, last_name = ?, dob = ?, gender = ?, twt = ?, job = ? WHERE character_id = ? LIMIT 1" , { firstName , lastName , dob , gender , twt , job , characterId })
2022-07-21 22:48:30 +02:00
return result
2022-07-16 04:46:27 +02:00
end
-- Delete a character by character id.
2022-07-16 00:12:02 -04:00
function NDCore . Functions . DeleteCharacter ( characterId )
2022-09-03 07:54:09 -04:00
local result = MySQL.query . await ( "DELETE FROM characters WHERE character_id = ? LIMIT 1" , { characterId })
2022-07-21 22:48:30 +02:00
return result
2022-07-16 04:46:27 +02:00
end
2022-08-05 00:02:04 +02:00
-- Update the all the characters groups in the database.
2022-09-05 15:43:04 +02:00
function NDCore . Functions . UpdateGroups ( player , groups )
local result = MySQL.query . await ( "UPDATE characters SET groups = ? WHERE character_id = ?" , { json.encode ( groups ), NDCore.Players [ player ]. id })
2022-08-05 00:02:04 +02:00
return result
end
-- Set a group to a character in the database.
2022-09-05 15:51:17 +02:00
function NDCore . Functions . SetGroup ( player , group , groupName , groupLevel )
local groups = NDCore.Players [ player ]. groups
groups [ group ] = { name = groupName , lvl = groupLevel }
2022-09-05 15:43:04 +02:00
result = MySQL.query . await ( "UPDATE characters SET groups = ? WHERE character_id = ?" , { json.encode ( groups ), NDCore.Players [ player ]. id })
return result
end
-- Remove the group form a character in the database.
function NDCore . Functions . RemoveGroup ( player , group )
2022-09-05 15:51:17 +02:00
local groups = NDCore.Players [ player ]. groups
groups [ group ] = nil
2022-09-05 15:43:04 +02:00
result = MySQL.query . await ( "UPDATE characters SET groups = ? WHERE character_id = ?" , { json.encode ( groups ), NDCore.Players [ player ]. id })
2022-08-05 00:02:04 +02:00
return result
end
-- Update the characters last location into the database.
function NDCore . Functions . UpdateLastLocation ( characterId , location )
2022-09-03 07:54:09 -04:00
local result = MySQL.query . await ( "UPDATE characters SET last_location = ? WHERE character_id = ? LIMIT 1" , { json.encode ( location ), characterId })
2022-08-05 00:02:04 +02:00
return result
end
-- Update the characters clothing into the database.
function NDCore . Functions . UpdateClothes ( characterId , clothing )
2022-09-03 07:54:09 -04:00
local result = MySQL.query . await ( "UPDATE characters SET clothing = ? WHERE character_id = ? LIMIT 1" , { json.encode ( clothing ), characterId })
2022-08-05 00:02:04 +02:00
return result
end
2022-09-06 11:13:24 +02:00
-- Updates the player's data
function NDCore . Functions . SetPlayerData ( player , key , value )
if not key then return end
2022-09-11 17:41:46 +02:00
local character = NDCore.Players [ player ]
character [ key ] = value
if key == "cash" then
2022-09-15 15:47:04 +02:00
MySQL.query . await ( "UPDATE characters SET cash = ? WHERE character_id = ?" , { tonumber ( value ), character.id })
2022-09-11 17:41:46 +02:00
elseif key == "bank" then
2022-09-15 15:47:04 +02:00
MySQL.query . await ( "UPDATE characters SET bank = ? WHERE character_id = ?" , { tonumber ( value ), character.id })
2022-09-06 11:13:24 +02:00
end
2022-09-19 20:13:42 +02:00
TriggerClientEvent ( "ND:updateCharacter" , player , NDCore.Players [ player ])
2022-09-08 16:03:12 +02:00
end
2022-11-30 03:32:52 +01:00
function NDCore . Functions . IsPlayerAdmin ( src )
local discordInfo = NDCore.PlayersDiscordInfo [ src ]
if not discordInfo or not discordInfo.roles then return end
for _ , adminRole in pairs ( config.adminRoles ) do
for _ , role in pairs ( discordInfo.roles ) do
if role == adminRole then return true end
end
end
2022-09-06 11:13:24 +02:00
end
2022-07-16 04:46:27 +02:00
2022-07-16 00:12:02 -04:00
function NDCore . Functions . VersionChecker ( expectedResourceName , resourceName , downloadLink , rawGithubLink )
2022-07-16 04:46:27 +02:00
if expectedResourceName ~= resourceName then
print ( "^1[^4" .. expectedResourceName .. "^1] WARNING^0" )
print ( "Change the resource name to ^4" .. expectedResourceName .. " ^0or else it won't work properly!" )
StopResource ( resourceName )
return
end
PerformHttpRequest ( rawGithubLink , function ( errorCode , resultData , resultHeaders )
local i , j = string.find ( tostring ( resultData ), "version" )
local resultData = string.sub ( tostring ( resultData ), i , j + 12 )
local resultData = string.gsub ( resultData , "version \" " , "" )
local i , j = string.find ( resultData , " \" " )
local resultData = string.sub ( resultData , 1 , i - 1 )
local githubVersion = string.gsub ( resultData , "%." , "" )
local fileVersion = string.gsub ( GetResourceMetadata ( expectedResourceName , "version" , 0 ), "%." , "" )
local githubVersion = tonumber ( githubVersion )
local fileVersion = tonumber ( fileVersion )
if not githubVersion and not fileVersion then
print ( "^1[^4" .. expectedResourceName .. "^1] WARNING^0" )
print ( "You may not have the latest version of ^4" .. expectedResourceName .. "^0. A newer, improved version may be present at ^5" .. downloadLink .. "^0" )
elseif githubVersion > fileVersion then
local oldVersion = string.sub ( fileVersion , 1 , 1 ) .. "." .. string.sub ( fileVersion , 2 , 2 ) .. "." .. string.sub ( fileVersion , 3 , 3 )
local newVersion = string.sub ( githubVersion , 1 , 1 ) .. "." .. string.sub ( githubVersion , 2 , 2 ) .. "." .. string.sub ( githubVersion , 3 , 3 )
print ( "^1[^4" .. expectedResourceName .. "^1] WARNING^0" )
print ( "^4" .. expectedResourceName .. " ^0is outdated. Please update it from ^5" .. downloadLink .. " ^0| Current Version: ^1" .. oldVersion .. " ^0| New Version: ^2" .. newVersion .. " ^0|" )
elseif githubVersion < fileVersion then
local oldVersion = string.sub ( fileVersion , 1 , 1 ) .. "." .. string.sub ( fileVersion , 2 , 2 ) .. "." .. string.sub ( fileVersion , 3 , 3 )
local newVersion = string.sub ( githubVersion , 1 , 1 ) .. "." .. string.sub ( githubVersion , 2 , 2 ) .. "." .. string.sub ( githubVersion , 3 , 3 )
print ( "^1[^4" .. expectedResourceName .. "^1] WARNING^0" )
print ( "^4" .. expectedResourceName .. " ^0version number is higher than expected | Current Version: ^3" .. oldVersion .. " ^0| Expected Version: ^2" .. newVersion .. " ^0|" )
else
local newVersion = string.sub ( githubVersion , 1 , 1 ) .. "." .. string.sub ( githubVersion , 2 , 2 ) .. "." .. string.sub ( githubVersion , 3 , 3 )
print ( "^4" .. expectedResourceName .. " ^0is up to date | Current Version: ^2" .. newVersion .. " ^0|" )
end
end )
end
2022-10-04 00:33:25 +02:00
NDCore.Functions . VersionChecker ( "ND_Core" , GetCurrentResourceName (), "https://github.com/ND-Framework/ND_Core" , "https://raw.githubusercontent.com/ND-Framework/ND_Core/main/fxmanifest.lua" )