REFACTORRRRRR

fuck you
This commit is contained in:
Niko
2022-07-16 00:12:02 -04:00
parent 68721a4633
commit 44b21a1398
19 changed files with 136 additions and 143 deletions

View File

@@ -36,7 +36,7 @@ end
-- Hide/Show ui -- Hide/Show ui
function SetDisplay(bool) function SetDisplay(bool)
local selectedCharacter = NDCore.functions:getSelectedCharacter() local selectedCharacter = NDCore.Functions.GetSelectedCharacter()
display = bool display = bool
SetNuiFocus(bool, bool) SetNuiFocus(bool, bool)
SendNUIMessage({ SendNUIMessage({
@@ -134,7 +134,7 @@ end)
RegisterNetEvent("ND_ATMs:update") RegisterNetEvent("ND_ATMs:update")
AddEventHandler("ND_ATMs:update", function(status) AddEventHandler("ND_ATMs:update", function(status)
Citizen.Wait(1000) Citizen.Wait(1000)
local selectedCharacter = NDCore.functions:getSelectedCharacter() local selectedCharacter = NDCore.Functions.GetSelectedCharacter()
SendNUIMessage({ SendNUIMessage({
balance = "Account Balance: $" .. selectedCharacter.bank .. ".00", balance = "Account Balance: $" .. selectedCharacter.bank .. ".00",
success = status success = status

View File

@@ -1,16 +1,16 @@
NDCore = exports["ND_Core"]:GetCoreObject() NDCore = exports["ND_Core"]:GetCoreObject()
NDCore.functions:versionChecker("ND_ATMs", GetCurrentResourceName(), "https://github.com/Andyyy7666/ND_Framework", "https://raw.githubusercontent.com/Andyyy7666/ND_Framework/main/ND_ATMs/fxmanifest.lua") NDCore.Functions.VersionChecker("ND_ATMs", GetCurrentResourceName(), "https://github.com/Andyyy7666/ND_Framework", "https://raw.githubusercontent.com/Andyyy7666/ND_Framework/main/ND_ATMs/fxmanifest.lua")
RegisterNetEvent("ND_ATMs:withdraw") RegisterNetEvent("ND_ATMs:withdraw")
AddEventHandler("ND_ATMs:withdraw", function(amount) AddEventHandler("ND_ATMs:withdraw", function(amount)
local player = source local player = source
local update = NDCore.functions:withdrawMoney(amount, player) local update = NDCore.Functions.WithdrawMoney(amount, player)
TriggerClientEvent("ND_ATMs:update", player, update) TriggerClientEvent("ND_ATMs:update", player, update)
end) end)
RegisterNetEvent("ND_ATMs:deposit") RegisterNetEvent("ND_ATMs:deposit")
AddEventHandler("ND_ATMs:deposit", function(amount) AddEventHandler("ND_ATMs:deposit", function(amount)
local player = source local player = source
local update = NDCore.functions:depositMoney(amount, player) local update = NDCore.Functions.DepositMoney(amount, player)
TriggerClientEvent("ND_ATMs:update", player, update) TriggerClientEvent("ND_ATMs:update", player, update)
end) end)

View File

@@ -39,7 +39,7 @@ end
-- Hide/Show ui -- Hide/Show ui
function SetDisplay(bool) function SetDisplay(bool)
local selectedCharacter = NDCore.functions:getSelectedCharacter() local selectedCharacter = NDCore.Functions.GetSelectedCharacter()
display = bool display = bool
SetNuiFocus(bool, bool) SetNuiFocus(bool, bool)
SendNUIMessage({ SendNUIMessage({
@@ -146,7 +146,7 @@ end)
RegisterNetEvent("ND_Banks:update") RegisterNetEvent("ND_Banks:update")
AddEventHandler("ND_Banks:update", function(status) AddEventHandler("ND_Banks:update", function(status)
Citizen.Wait(1000) Citizen.Wait(1000)
local selectedCharacter = NDCore.functions:getSelectedCharacter() local selectedCharacter = NDCore.Functions.GetSelectedCharacter()
SendNUIMessage({ SendNUIMessage({
balance = "Account Balance: $" .. selectedCharacter.bank .. ".00", balance = "Account Balance: $" .. selectedCharacter.bank .. ".00",
success = status success = status

View File

@@ -1,23 +1,23 @@
NDCore = exports["ND_Core"]:GetCoreObject() NDCore = exports["ND_Core"]:GetCoreObject()
NDCore.functions:versionChecker("ND_Banks", GetCurrentResourceName(), "https://github.com/Andyyy7666/ND_Framework", "https://raw.githubusercontent.com/Andyyy7666/ND_Framework/main/ND_Banks/fxmanifest.lua") NDCore.Functions.VersionChecker("ND_Banks", GetCurrentResourceName(), "https://github.com/Andyyy7666/ND_Framework", "https://raw.githubusercontent.com/Andyyy7666/ND_Framework/main/ND_Banks/fxmanifest.lua")
RegisterNetEvent("ND_Banks:withdraw") RegisterNetEvent("ND_Banks:withdraw")
AddEventHandler("ND_Banks:withdraw", function(amount) AddEventHandler("ND_Banks:withdraw", function(amount)
local player = source local player = source
local update = NDCore.functions:withdrawMoney(amount, player) local update = NDCore.Functions.WithdrawMoney(amount, player)
TriggerClientEvent("ND_Banks:update", player, update) TriggerClientEvent("ND_Banks:update", player, update)
end) end)
RegisterNetEvent("ND_Banks:deposit") RegisterNetEvent("ND_Banks:deposit")
AddEventHandler("ND_Banks:deposit", function(amount) AddEventHandler("ND_Banks:deposit", function(amount)
local player = source local player = source
local update = NDCore.functions:depositMoney(amount, player) local update = NDCore.Functions.DepositMoney(amount, player)
TriggerClientEvent("ND_Banks:update", player, update) TriggerClientEvent("ND_Banks:update", player, update)
end) end)
RegisterNetEvent("ND_Banks:transfer") RegisterNetEvent("ND_Banks:transfer")
AddEventHandler("ND_Banks:transfer", function(amount, target) AddEventHandler("ND_Banks:transfer", function(amount, target)
local player = source local player = source
local update = NDCore.functions:transferBank(amount, player, target) local update = NDCore.Functions.TransferBank(amount, player, target)
TriggerClientEvent("ND_Banks:update", player, update) TriggerClientEvent("ND_Banks:update", player, update)
end) end)

View File

@@ -19,8 +19,8 @@ function SetDisplay(bool, typeName, bg)
type = typeName, type = typeName,
background = background, background = background,
status = bool, status = bool,
serverName = NDCore.config.serverName, serverName = NDCore.Config.serverName,
characterAmount = tablelength(NDCore.characters) .. "/" .. NDCore.config.characterLimit characterAmount = tablelength(NDCore.characters) .. "/" .. NDCore.Config.characterLimit
}) })
if config.characterSelectionAopDisplay then if config.characterSelectionAopDisplay then
SendNUIMessage({ SendNUIMessage({
@@ -32,7 +32,7 @@ end
function start(switch) function start(switch)
TriggerServerEvent("ND_CharacterSelection:checkPerms") TriggerServerEvent("ND_CharacterSelection:checkPerms")
TriggerServerEvent("ND:getCharacters") TriggerServerEvent("ND:GetCharacters")
if switch then if switch then
local ped = PlayerPedId() local ped = PlayerPedId()
SwitchOutPlayer(ped, 0, 1) SwitchOutPlayer(ped, 0, 1)
@@ -41,8 +41,8 @@ function start(switch)
end end
SendNUIMessage({ SendNUIMessage({
type = "onStart", type = "onStart",
maxStartingBank = NDCore.config.startingBank, maxStartingBank = NDCore.Config.startingBank,
maxStartingCash = NDCore.config.startingCash maxStartingCash = NDCore.Config.startingCash
}) })
if config.characterSelectionAopDisplay then if config.characterSelectionAopDisplay then
SendNUIMessage({ SendNUIMessage({
@@ -100,10 +100,10 @@ end)
-- Selecting a player from the iu. -- Selecting a player from the iu.
RegisterNUICallback("setMainCharacter", function(data) RegisterNUICallback("setMainCharacter", function(data)
NDCore.functions:getCharacters(function(characters) NDCore.Functions.GetCharacters(function(characters)
NDCore.selectedCharacter = characters[data.id] NDCore.SelectedCharacter = characters[data.id]
end) end)
for _, spawn in pairs(config.spawns[NDCore.selectedCharacter.job]) do for _, spawn in pairs(config.spawns[NDCore.SelectedCharacter.job]) do
SendNUIMessage({ SendNUIMessage({
type = "setSpawns", type = "setSpawns",
x = spawn.x, x = spawn.x,
@@ -112,12 +112,12 @@ RegisterNUICallback("setMainCharacter", function(data)
name = spawn.name name = spawn.name
}) })
end end
TriggerServerEvent("ND:setCharacterOnline", NDCore.selectedCharacter.id) TriggerServerEvent("ND:setCharacterOnline", NDCore.SelectedCharacter.id)
end) end)
-- Creating a character from the ui. -- Creating a character from the ui.
RegisterNUICallback("newCharacter", function(data) RegisterNUICallback("newCharacter", function(data)
if tablelength(NDCore.characters) < NDCore.config.characterLimit then if tablelength(NDCore.characters) < NDCore.Config.characterLimit then
TriggerServerEvent("ND_CharacterSelection:newCharacter", { TriggerServerEvent("ND_CharacterSelection:newCharacter", {
firstName = data.firstName, firstName = data.firstName,
lastName = data.lastName, lastName = data.lastName,

View File

@@ -5,8 +5,8 @@ NDCore = exports["ND_Core"]:GetCoreObject()
function validateDepartment(player, department) function validateDepartment(player, department)
local departmentExists = config.departments[department] local departmentExists = config.departments[department]
if departmentExists then if departmentExists then
local discordUserId = string.gsub(NDCore.functions:GetPlayerIdentifierFromType("discord", player), "discord:", "") local discordUserId = string.gsub(NDCore.Functions.GetPlayerIdentifierFromType("discord", player), "discord:", "")
local roles = NDCore.functions:getUserDiscordInfo(discordUserId).roles local roles = NDCore.Functions.GetUserDiscordInfo(discordUserId).roles
-- validate that the player actually has the role that they selected on the client. -- validate that the player actually has the role that they selected on the client.
for _, roleId in pairs(departmentExists) do for _, roleId in pairs(departmentExists) do
@@ -28,7 +28,7 @@ AddEventHandler("ND_CharacterSelection:newCharacter", function(newCharacter)
if not departmentCheck then return end if not departmentCheck then return end
-- Create the character if the player has permission to the department. -- Create the character if the player has permission to the department.
NDCore.functions:createCharacter(player, newCharacter.firstName, newCharacter.lastName, newCharacter.dob, newCharacter.gender, newCharacter.twt, newCharacter.job, newCharacter.cash, newCharacter.bank) NDCore.Functions.CreateCharacter(player, newCharacter.firstName, newCharacter.lastName, newCharacter.dob, newCharacter.gender, newCharacter.twt, newCharacter.job, newCharacter.cash, newCharacter.bank)
end) end)
-- Update the character info when edited. -- Update the character info when edited.
@@ -41,18 +41,18 @@ AddEventHandler("ND_CharacterSelection:editCharacter", function(newCharacter)
if not departmentCheck then return end if not departmentCheck then return end
-- Updating the character information in the database. -- Updating the character information in the database.
NDCore.functions:updateCharacterData(newCharacter.id, newCharacter.firstName, newCharacter.lastName, newCharacter.dob, newCharacter.gender, newCharacter.twt, newCharacter.job) NDCore.Functions.UpdateCharacterData(newCharacter.id, newCharacter.firstName, newCharacter.lastName, newCharacter.dob, newCharacter.gender, newCharacter.twt, newCharacter.job)
-- Updating characters on the client. -- Updating characters on the client.
TriggerClientEvent("ND:returnCharacters", player, NDCore.functions:getPlayerCharacters(player)) TriggerClientEvent("ND:returnCharacters", player, NDCore.Functions.GetPlayerCharacters(player))
end) end)
RegisterNetEvent("ND_CharacterSelection:checkPerms") RegisterNetEvent("ND_CharacterSelection:checkPerms")
AddEventHandler("ND_CharacterSelection:checkPerms", function() AddEventHandler("ND_CharacterSelection:checkPerms", function()
local player = source local player = source
local discordUserId = string.gsub(NDCore.functions:GetPlayerIdentifierFromType("discord", player), "discord:", "") local discordUserId = string.gsub(NDCore.Functions.GetPlayerIdentifierFromType("discord", player), "discord:", "")
local allowedRoles = {} local allowedRoles = {}
local roles = NDCore.functions:getUserDiscordInfo(discordUserId).roles local roles = NDCore.Functions.GetUserDiscordInfo(discordUserId).roles
-- Check if the players discord roles will grant them permission to the department. -- Check if the players discord roles will grant them permission to the department.
for dept, roleTable in pairs(config.departments) do for dept, roleTable in pairs(config.departments) do

View File

@@ -24,7 +24,7 @@ if config["/911"].enabled then
RegisterNetEvent("ND_Chat:911") RegisterNetEvent("ND_Chat:911")
AddEventHandler("ND_Chat:911", function(coords, callDescription) AddEventHandler("ND_Chat:911", function(coords, callDescription)
local selectedCharacter local selectedCharacter
NDCore.functions:getSelectedCharacter(function(character) NDCore.Functions.GetSelectedCharacter(function(character)
selectedCharacter = character selectedCharacter = character
end) end)
for _, department in pairs(config["/911"].callTo) do for _, department in pairs(config["/911"].callTo) do

View File

@@ -1,10 +1,10 @@
NDCore = exports["ND_Core"]:GetCoreObject() NDCore = exports["ND_Core"]:GetCoreObject()
NDCore.functions:versionChecker("ND_Chat", GetCurrentResourceName(), "https://github.com/Andyyy7666/ND_Framework", "https://raw.githubusercontent.com/Andyyy7666/ND_Framework/main/ND_Chat/fxmanifest.lua") NDCore.Functions.VersionChecker("ND_Chat", GetCurrentResourceName(), "https://github.com/Andyyy7666/ND_Framework", "https://raw.githubusercontent.com/Andyyy7666/ND_Framework/main/ND_Chat/fxmanifest.lua")
if config["/me"] then if config["/me"] then
RegisterCommand("me", function(source, args, rawCommand) RegisterCommand("me", function(source, args, rawCommand)
local player = source local player = source
local players = NDCore.functions:getPlayers() local players = NDCore.Functions.GetPlayers()
local playerCoords = GetEntityCoords(GetPlayerPed(player)) local playerCoords = GetEntityCoords(GetPlayerPed(player))
for serverPlayer, _ in pairs(players) do for serverPlayer, _ in pairs(players) do
local targetCoords = GetEntityCoords(GetPlayerPed(serverPlayer)) local targetCoords = GetEntityCoords(GetPlayerPed(serverPlayer))
@@ -21,7 +21,7 @@ end
if config["/gme"] then if config["/gme"] then
RegisterCommand("gme", function(source, args, rawCommand) RegisterCommand("gme", function(source, args, rawCommand)
local player = source local player = source
local players = NDCore.functions:getPlayers() local players = NDCore.Functions.GetPlayers()
TriggerClientEvent("chat:addMessage", -1, { TriggerClientEvent("chat:addMessage", -1, {
color = {255, 0, 0}, color = {255, 0, 0},
args = {"^*GME | ^0" .. players[player].firstName .. " " .. players[player].lastName .. " (#" .. player .. ")", table.concat(args, " ")} args = {"^*GME | ^0" .. players[player].firstName .. " " .. players[player].lastName .. " (#" .. player .. ")", table.concat(args, " ")}
@@ -42,7 +42,7 @@ end
if config["/twt"] then if config["/twt"] then
RegisterCommand("twt", function(source, args, rawCommand) RegisterCommand("twt", function(source, args, rawCommand)
local player = source local player = source
local players = NDCore.functions:getPlayers() local players = NDCore.Functions.GetPlayers()
TriggerClientEvent("chat:addMessage", -1, { TriggerClientEvent("chat:addMessage", -1, {
template = "<img src='data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxz%0D%0AdmcKICB2aWV3Ym94PSIwIDAgMjAwMCAxNjI1LjM2IgogIHdpZHRoPSIyMDAwIgogIGhlaWdodD0i%0D%0AMTYyNS4zNiIKICB2ZXJzaW9uPSIxLjEiCiAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAv%0D%0Ac3ZnIj4KICA8cGF0aAogICAgZD0ibSAxOTk5Ljk5OTksMTkyLjQgYyAtNzMuNTgsMzIuNjQgLTE1%0D%0AMi42Nyw1NC42OSAtMjM1LjY2LDY0LjYxIDg0LjcsLTUwLjc4IDE0OS43NywtMTMxLjE5IDE4MC40%0D%0AMSwtMjI3LjAxIC03OS4yOSw0Ny4wMyAtMTY3LjEsODEuMTcgLTI2MC41Nyw5OS41NyBDIDE2MDku%0D%0AMzM5OSw0OS44MiAxNTAyLjY5OTksMCAxMzg0LjY3OTksMCBjIC0yMjYuNiwwIC00MTAuMzI4LDE4%0D%0AMy43MSAtNDEwLjMyOCw0MTAuMzEgMCwzMi4xNiAzLjYyOCw2My40OCAxMC42MjUsOTMuNTEgLTM0%0D%0AMS4wMTYsLTE3LjExIC02NDMuMzY4LC0xODAuNDcgLTg0NS43MzksLTQyOC43MiAtMzUuMzI0LDYw%0D%0ALjYgLTU1LjU1ODMsMTMxLjA5IC01NS41NTgzLDIwNi4yOSAwLDE0Mi4zNiA3Mi40MzczLDI2Ny45%0D%0ANSAxODIuNTQzMywzNDEuNTMgLTY3LjI2MiwtMi4xMyAtMTMwLjUzNSwtMjAuNTkgLTE4NS44NTE5%0D%0ALC01MS4zMiAtMC4wMzksMS43MSAtMC4wMzksMy40MiAtMC4wMzksNS4xNiAwLDE5OC44MDMgMTQx%0D%0ALjQ0MSwzNjQuNjM1IDMyOS4xNDUsNDAyLjM0MiAtMzQuNDI2LDkuMzc1IC03MC42NzYsMTQuMzk1%0D%0AIC0xMDguMDk4LDE0LjM5NSAtMjYuNDQxLDAgLTUyLjE0NSwtMi41NzggLTc3LjIwMywtNy4zNjQg%0D%0ANTIuMjE1LDE2My4wMDggMjAzLjc1LDI4MS42NDkgMzgzLjMwNCwyODQuOTQ2IC0xNDAuNDI5LDEx%0D%0AMC4wNjIgLTMxNy4zNTEsMTc1LjY2IC01MDkuNTk3MiwxNzUuNjYgLTMzLjEyMTEsMCAtNjUuNzg1%0D%0AMSwtMS45NDkgLTk3Ljg4MjgsLTUuNzM4IDE4MS41ODYsMTE2LjQxNzYgMzk3LjI3LDE4NC4zNTkg%0D%0ANjI4Ljk4OCwxODQuMzU5IDc1NC43MzIsMCAxMTY3LjQ2MiwtNjI1LjIzOCAxMTY3LjQ2MiwtMTE2%0D%0ANy40NyAwLC0xNy43OSAtMC40MSwtMzUuNDggLTEuMiwtNTMuMDggODAuMTc5OSwtNTcuODYgMTQ5%0D%0ALjczOTksLTEzMC4xMiAyMDQuNzQ5OSwtMjEyLjQxIgogICAgc3R5bGU9ImZpbGw6IzAwYWNlZCIv%0D%0APgo8L3N2Zz4K' height='16'> <b>{0}</b>: {1}", template = "<img src='data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxz%0D%0AdmcKICB2aWV3Ym94PSIwIDAgMjAwMCAxNjI1LjM2IgogIHdpZHRoPSIyMDAwIgogIGhlaWdodD0i%0D%0AMTYyNS4zNiIKICB2ZXJzaW9uPSIxLjEiCiAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAv%0D%0Ac3ZnIj4KICA8cGF0aAogICAgZD0ibSAxOTk5Ljk5OTksMTkyLjQgYyAtNzMuNTgsMzIuNjQgLTE1%0D%0AMi42Nyw1NC42OSAtMjM1LjY2LDY0LjYxIDg0LjcsLTUwLjc4IDE0OS43NywtMTMxLjE5IDE4MC40%0D%0AMSwtMjI3LjAxIC03OS4yOSw0Ny4wMyAtMTY3LjEsODEuMTcgLTI2MC41Nyw5OS41NyBDIDE2MDku%0D%0AMzM5OSw0OS44MiAxNTAyLjY5OTksMCAxMzg0LjY3OTksMCBjIC0yMjYuNiwwIC00MTAuMzI4LDE4%0D%0AMy43MSAtNDEwLjMyOCw0MTAuMzEgMCwzMi4xNiAzLjYyOCw2My40OCAxMC42MjUsOTMuNTEgLTM0%0D%0AMS4wMTYsLTE3LjExIC02NDMuMzY4LC0xODAuNDcgLTg0NS43MzksLTQyOC43MiAtMzUuMzI0LDYw%0D%0ALjYgLTU1LjU1ODMsMTMxLjA5IC01NS41NTgzLDIwNi4yOSAwLDE0Mi4zNiA3Mi40MzczLDI2Ny45%0D%0ANSAxODIuNTQzMywzNDEuNTMgLTY3LjI2MiwtMi4xMyAtMTMwLjUzNSwtMjAuNTkgLTE4NS44NTE5%0D%0ALC01MS4zMiAtMC4wMzksMS43MSAtMC4wMzksMy40MiAtMC4wMzksNS4xNiAwLDE5OC44MDMgMTQx%0D%0ALjQ0MSwzNjQuNjM1IDMyOS4xNDUsNDAyLjM0MiAtMzQuNDI2LDkuMzc1IC03MC42NzYsMTQuMzk1%0D%0AIC0xMDguMDk4LDE0LjM5NSAtMjYuNDQxLDAgLTUyLjE0NSwtMi41NzggLTc3LjIwMywtNy4zNjQg%0D%0ANTIuMjE1LDE2My4wMDggMjAzLjc1LDI4MS42NDkgMzgzLjMwNCwyODQuOTQ2IC0xNDAuNDI5LDEx%0D%0AMC4wNjIgLTMxNy4zNTEsMTc1LjY2IC01MDkuNTk3MiwxNzUuNjYgLTMzLjEyMTEsMCAtNjUuNzg1%0D%0AMSwtMS45NDkgLTk3Ljg4MjgsLTUuNzM4IDE4MS41ODYsMTE2LjQxNzYgMzk3LjI3LDE4NC4zNTkg%0D%0ANjI4Ljk4OCwxODQuMzU5IDc1NC43MzIsMCAxMTY3LjQ2MiwtNjI1LjIzOCAxMTY3LjQ2MiwtMTE2%0D%0ANy40NyAwLC0xNy43OSAtMC40MSwtMzUuNDggLTEuMiwtNTMuMDggODAuMTc5OSwtNTcuODYgMTQ5%0D%0ALjczOTksLTEzMC4xMiAyMDQuNzQ5OSwtMjEyLjQxIgogICAgc3R5bGU9ImZpbGw6IzAwYWNlZCIv%0D%0APgo8L3N2Zz4K' height='16'> <b>{0}</b>: {1}",
multiline = true, multiline = true,
@@ -77,7 +77,7 @@ end
if config["/darkweb"].enabled then if config["/darkweb"].enabled then
RegisterCommand("darkweb", function(source, args, rawCommand) RegisterCommand("darkweb", function(source, args, rawCommand)
local player = source local player = source
local players = NDCore.functions:getPlayers() local players = NDCore.Functions.GetPlayers()
hasDarkWebPermission(player, players, args) hasDarkWebPermission(player, players, args)
end, false) end, false)
end end

View File

@@ -1,22 +1,22 @@
-- For support join my discord: https://discord.gg/Z9Mxu72zZ6 -- For support join my discord: https://discord.gg/Z9Mxu72zZ6
NDCore = {} NDCore = {}
NDCore.selectedCharacter = nil NDCore.SelectedCharacter = nil
NDCore.characters = {} NDCore.characters = {}
NDCore.functions = {} NDCore.Functions = {}
NDCore.config = config NDCore.Config = config
function GetCoreObject() function GetCoreObject()
return NDCore return NDCore
end end
function NDCore.functions:getSelectedCharacter(cb) function NDCore.Functions.GetSelectedCharacter(cb)
if not cb then return NDCore.selectedCharacter end if not cb then return NDCore.SelectedCharacter end
cb(NDCore.selectedCharacter) cb(NDCore.SelectedCharacter)
end end
function NDCore.functions:getCharacters(cb) function NDCore.Functions.GetCharacters(cb)
if not cb then return NDCore.selectedCharacter end if not cb then return NDCore.SelectedCharacter end
cb(NDCore.characters) cb(NDCore.characters)
end end
@@ -25,12 +25,12 @@ if config.enableRichPrecence then
Citizen.CreateThread(function() Citizen.CreateThread(function()
SetDiscordAppId(config.appId) SetDiscordAppId(config.appId)
while true do while true do
if NDCore.selectedCharacter then if NDCore.SelectedCharacter then
SetRichPresence(" Playing : " .. config.serverName .. " as " .. NDCore.selectedCharacter.firstName .. " " .. NDCore.selectedCharacter.lastName) SetRichPresence(" Playing : " .. config.serverName .. " as " .. NDCore.SelectedCharacter.firstName .. " " .. NDCore.SelectedCharacter.lastName)
SetDiscordRichPresenceAsset(config.largeLogo) SetDiscordRichPresenceAsset(config.largeLogo)
SetDiscordRichPresenceAssetText("Playing: " .. config.serverName) SetDiscordRichPresenceAssetText("Playing: " .. config.serverName)
SetDiscordRichPresenceAssetSmall(config.smallLogo) SetDiscordRichPresenceAssetSmall(config.smallLogo)
SetDiscordRichPresenceAssetSmallText("Playing as: " .. NDCore.selectedCharacter.firstName .. " " .. NDCore.selectedCharacter.lastName) SetDiscordRichPresenceAssetSmallText("Playing as: " .. NDCore.SelectedCharacter.firstName .. " " .. NDCore.SelectedCharacter.lastName)
SetDiscordRichPresenceAction(0, config.firstButtonName, config.firstButtonLink) SetDiscordRichPresenceAction(0, config.firstButtonName, config.firstButtonLink)
SetDiscordRichPresenceAction(1, config.secondButtonName, config.secondButtonLink) SetDiscordRichPresenceAction(1, config.secondButtonName, config.secondButtonLink)
end end
@@ -44,13 +44,13 @@ if config.customPauseMenu then
Citizen.CreateThread(function() Citizen.CreateThread(function()
while true do while true do
Citizen.Wait(0) Citizen.Wait(0)
if NDCore.selectedCharacter then if NDCore.SelectedCharacter then
if IsPauseMenuActive() then if IsPauseMenuActive() then
BeginScaleformMovieMethodOnFrontendHeader("SET_HEADING_DETAILS") BeginScaleformMovieMethodOnFrontendHeader("SET_HEADING_DETAILS")
AddTextEntry("FE_THDR_GTAO", config.serverName) AddTextEntry("FE_THDR_GTAO", config.serverName)
ScaleformMovieMethodAddParamPlayerNameString(NDCore.selectedCharacter.firstName .. " " .. NDCore.selectedCharacter.lastName) ScaleformMovieMethodAddParamPlayerNameString(NDCore.SelectedCharacter.firstName .. " " .. NDCore.SelectedCharacter.lastName)
PushScaleformMovieFunctionParameterString("Cash: $" .. tostring(NDCore.selectedCharacter.cash)) PushScaleformMovieFunctionParameterString("Cash: $" .. tostring(NDCore.SelectedCharacter.cash))
PushScaleformMovieFunctionParameterString("Bank: $" .. tostring(NDCore.selectedCharacter.bank)) PushScaleformMovieFunctionParameterString("Bank: $" .. tostring(NDCore.SelectedCharacter.bank))
EndScaleformMovieMethod() EndScaleformMovieMethod()
end end
end end
@@ -66,13 +66,13 @@ end)
-- updates the money on the client. -- updates the money on the client.
RegisterNetEvent("ND:updateMoney") RegisterNetEvent("ND:updateMoney")
AddEventHandler("ND:updateMoney", function(cash, bank) AddEventHandler("ND:updateMoney", function(cash, bank)
NDCore.selectedCharacter.cash = cash NDCore.SelectedCharacter.cash = cash
NDCore.selectedCharacter.bank = bank NDCore.SelectedCharacter.bank = bank
end) end)
RegisterNetEvent("ND:setCharacter") RegisterNetEvent("ND:setCharacter")
AddEventHandler("ND:setCharacter", function(character) AddEventHandler("ND:setCharacter", function(character)
NDCore.selectedCharacter = character NDCore.SelectedCharacter = character
end) end)
-- Enables pvp if it's selected in the config. -- Enables pvp if it's selected in the config.

View File

@@ -1,7 +1,6 @@
-- For support join my discord: https://discord.gg/Z9Mxu72zZ6 -- For support join my discord: https://discord.gg/Z9Mxu72zZ6
server_config = { server_config = {
-- discordServerToken = "OTAwODg1MDMxMDQ2Nzc0ODQ1.GU1TSC.Ed8D2_wcU-UQ1vZhe1khahgV8J3hLahOp4N1D8", -- discord bot token for permissions discordServerToken = "OTAwODg1MDMxMDQ2Nzc0ODQ1.GU1TSC.Ed8D2_wcU-UQ1vZhe1khahgV8J3hLahOp4N1D8", -- discord bot token for permissions
discordServerToken = "OTAwODg1MDMxMDQ2Nzc0ODQ1.GSjH8J.qI5WBsQRZsOp1wBUsjeeNmRAJ1tZxWnSvCjQOY",
guildId = "872496972454592523", -- discord guild id guildId = "872496972454592523", -- discord guild id
} }

View File

@@ -1,49 +1,43 @@
-- For support join my discord: https://discord.gg/Z9Mxu72zZ6 -- For support join my discord: https://discord.gg/Z9Mxu72zZ6
-- Getting all the characters the player has and returning them to the client. -- Getting all the characters the player has and returning them to the client.
RegisterNetEvent("ND:getCharacters") RegisterNetEvent("ND:GetCharacters", function()
AddEventHandler("ND:getCharacters", function()
local player = source local player = source
TriggerClientEvent("ND:returnCharacters", player, NDCore.functions:getPlayerCharacters(player)) TriggerClientEvent("ND:returnCharacters", player, NDCore.Functions.GetPlayerCharacters(player))
end) end)
-- Creating a new character. -- Creating a new character.
RegisterNetEvent("ND:newCharacter") RegisterNetEvent("ND:newCharacter", function(newCharacter)
AddEventHandler("ND:newCharacter", function(newCharacter)
local player = source local player = source
NDCore.functions:createCharacter(player, newCharacter.firstName, newCharacter.lastName, newCharacter.dob, newCharacter.gender, newCharacter.twt, newCharacter.job, newCharacter.cash, newCharacter.bank) NDCore.Functions.CreateCharacter(player, newCharacter.firstName, newCharacter.lastName, newCharacter.dob, newCharacter.gender, newCharacter.twt, newCharacter.job, newCharacter.cash, newCharacter.bank)
end) end)
-- Update the character info when edited. -- Update the character info when edited.
RegisterNetEvent("ND:editCharacter") RegisterNetEvent("ND:editCharacter", function(newCharacter)
AddEventHandler("ND:editCharacter", function(newCharacter)
local player = source local player = source
NDCore.functions:updateCharacterData(newCharacter.id, newCharacter.firstName, newCharacter.lastName, newCharacter.dob, newCharacter.gender, newCharacter.twt, newCharacter.job) NDCore.Functions.UpdateCharacterData(newCharacter.id, newCharacter.firstName, newCharacter.lastName, newCharacter.dob, newCharacter.gender, newCharacter.twt, newCharacter.job)
end) end)
-- Delete character from database. -- Delete character from database.
RegisterNetEvent("ND:deleteCharacter") RegisterNetEvent("ND:deleteCharacter", function(characterId)
AddEventHandler("ND:deleteCharacter", function(characterId)
local player = source local player = source
NDCore.functions:deleteCharacter(characterId) NDCore.Functions.DeleteCharacter(characterId)
end) end)
-- add a player to the table. -- add a player to the table.
RegisterNetEvent("ND:setCharacterOnline") RegisterNetEvent("ND:setCharacterOnline", function(id)
AddEventHandler("ND:setCharacterOnline", function(id)
local player = source local player = source
NDCore.functions:setActiveCharacter(player, id) NDCore.Functions.SetActiveCharacter(player, id)
end) end)
-- Disconnecting a player -- Disconnecting a player
RegisterNetEvent("ND:exitGame") RegisterNetEvent("ND:exitGame", function()
AddEventHandler("ND:exitGame", function()
local player = source local player = source
DropPlayer(player, "Disconnected.") DropPlayer(player, "Disconnected.")
end) end)
-- Remove player from NDCore.players table when they leave. -- Remove player from NDCore.Players table when they leave.
AddEventHandler("playerDropped", function() AddEventHandler("playerDropped", function()
local player = source local player = source
NDCore.players[player] = nil NDCore.Players[player] = nil
end) end)

View File

@@ -1,13 +1,13 @@
-- For support join my discord: https://discord.gg/Z9Mxu72zZ6 -- For support join my discord: https://discord.gg/Z9Mxu72zZ6
-- Callback to update each selected character on the server. -- Callback to update each selected character on the server.
function NDCore.functions:getPlayers(players) function NDCore.Functions.GetPlayers(players)
if not cb then return NDCore.players end if not cb then return NDCore.Players end
cb(NDCore.players) cb(NDCore.Players)
end end
-- Used to retrive the players discord server nickname, discord name and tag, and the roles. -- Used to retrive the players discord server nickname, discord name and tag, and the roles.
function NDCore.functions:getUserDiscordInfo(discordUserId) function NDCore.Functions.GetUserDiscordInfo(discordUserId)
local data local data
PerformHttpRequest("https://discordapp.com/api/guilds/" .. server_config.guildId .. "/members/" .. discordUserId, function(errorCode, resultData, resultHeaders) PerformHttpRequest("https://discordapp.com/api/guilds/" .. server_config.guildId .. "/members/" .. discordUserId, function(errorCode, resultData, resultHeaders)
if errorCode ~= 200 then if errorCode ~= 200 then
@@ -32,7 +32,7 @@ function NDCore.functions:getUserDiscordInfo(discordUserId)
end end
-- Get player any identifier, available types: steam, license, xbl, ip, discord, live. -- Get player any identifier, available types: steam, license, xbl, ip, discord, live.
function NDCore.functions:GetPlayerIdentifierFromType(type, player) function NDCore.Functions.GetPlayerIdentifierFromType(type, player)
local identifierCount = GetNumPlayerIdentifiers(player) local identifierCount = GetNumPlayerIdentifiers(player)
for count = 0, identifierCount do for count = 0, identifierCount do
local identifier = GetPlayerIdentifier(player, count) local identifier = GetPlayerIdentifier(player, count)
@@ -44,9 +44,9 @@ function NDCore.functions:GetPlayerIdentifierFromType(type, player)
end end
-- This will return the server id and ND player data of a nearby player. -- This will return the server id and ND player data of a nearby player.
function NDCore.functions:getNearbyPedToPlayer(player) function NDCore.Functions.GetNearbyPedToPlayer(player)
local pedCoords = GetEntityCoords(GetPlayerPed(player)) local pedCoords = GetEntityCoords(GetPlayerPed(player))
for targetId, targetInfo in pairs(NDCore.players) do for targetId, targetInfo in pairs(NDCore.Players) do
local targetCoords = GetEntityCoords(GetPlayerPed(targetId)) local targetCoords = GetEntityCoords(GetPlayerPed(targetId))
if #(pedCoords - targetCoords) < 2.0 and targetId ~= player then if #(pedCoords - targetCoords) < 2.0 and targetId ~= player then
return targetId, targetInfo return targetId, targetInfo
@@ -55,21 +55,21 @@ function NDCore.functions:getNearbyPedToPlayer(player)
end end
-- update the players money on the client kinda like a refresh. -- update the players money on the client kinda like a refresh.
function NDCore.functions:updateMoney(player) function NDCore.Functions.UpdateMoney(player)
local player = tonumber(player) local player = tonumber(player)
MySQL.query("SELECT cash, bank FROM characters WHERE character_id = ?", {NDCore.players[player].id}, function(result) MySQL.query("SELECT cash, bank FROM characters WHERE character_id = ?", {NDCore.Players[player].id}, function(result)
if result then if result then
local cash = result[1].cash local cash = result[1].cash
local bank = result[1].bank local bank = result[1].bank
NDCore.players[player].cash = cash NDCore.Players[player].cash = cash
NDCore.players[player].bank = bank NDCore.Players[player].bank = bank
TriggerClientEvent("ND:updateMoney", player, cash, bank) TriggerClientEvent("ND:updateMoney", player, cash, bank)
end end
end) end)
end end
-- Transfer money from one players bank account to another. -- Transfer money from one players bank account to another.
function NDCore.functions:transferBank(amount, player, target) function NDCore.Functions.TransferBank(amount, player, target)
local amount = tonumber(amount) local amount = tonumber(amount)
local player = tonumber(player) local player = tonumber(player)
local target = tonumber(target) local target = tonumber(target)
@@ -91,27 +91,27 @@ function NDCore.functions:transferBank(amount, player, target)
args = {"Error", "You can't send that amount."} args = {"Error", "You can't send that amount."}
}) })
return false return false
elseif NDCore.players[player].bank < amount then elseif NDCore.Players[player].bank < amount then
TriggerClientEvent("chat:addMessage", player, { TriggerClientEvent("chat:addMessage", player, {
color = {255, 0, 0}, color = {255, 0, 0},
args = {"Error", "You don't have enough money."} args = {"Error", "You don't have enough money."}
}) })
return false return false
else else
MySQL.query.await("UPDATE characters SET bank = bank - ? WHERE character_id = ?", {amount, NDCore.players[player].id}) MySQL.query.await("UPDATE characters SET bank = bank - ? WHERE character_id = ?", {amount, NDCore.Players[player].id})
NDCore.functions:updateMoney(player) NDCore.Functions.UpdateMoney(player)
MySQL.query.await("UPDATE characters SET bank = bank + ? WHERE character_id = ?", {amount, NDCore.players[target].id}) MySQL.query.await("UPDATE characters SET bank = bank + ? WHERE character_id = ?", {amount, NDCore.Players[target].id})
NDCore.functions:updateMoney(target) NDCore.Functions.UpdateMoney(target)
TriggerClientEvent("chat:addMessage", player, { TriggerClientEvent("chat:addMessage", player, {
color = {0, 255, 0}, color = {0, 255, 0},
args = {"Success", "You paid " .. NDCore.players[target].firstName .. " " .. NDCore.players[target].lastName .. " $" .. amount .. "."} args = {"Success", "You paid " .. NDCore.Players[target].firstName .. " " .. NDCore.Players[target].lastName .. " $" .. amount .. "."}
}) })
return true return true
end end
end end
-- Give cash from one players wallet to another. -- Give cash from one players wallet to another.
function NDCore.functions:giveCash(amount, player, target) function NDCore.Functions.GiveCash(amount, player, target)
local amount = tonumber(amount) local amount = tonumber(amount)
local player = tonumber(player) local player = tonumber(player)
local target = tonumber(target) local target = tonumber(target)
@@ -133,30 +133,30 @@ function NDCore.functions:giveCash(amount, player, target)
args = {"Error", "You can't give that amount."} args = {"Error", "You can't give that amount."}
}) })
return false return false
elseif NDCore.players[player].cash < amount then elseif NDCore.Players[player].cash < amount then
TriggerClientEvent("chat:addMessage", player, { TriggerClientEvent("chat:addMessage", player, {
color = {255, 0, 0}, color = {255, 0, 0},
args = {"Error", "You don't have enough money."} args = {"Error", "You don't have enough money."}
}) })
return false return false
else else
MySQL.query.await("UPDATE characters SET cash = cash - ? WHERE character_id = ?", {amount, NDCore.players[player].id}) MySQL.query.await("UPDATE characters SET cash = cash - ? WHERE character_id = ?", {amount, NDCore.Players[player].id})
NDCore.functions:updateMoney(player) NDCore.Functions.UpdateMoney(player)
MySQL.query.await("UPDATE characters SET cash = cash + ? WHERE character_id = ?", {amount, NDCore.players[target].id}) MySQL.query.await("UPDATE characters SET cash = cash + ? WHERE character_id = ?", {amount, NDCore.Players[target].id})
NDCore.functions:updateMoney(target) NDCore.Functions.UpdateMoney(target)
TriggerClientEvent("chat:addMessage", player, { TriggerClientEvent("chat:addMessage", player, {
color = {0, 255, 0}, color = {0, 255, 0},
args = {"Success", "You gave " .. NDCore.players[target].firstName .. " " .. NDCore.players[target].lastName .. " $" .. amount .. "."} args = {"Success", "You gave " .. NDCore.Players[target].firstName .. " " .. NDCore.Players[target].lastName .. " $" .. amount .. "."}
}) })
return true return true
end end
end end
-- Give money from a players wallet to a nearby player. -- Give money from a players wallet to a nearby player.
function NDCore.functions:giveCashToNearbyPlayer(player, amount) function NDCore.Functions.GiveCashToNearbyPlayer(player, amount)
local targetId = NDCore.functions:getNearbyPedToPlayer(player) local targetId = NDCore.Functions.GetNearbyPedToPlayer(player)
if targetId then if targetId then
NDCore.functions:giveCash(amount, player, targetId) NDCore.Functions.GiveCash(amount, player, targetId)
return true return true
end end
TriggerClientEvent("chat:addMessage", player, { TriggerClientEvent("chat:addMessage", player, {
@@ -167,59 +167,59 @@ function NDCore.functions:giveCashToNearbyPlayer(player, amount)
end end
-- withdraws money from a players bank account to their wallet/cash. -- withdraws money from a players bank account to their wallet/cash.
function NDCore.functions:withdrawMoney(amount, player) function NDCore.Functions.WithdrawMoney(amount, player)
local amount = tonumber(amount) local amount = tonumber(amount)
local player = tonumber(player) local player = tonumber(player)
if amount <= 0 then return false end if amount <= 0 then return false end
if NDCore.players[player].bank < amount then return false end if NDCore.Players[player].bank < amount then return false end
MySQL.query.await("UPDATE characters SET bank = bank - ? WHERE character_id = ?", {amount, NDCore.players[player].id}) MySQL.query.await("UPDATE characters SET bank = bank - ? WHERE character_id = ?", {amount, NDCore.Players[player].id})
MySQL.query.await("UPDATE characters SET cash = cash + ? WHERE character_id = ?", {amount, NDCore.players[player].id}) MySQL.query.await("UPDATE characters SET cash = cash + ? WHERE character_id = ?", {amount, NDCore.Players[player].id})
NDCore.functions:updateMoney(player) NDCore.Functions.UpdateMoney(player)
return true return true
end end
-- deposits money from a players wallet/cash to their bank account. -- deposits money from a players wallet/cash to their bank account.
function NDCore.functions:depositMoney(amount, player) function NDCore.Functions.DepositMoney(amount, player)
local amount = tonumber(amount) local amount = tonumber(amount)
local player = tonumber(player) local player = tonumber(player)
if amount <= 0 then return false end if amount <= 0 then return false end
if NDCore.players[player].cash < amount then return false end if NDCore.Players[player].cash < amount then return false end
MySQL.query.await("UPDATE characters SET cash = cash - ? WHERE character_id = ?", {amount, NDCore.players[player].id}) MySQL.query.await("UPDATE characters SET cash = cash - ? WHERE character_id = ?", {amount, NDCore.Players[player].id})
MySQL.query.await("UPDATE characters SET bank = bank + ? WHERE character_id = ?", {amount, NDCore.players[player].id}) MySQL.query.await("UPDATE characters SET bank = bank + ? WHERE character_id = ?", {amount, NDCore.Players[player].id})
NDCore.functions:updateMoney(player) NDCore.Functions.UpdateMoney(player)
return true return true
end end
-- Deducts money from the player, "bank" or "cash" needs to be specified. -- Deducts money from the player, "bank" or "cash" needs to be specified.
function NDCore.functions:deductMoney(amount, player, from) function NDCore.Functions.DeductMoney(amount, player, from)
local amount = tonumber(amount) local amount = tonumber(amount)
local player = tonumber(player) local player = tonumber(player)
if from == "bank" then if from == "bank" then
MySQL.query.await("UPDATE characters SET bank = bank - ? WHERE character_id = ?", {amount, NDCore.players[player].id}) MySQL.query.await("UPDATE characters SET bank = bank - ? WHERE character_id = ?", {amount, NDCore.Players[player].id})
elseif from == "cash" then elseif from == "cash" then
MySQL.query.await("UPDATE characters SET cash = cash - ? WHERE character_id = ?", {amount, NDCore.players[player].id}) MySQL.query.await("UPDATE characters SET cash = cash - ? WHERE character_id = ?", {amount, NDCore.Players[player].id})
end end
NDCore.functions:updateMoney(player) NDCore.Functions.UpdateMoney(player)
end end
-- Adds money from the player, "bank" or "cash" needs to be specified. -- Adds money from the player, "bank" or "cash" needs to be specified.
function NDCore.functions:addMoney(amount, player, to) function NDCore.Functions.AddMoney(amount, player, to)
local amount = tonumber(amount) local amount = tonumber(amount)
local player = tonumber(player) local player = tonumber(player)
if to == "bank" then if to == "bank" then
MySQL.query.await("UPDATE characters SET bank = bank + ? WHERE character_id = ?", {amount, NDCore.players[player].id}) MySQL.query.await("UPDATE characters SET bank = bank + ? WHERE character_id = ?", {amount, NDCore.Players[player].id})
elseif to == "cash" then elseif to == "cash" then
MySQL.query.await("UPDATE characters SET cash = cash + ? WHERE character_id = ?", {amount, NDCore.players[player].id}) MySQL.query.await("UPDATE characters SET cash = cash + ? WHERE character_id = ?", {amount, NDCore.Players[player].id})
end end
NDCore.functions:updateMoney(player) NDCore.Functions.UpdateMoney(player)
end end
-- Adds the players character to the NDCore.players table, this table consists of every players selected character. -- Adds the players character to the NDCore.Players table, this table consists of every players selected character.
function NDCore.functions:setActiveCharacter(player, characterId) function NDCore.Functions.SetActiveCharacter(player, characterId)
local result = MySQL.query.await("SELECT * FROM characters WHERE character_id = ?", {characterId}) local result = MySQL.query.await("SELECT * FROM characters WHERE character_id = ?", {characterId})
if result then if result then
local i = result[1] local i = result[1]
NDCore.players[player] = { NDCore.Players[player] = {
id = characterId, id = characterId,
firstName = i.first_name, firstName = i.first_name,
lastName = i.last_name, lastName = i.last_name,
@@ -231,13 +231,13 @@ function NDCore.functions:setActiveCharacter(player, characterId)
bank = i.bank bank = i.bank
} }
end end
TriggerClientEvent("ND:setCharacter", player, NDCore.players[player]) TriggerClientEvent("ND:setCharacter", player, NDCore.Players[player])
end end
-- This returns all the characters the player has. -- This returns all the characters the player has.
function NDCore.functions:getPlayerCharacters(player) function NDCore.Functions.GetPlayerCharacters(player)
local characters = {} local characters = {}
local result = MySQL.query.await("SELECT * FROM characters WHERE license = ?", {NDCore.functions:GetPlayerIdentifierFromType("license", player)}) local result = MySQL.query.await("SELECT * FROM characters WHERE license = ?", {NDCore.Functions.GetPlayerIdentifierFromType("license", player)})
for i = 1, #result do for i = 1, #result do
local temp = result[i] local temp = result[i]
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} 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}
@@ -246,8 +246,8 @@ function NDCore.functions:getPlayerCharacters(player)
end end
-- Creates a new character for the player and returns all their characters to the client. -- Creates a new character for the player and returns all their characters to the client.
function NDCore.functions:createCharacter(player, firstName, lastName, dob, gender, twt, job, cash, bank) function NDCore.Functions.CreateCharacter(player, firstName, lastName, dob, gender, twt, job, cash, bank)
local license = NDCore.functions:GetPlayerIdentifierFromType("license", player) local license = NDCore.Functions.GetPlayerIdentifierFromType("license", player)
if not cash or not bank or tonumber(cash) > config.startingCash or tonumber(bank) > config.startingBank then if not cash or not bank or tonumber(cash) > config.startingCash or tonumber(bank) > config.startingBank then
cash = config.startingCash cash = config.startingCash
bank = config.startingBank bank = config.startingBank
@@ -255,21 +255,21 @@ function NDCore.functions:createCharacter(player, firstName, lastName, dob, gend
local result = MySQL.query.await("SELECT character_id FROM characters WHERE license = ?", {license}) local result = MySQL.query.await("SELECT character_id FROM characters WHERE license = ?", {license})
if result and config.characterLimit > #result then 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}) 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})
TriggerClientEvent("ND:returnCharacters", player, NDCore.functions:getPlayerCharacters(player)) TriggerClientEvent("ND:returnCharacters", player, NDCore.Functions.GetPlayerCharacters(player))
end end
end end
-- Update/edit a character by character id. -- Update/edit a character by character id.
function NDCore.functions:updateCharacterData(characterId, firstName, lastName, dob, gender, twt, job) function NDCore.Functions.UpdateCharacterData(characterId, firstName, lastName, dob, gender, twt, job)
MySQL.query("UPDATE characters SET first_name = ?, last_name = ?, dob = ?, gender = ?, twt = ?, job = ? WHERE character_id = ?", {firstName, lastName, dob, gender, twt, job, characterId}) MySQL.query("UPDATE characters SET first_name = ?, last_name = ?, dob = ?, gender = ?, twt = ?, job = ? WHERE character_id = ?", {firstName, lastName, dob, gender, twt, job, characterId})
end end
-- Delete a character by character id. -- Delete a character by character id.
function NDCore.functions:deleteCharacter(characterId) function NDCore.Functions.DeleteCharacter(characterId)
MySQL.query("DELETE FROM characters WHERE character_id = ?", {characterId}) MySQL.query("DELETE FROM characters WHERE character_id = ?", {characterId})
end end
function NDCore.functions:versionChecker(expectedResourceName, resourceName, downloadLink, rawGithubLink) function NDCore.Functions.VersionChecker(expectedResourceName, resourceName, downloadLink, rawGithubLink)
if expectedResourceName ~= resourceName then if expectedResourceName ~= resourceName then
print("^1[^4" .. expectedResourceName .. "^1] WARNING^0") print("^1[^4" .. expectedResourceName .. "^1] WARNING^0")
print("Change the resource name to ^4" .. expectedResourceName .. " ^0or else it won't work properly!") print("Change the resource name to ^4" .. expectedResourceName .. " ^0or else it won't work properly!")
@@ -306,4 +306,4 @@ function NDCore.functions:versionChecker(expectedResourceName, resourceName, dow
end end
end) end)
end end
NDCore.functions:versionChecker("ND_Core", GetCurrentResourceName(), "https://github.com/Andyyy7666/ND_Framework", "https://raw.githubusercontent.com/Andyyy7666/ND_Framework/main/ND_Core/fxmanifest.lua") NDCore.Functions.VersionChecker("ND_Core", GetCurrentResourceName(), "https://github.com/Andyyy7666/ND_Framework", "https://raw.githubusercontent.com/Andyyy7666/ND_Framework/main/ND_Core/fxmanifest.lua")

View File

@@ -1,9 +1,9 @@
-- For support join my discord: https://discord.gg/Z9Mxu72zZ6 -- For support join my discord: https://discord.gg/Z9Mxu72zZ6
NDCore = {} NDCore = {}
NDCore.players = {} NDCore.Players = {}
NDCore.functions = {} NDCore.Functions = {}
NDCore.config = config NDCore.Config = config
function GetCoreObject() function GetCoreObject()
return NDCore return NDCore

View File

@@ -1,7 +1,7 @@
-- For support join my discord: https://discord.gg/Z9Mxu72zZ6 -- For support join my discord: https://discord.gg/Z9Mxu72zZ6
NDCore = exports["ND_Core"]:GetCoreObject() NDCore = exports["ND_Core"]:GetCoreObject()
local job = NDCore.functions:getSelectedCharacter().job local job = nil
local hasAccess = false local hasAccess = false
function drawText3D(coords, text) function drawText3D(coords, text)

View File

@@ -1,7 +1,7 @@
-- For support join my discord: https://discord.gg/Z9Mxu72zZ6 -- For support join my discord: https://discord.gg/Z9Mxu72zZ6
NDCore = exports["ND_Core"]:GetCoreObject() NDCore = exports["ND_Core"]:GetCoreObject()
NDCore.functions:versionChecker("ND_Doorlocks", GetCurrentResourceName(), "https://github.com/Andyyy7666/ND_Framework", "https://raw.githubusercontent.com/Andyyy7666/ND_Framework/main/ND_Doorlocks/fxmanifest.lua") NDCore.Functions.VersionChecker("ND_Doorlocks", GetCurrentResourceName(), "https://github.com/Andyyy7666/ND_Framework", "https://raw.githubusercontent.com/Andyyy7666/ND_Framework/main/ND_Doorlocks/fxmanifest.lua")
local updatedDoors = {} local updatedDoors = {}

View File

@@ -41,7 +41,7 @@ function drawText3D(coords, text)
end end
function hasAccess() function hasAccess()
local job = NDCore.functions:getSelectedCharacter().job local job = NDCore.Functions.GetSelectedCharacter().job
for _, department in pairs(config.accessDepartments) do for _, department in pairs(config.accessDepartments) do
if department == job then if department == job then
return true return true

View File

@@ -1,5 +1,5 @@
NDCore = exports["ND_Core"]:GetCoreObject() NDCore = exports["ND_Core"]:GetCoreObject()
NDCore.functions:versionChecker("ND_Jailing", GetCurrentResourceName(), "https://github.com/Andyyy7666/ND_Framework", "https://raw.githubusercontent.com/Andyyy7666/ND_Framework/main/ND_Jailing/fxmanifest.lua") NDCore.Functions.VersionChecker("ND_Jailing", GetCurrentResourceName(), "https://github.com/Andyyy7666/ND_Framework", "https://raw.githubusercontent.com/Andyyy7666/ND_Framework/main/ND_Jailing/fxmanifest.lua")
local jailedPlayers = {} local jailedPlayers = {}
@@ -35,12 +35,12 @@ end
RegisterNetEvent("ND_Jailing:jailPlayer") RegisterNetEvent("ND_Jailing:jailPlayer")
AddEventHandler("ND_Jailing:jailPlayer", function(id, time, fine, reason) AddEventHandler("ND_Jailing:jailPlayer", function(id, time, fine, reason)
local player = source local player = source
local players = NDCore.functions:getPlayers() local players = NDCore.Functions.GetPlayers()
local dept = players[player].job local dept = players[player].job
for _, department in pairs(config.accessDepartments) do for _, department in pairs(config.accessDepartments) do
if department == dept then if department == dept then
jailedPlayers[GetPlayerIdentifierFromType("license", id)] = time jailedPlayers[GetPlayerIdentifierFromType("license", id)] = time
NDCore.functions:deductMoney(fine, id, "bank") NDCore.Functions.DeductMoney(fine, id, "bank")
TriggerClientEvent("ND_Jailing:jailPlayer", id, time) TriggerClientEvent("ND_Jailing:jailPlayer", id, time)
sendToDiscord("Jail Logs", "**" .. GetPlayerName(player) .. "** Jailed **" .. GetPlayerName(id) .. "** for **" .. time .. " seconds** with the reason: **" .. reason .. "**.", 1595381) sendToDiscord("Jail Logs", "**" .. GetPlayerName(player) .. "** Jailed **" .. GetPlayerName(id) .. "** for **" .. time .. " seconds** with the reason: **" .. reason .. "**.", 1595381)
TriggerClientEvent('chat:addMessage', -1, { TriggerClientEvent('chat:addMessage', -1, {

View File

@@ -26,7 +26,7 @@ end
-- check if the players department can receive shot spotter alerts. -- check if the players department can receive shot spotter alerts.
function isCop() function isCop()
local job = NDCore.functions:getSelectedCharacter().job local job = NDCore.Functions.GetSelectedCharacter().job
for _, department in pairs(config.receiveAlerts) do for _, department in pairs(config.receiveAlerts) do
if department == job then if department == job then
return true return true

View File

@@ -1,7 +1,7 @@
-- For support join my discord: https://discord.gg/Z9Mxu72zZ6 -- For support join my discord: https://discord.gg/Z9Mxu72zZ6
NDCore = exports["ND_Core"]:GetCoreObject() NDCore = exports["ND_Core"]:GetCoreObject()
NDCore.functions:versionChecker("ND_ShotSpotter", GetCurrentResourceName(), "https://github.com/Andyyy7666/ND_Framework", "https://raw.githubusercontent.com/Andyyy7666/ND_Framework/main/ND_ShotSpotter/fxmanifest.lua") NDCore.Functions.VersionChecker("ND_ShotSpotter", GetCurrentResourceName(), "https://github.com/Andyyy7666/ND_Framework", "https://raw.githubusercontent.com/Andyyy7666/ND_Framework/main/ND_ShotSpotter/fxmanifest.lua")
RegisterNetEvent("ND_ShotSpotter:Trigger") RegisterNetEvent("ND_ShotSpotter:Trigger")
AddEventHandler("ND_ShotSpotter:Trigger", function(street, pedCoords, postal, zoneName) AddEventHandler("ND_ShotSpotter:Trigger", function(street, pedCoords, postal, zoneName)