diff --git a/ND_ATMs/source/client.lua b/ND_ATMs/source/client.lua index d02edf2..7703070 100644 --- a/ND_ATMs/source/client.lua +++ b/ND_ATMs/source/client.lua @@ -36,7 +36,7 @@ end -- Hide/Show ui function SetDisplay(bool) - local selectedCharacter = NDCore.functions:getSelectedCharacter() + local selectedCharacter = NDCore.Functions.GetSelectedCharacter() display = bool SetNuiFocus(bool, bool) SendNUIMessage({ @@ -134,7 +134,7 @@ end) RegisterNetEvent("ND_ATMs:update") AddEventHandler("ND_ATMs:update", function(status) Citizen.Wait(1000) - local selectedCharacter = NDCore.functions:getSelectedCharacter() + local selectedCharacter = NDCore.Functions.GetSelectedCharacter() SendNUIMessage({ balance = "Account Balance: $" .. selectedCharacter.bank .. ".00", success = status diff --git a/ND_ATMs/source/server.lua b/ND_ATMs/source/server.lua index 35748c8..e75a446 100644 --- a/ND_ATMs/source/server.lua +++ b/ND_ATMs/source/server.lua @@ -1,16 +1,16 @@ 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") AddEventHandler("ND_ATMs:withdraw", function(amount) local player = source - local update = NDCore.functions:withdrawMoney(amount, player) + local update = NDCore.Functions.WithdrawMoney(amount, player) TriggerClientEvent("ND_ATMs:update", player, update) end) RegisterNetEvent("ND_ATMs:deposit") AddEventHandler("ND_ATMs:deposit", function(amount) local player = source - local update = NDCore.functions:depositMoney(amount, player) + local update = NDCore.Functions.DepositMoney(amount, player) TriggerClientEvent("ND_ATMs:update", player, update) end) \ No newline at end of file diff --git a/ND_Banks/source/client.lua b/ND_Banks/source/client.lua index 5c9ca2e..fc381f6 100644 --- a/ND_Banks/source/client.lua +++ b/ND_Banks/source/client.lua @@ -39,7 +39,7 @@ end -- Hide/Show ui function SetDisplay(bool) - local selectedCharacter = NDCore.functions:getSelectedCharacter() + local selectedCharacter = NDCore.Functions.GetSelectedCharacter() display = bool SetNuiFocus(bool, bool) SendNUIMessage({ @@ -146,7 +146,7 @@ end) RegisterNetEvent("ND_Banks:update") AddEventHandler("ND_Banks:update", function(status) Citizen.Wait(1000) - local selectedCharacter = NDCore.functions:getSelectedCharacter() + local selectedCharacter = NDCore.Functions.GetSelectedCharacter() SendNUIMessage({ balance = "Account Balance: $" .. selectedCharacter.bank .. ".00", success = status diff --git a/ND_Banks/source/server.lua b/ND_Banks/source/server.lua index f436442..3dd4723 100644 --- a/ND_Banks/source/server.lua +++ b/ND_Banks/source/server.lua @@ -1,23 +1,23 @@ 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") AddEventHandler("ND_Banks:withdraw", function(amount) local player = source - local update = NDCore.functions:withdrawMoney(amount, player) + local update = NDCore.Functions.WithdrawMoney(amount, player) TriggerClientEvent("ND_Banks:update", player, update) end) RegisterNetEvent("ND_Banks:deposit") AddEventHandler("ND_Banks:deposit", function(amount) local player = source - local update = NDCore.functions:depositMoney(amount, player) + local update = NDCore.Functions.DepositMoney(amount, player) TriggerClientEvent("ND_Banks:update", player, update) end) RegisterNetEvent("ND_Banks:transfer") AddEventHandler("ND_Banks:transfer", function(amount, target) 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) end) \ No newline at end of file diff --git a/ND_CharacterSelection/source/client.lua b/ND_CharacterSelection/source/client.lua index f6eaa93..00d27cd 100644 --- a/ND_CharacterSelection/source/client.lua +++ b/ND_CharacterSelection/source/client.lua @@ -19,8 +19,8 @@ function SetDisplay(bool, typeName, bg) type = typeName, background = background, status = bool, - serverName = NDCore.config.serverName, - characterAmount = tablelength(NDCore.characters) .. "/" .. NDCore.config.characterLimit + serverName = NDCore.Config.serverName, + characterAmount = tablelength(NDCore.characters) .. "/" .. NDCore.Config.characterLimit }) if config.characterSelectionAopDisplay then SendNUIMessage({ @@ -32,7 +32,7 @@ end function start(switch) TriggerServerEvent("ND_CharacterSelection:checkPerms") - TriggerServerEvent("ND:getCharacters") + TriggerServerEvent("ND:GetCharacters") if switch then local ped = PlayerPedId() SwitchOutPlayer(ped, 0, 1) @@ -41,8 +41,8 @@ function start(switch) end SendNUIMessage({ type = "onStart", - maxStartingBank = NDCore.config.startingBank, - maxStartingCash = NDCore.config.startingCash + maxStartingBank = NDCore.Config.startingBank, + maxStartingCash = NDCore.Config.startingCash }) if config.characterSelectionAopDisplay then SendNUIMessage({ @@ -100,10 +100,10 @@ end) -- Selecting a player from the iu. RegisterNUICallback("setMainCharacter", function(data) - NDCore.functions:getCharacters(function(characters) - NDCore.selectedCharacter = characters[data.id] + NDCore.Functions.GetCharacters(function(characters) + NDCore.SelectedCharacter = characters[data.id] end) - for _, spawn in pairs(config.spawns[NDCore.selectedCharacter.job]) do + for _, spawn in pairs(config.spawns[NDCore.SelectedCharacter.job]) do SendNUIMessage({ type = "setSpawns", x = spawn.x, @@ -112,12 +112,12 @@ RegisterNUICallback("setMainCharacter", function(data) name = spawn.name }) end - TriggerServerEvent("ND:setCharacterOnline", NDCore.selectedCharacter.id) + TriggerServerEvent("ND:setCharacterOnline", NDCore.SelectedCharacter.id) end) -- Creating a character from the ui. RegisterNUICallback("newCharacter", function(data) - if tablelength(NDCore.characters) < NDCore.config.characterLimit then + if tablelength(NDCore.characters) < NDCore.Config.characterLimit then TriggerServerEvent("ND_CharacterSelection:newCharacter", { firstName = data.firstName, lastName = data.lastName, diff --git a/ND_CharacterSelection/source/server.lua b/ND_CharacterSelection/source/server.lua index 6f24f5a..6674cb8 100644 --- a/ND_CharacterSelection/source/server.lua +++ b/ND_CharacterSelection/source/server.lua @@ -5,8 +5,8 @@ NDCore = exports["ND_Core"]:GetCoreObject() function validateDepartment(player, department) local departmentExists = config.departments[department] if departmentExists then - local discordUserId = string.gsub(NDCore.functions:GetPlayerIdentifierFromType("discord", player), "discord:", "") - local roles = NDCore.functions:getUserDiscordInfo(discordUserId).roles + local discordUserId = string.gsub(NDCore.Functions.GetPlayerIdentifierFromType("discord", player), "discord:", "") + local roles = NDCore.Functions.GetUserDiscordInfo(discordUserId).roles -- validate that the player actually has the role that they selected on the client. for _, roleId in pairs(departmentExists) do @@ -28,7 +28,7 @@ AddEventHandler("ND_CharacterSelection:newCharacter", function(newCharacter) if not departmentCheck then return end -- 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) -- Update the character info when edited. @@ -41,18 +41,18 @@ AddEventHandler("ND_CharacterSelection:editCharacter", function(newCharacter) if not departmentCheck then return end -- 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. - TriggerClientEvent("ND:returnCharacters", player, NDCore.functions:getPlayerCharacters(player)) + TriggerClientEvent("ND:returnCharacters", player, NDCore.Functions.GetPlayerCharacters(player)) 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 = string.gsub(NDCore.Functions.GetPlayerIdentifierFromType("discord", player), "discord:", "") 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. for dept, roleTable in pairs(config.departments) do diff --git a/ND_Chat/fxmanifest.lua b/ND_Chat/fxmanifest.lua index bc33f9e..5d7cd71 100644 --- a/ND_Chat/fxmanifest.lua +++ b/ND_Chat/fxmanifest.lua @@ -1,7 +1,7 @@ -- For support join my discord: https://discord.gg/Z9Mxu72zZ6 author "Andyyy#7666" description "ND Chat commands" -version "2.0.0" +version "2.1.0" fx_version "cerulean" game "gta5" diff --git a/ND_Chat/source/client.lua b/ND_Chat/source/client.lua index 3304bd7..90be073 100644 --- a/ND_Chat/source/client.lua +++ b/ND_Chat/source/client.lua @@ -1,3 +1,5 @@ +NDCore = exports["ND_Core"]:GetCoreObject() + if config["/me"] then TriggerEvent("chat:addSuggestion", "/me", "Send message in the third person (Proximity).", {{ name="Action", help="Describe your action."}}) end @@ -21,9 +23,12 @@ end if config["/911"].enabled then RegisterNetEvent("ND_Chat:911") AddEventHandler("ND_Chat:911", function(coords, callDescription) - local selectedCharacter = exports["ND_Core"]:getCharacterInfo() + local selectedCharacter + NDCore.Functions.GetSelectedCharacter(function(character) + selectedCharacter = character + end) for _, department in pairs(config["/911"].callTo) do - if selectedCharacter.department == department then + if selectedCharacter.job == department then local location = GetStreetNameFromHashKey(GetStreetNameAtCoord(coords.x, coords.y, coords.z)) TriggerEvent("chat:addMessage", { color = {255, 0, 0}, diff --git a/ND_Chat/source/server.lua b/ND_Chat/source/server.lua index 485e1f3..804d6b9 100644 --- a/ND_Chat/source/server.lua +++ b/ND_Chat/source/server.lua @@ -1,7 +1,10 @@ +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") + if config["/me"] then RegisterCommand("me", function(source, args, rawCommand) local player = source - local players = exports["ND_Core"]:getCharacterTable() + local players = NDCore.Functions.GetPlayers() local playerCoords = GetEntityCoords(GetPlayerPed(player)) for serverPlayer, _ in pairs(players) do local targetCoords = GetEntityCoords(GetPlayerPed(serverPlayer)) @@ -18,7 +21,7 @@ end if config["/gme"] then RegisterCommand("gme", function(source, args, rawCommand) local player = source - local players = exports["ND_Core"]:getCharacterTable() + local players = NDCore.Functions.GetPlayers() TriggerClientEvent("chat:addMessage", -1, { color = {255, 0, 0}, args = {"^*GME | ^0" .. players[player].firstName .. " " .. players[player].lastName .. " (#" .. player .. ")", table.concat(args, " ")} @@ -39,7 +42,7 @@ end if config["/twt"] then RegisterCommand("twt", function(source, args, rawCommand) local player = source - local players = exports["ND_Core"]:getCharacterTable() + local players = NDCore.Functions.GetPlayers() TriggerClientEvent("chat:addMessage", -1, { template = " {0}: {1}", multiline = true, @@ -50,17 +53,17 @@ end function hasDarkWebPermission(player, players, args) for _, department in pairs(config["/darkweb"].canNotSee) do - if players[player].dept == department then + if players[player].job == department then TriggerClientEvent("chat:addMessage", player, { color = {255, 0, 0}, - args = {"^*Error", players[player].dept .. " cannot access this command."} + args = {"^*Error", players[player].job .. " cannot access this command."} }) return false end end for serverPlayer, playerInfo in pairs(players) do for _, department in pairs(config["/darkweb"].canNotSee) do - if playerInfo.dept == department then + if playerInfo.job == department then return false end end @@ -74,7 +77,7 @@ end if config["/darkweb"].enabled then RegisterCommand("darkweb", function(source, args, rawCommand) local player = source - local players = exports["ND_Core"]:getCharacterTable() + local players = NDCore.Functions.GetPlayers() hasDarkWebPermission(player, players, args) end, false) end diff --git a/ND_Core/client/main.lua b/ND_Core/client/main.lua index 17f38d3..0eed6c5 100644 --- a/ND_Core/client/main.lua +++ b/ND_Core/client/main.lua @@ -1,22 +1,22 @@ -- For support join my discord: https://discord.gg/Z9Mxu72zZ6 NDCore = {} -NDCore.selectedCharacter = nil +NDCore.SelectedCharacter = nil NDCore.characters = {} -NDCore.functions = {} -NDCore.config = config +NDCore.Functions = {} +NDCore.Config = config function GetCoreObject() return NDCore end -function NDCore.functions:getSelectedCharacter(cb) - if not cb then return NDCore.selectedCharacter end - cb(NDCore.selectedCharacter) +function NDCore.Functions.GetSelectedCharacter(cb) + if not cb then return NDCore.SelectedCharacter end + cb(NDCore.SelectedCharacter) end -function NDCore.functions:getCharacters(cb) - if not cb then return NDCore.selectedCharacter end +function NDCore.Functions.GetCharacters(cb) + if not cb then return NDCore.SelectedCharacter end cb(NDCore.characters) end @@ -25,12 +25,12 @@ if config.enableRichPrecence then Citizen.CreateThread(function() SetDiscordAppId(config.appId) while true do - if NDCore.selectedCharacter then - SetRichPresence(" Playing : " .. config.serverName .. " as " .. NDCore.selectedCharacter.firstName .. " " .. NDCore.selectedCharacter.lastName) + if NDCore.SelectedCharacter then + SetRichPresence(" Playing : " .. config.serverName .. " as " .. NDCore.SelectedCharacter.firstName .. " " .. NDCore.SelectedCharacter.lastName) SetDiscordRichPresenceAsset(config.largeLogo) SetDiscordRichPresenceAssetText("Playing: " .. config.serverName) 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(1, config.secondButtonName, config.secondButtonLink) end @@ -44,13 +44,13 @@ if config.customPauseMenu then Citizen.CreateThread(function() while true do Citizen.Wait(0) - if NDCore.selectedCharacter then + if NDCore.SelectedCharacter then if IsPauseMenuActive() then BeginScaleformMovieMethodOnFrontendHeader("SET_HEADING_DETAILS") AddTextEntry("FE_THDR_GTAO", config.serverName) - ScaleformMovieMethodAddParamPlayerNameString(NDCore.selectedCharacter.firstName .. " " .. NDCore.selectedCharacter.lastName) - PushScaleformMovieFunctionParameterString("Cash: $" .. tostring(NDCore.selectedCharacter.cash)) - PushScaleformMovieFunctionParameterString("Bank: $" .. tostring(NDCore.selectedCharacter.bank)) + ScaleformMovieMethodAddParamPlayerNameString(NDCore.SelectedCharacter.firstName .. " " .. NDCore.SelectedCharacter.lastName) + PushScaleformMovieFunctionParameterString("Cash: $" .. tostring(NDCore.SelectedCharacter.cash)) + PushScaleformMovieFunctionParameterString("Bank: $" .. tostring(NDCore.SelectedCharacter.bank)) EndScaleformMovieMethod() end end @@ -66,13 +66,13 @@ end) -- updates the money on the client. RegisterNetEvent("ND:updateMoney") AddEventHandler("ND:updateMoney", function(cash, bank) - NDCore.selectedCharacter.cash = cash - NDCore.selectedCharacter.bank = bank + NDCore.SelectedCharacter.cash = cash + NDCore.SelectedCharacter.bank = bank end) RegisterNetEvent("ND:setCharacter") AddEventHandler("ND:setCharacter", function(character) - NDCore.selectedCharacter = character + NDCore.SelectedCharacter = character end) -- Enables pvp if it's selected in the config. diff --git a/ND_Core/server/events.lua b/ND_Core/server/events.lua index 1081bf0..e83c97b 100644 --- a/ND_Core/server/events.lua +++ b/ND_Core/server/events.lua @@ -1,49 +1,43 @@ -- For support join my discord: https://discord.gg/Z9Mxu72zZ6 -- Getting all the characters the player has and returning them to the client. -RegisterNetEvent("ND:getCharacters") -AddEventHandler("ND:getCharacters", function() +RegisterNetEvent("ND:GetCharacters", function() local player = source - TriggerClientEvent("ND:returnCharacters", player, NDCore.functions:getPlayerCharacters(player)) + TriggerClientEvent("ND:returnCharacters", player, NDCore.Functions.GetPlayerCharacters(player)) end) -- Creating a new character. -RegisterNetEvent("ND:newCharacter") -AddEventHandler("ND:newCharacter", function(newCharacter) +RegisterNetEvent("ND:newCharacter", function(newCharacter) 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) -- Update the character info when edited. -RegisterNetEvent("ND:editCharacter") -AddEventHandler("ND:editCharacter", function(newCharacter) +RegisterNetEvent("ND:editCharacter", function(newCharacter) 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) -- Delete character from database. -RegisterNetEvent("ND:deleteCharacter") -AddEventHandler("ND:deleteCharacter", function(characterId) +RegisterNetEvent("ND:deleteCharacter", function(characterId) local player = source - NDCore.functions:deleteCharacter(characterId) + NDCore.Functions.DeleteCharacter(characterId) end) -- add a player to the table. -RegisterNetEvent("ND:setCharacterOnline") -AddEventHandler("ND:setCharacterOnline", function(id) +RegisterNetEvent("ND:setCharacterOnline", function(id) local player = source - NDCore.functions:setActiveCharacter(player, id) + NDCore.Functions.SetActiveCharacter(player, id) end) -- Disconnecting a player -RegisterNetEvent("ND:exitGame") -AddEventHandler("ND:exitGame", function() +RegisterNetEvent("ND:exitGame", function() local player = source DropPlayer(player, "Disconnected.") end) --- Remove player from NDCore.players table when they leave. +-- Remove player from NDCore.Players table when they leave. AddEventHandler("playerDropped", function() local player = source - NDCore.players[player] = nil + NDCore.Players[player] = nil end) \ No newline at end of file diff --git a/ND_Core/server/functions.lua b/ND_Core/server/functions.lua index a18af07..f1540e7 100644 --- a/ND_Core/server/functions.lua +++ b/ND_Core/server/functions.lua @@ -1,13 +1,13 @@ -- For support join my discord: https://discord.gg/Z9Mxu72zZ6 -- Callback to update each selected character on the server. -function NDCore.functions:getPlayers(players) - if not cb then return NDCore.players end - cb(NDCore.players) +function NDCore.Functions.GetPlayers(players) + if not cb then return NDCore.Players end + cb(NDCore.Players) end -- 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 PerformHttpRequest("https://discordapp.com/api/guilds/" .. server_config.guildId .. "/members/" .. discordUserId, function(errorCode, resultData, resultHeaders) if errorCode ~= 200 then @@ -32,7 +32,7 @@ function NDCore.functions:getUserDiscordInfo(discordUserId) end -- 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) for count = 0, identifierCount do local identifier = GetPlayerIdentifier(player, count) @@ -44,9 +44,9 @@ function NDCore.functions:GetPlayerIdentifierFromType(type, player) end -- 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)) - for targetId, targetInfo in pairs(NDCore.players) do + for targetId, targetInfo in pairs(NDCore.Players) do local targetCoords = GetEntityCoords(GetPlayerPed(targetId)) if #(pedCoords - targetCoords) < 2.0 and targetId ~= player then return targetId, targetInfo @@ -55,21 +55,21 @@ function NDCore.functions:getNearbyPedToPlayer(player) end -- 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) - 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 local cash = result[1].cash local bank = result[1].bank - NDCore.players[player].cash = cash - NDCore.players[player].bank = bank + NDCore.Players[player].cash = cash + NDCore.Players[player].bank = bank TriggerClientEvent("ND:updateMoney", player, cash, bank) end end) end -- 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 player = tonumber(player) local target = tonumber(target) @@ -91,27 +91,27 @@ function NDCore.functions:transferBank(amount, player, target) args = {"Error", "You can't send that amount."} }) return false - elseif NDCore.players[player].bank < amount then + elseif NDCore.Players[player].bank < amount then TriggerClientEvent("chat:addMessage", player, { color = {255, 0, 0}, args = {"Error", "You don't have enough money."} }) return false else - MySQL.query.await("UPDATE characters SET bank = bank - ? WHERE character_id = ?", {amount, NDCore.players[player].id}) - NDCore.functions:updateMoney(player) - MySQL.query.await("UPDATE characters SET bank = bank + ? WHERE character_id = ?", {amount, NDCore.players[target].id}) - NDCore.functions:updateMoney(target) + MySQL.query.await("UPDATE characters SET bank = bank - ? WHERE character_id = ?", {amount, NDCore.Players[player].id}) + NDCore.Functions.UpdateMoney(player) + MySQL.query.await("UPDATE characters SET bank = bank + ? WHERE character_id = ?", {amount, NDCore.Players[target].id}) + NDCore.Functions.UpdateMoney(target) TriggerClientEvent("chat:addMessage", player, { 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 end end -- 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 player = tonumber(player) local target = tonumber(target) @@ -133,30 +133,30 @@ function NDCore.functions:giveCash(amount, player, target) args = {"Error", "You can't give that amount."} }) return false - elseif NDCore.players[player].cash < amount then + elseif NDCore.Players[player].cash < amount then TriggerClientEvent("chat:addMessage", player, { color = {255, 0, 0}, args = {"Error", "You don't have enough money."} }) return false else - MySQL.query.await("UPDATE characters SET cash = cash - ? WHERE character_id = ?", {amount, NDCore.players[player].id}) - NDCore.functions:updateMoney(player) - MySQL.query.await("UPDATE characters SET cash = cash + ? WHERE character_id = ?", {amount, NDCore.players[target].id}) - NDCore.functions:updateMoney(target) + MySQL.query.await("UPDATE characters SET cash = cash - ? WHERE character_id = ?", {amount, NDCore.Players[player].id}) + NDCore.Functions.UpdateMoney(player) + MySQL.query.await("UPDATE characters SET cash = cash + ? WHERE character_id = ?", {amount, NDCore.Players[target].id}) + NDCore.Functions.UpdateMoney(target) TriggerClientEvent("chat:addMessage", player, { 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 end end -- Give money from a players wallet to a nearby player. -function NDCore.functions:giveCashToNearbyPlayer(player, amount) - local targetId = NDCore.functions:getNearbyPedToPlayer(player) +function NDCore.Functions.GiveCashToNearbyPlayer(player, amount) + local targetId = NDCore.Functions.GetNearbyPedToPlayer(player) if targetId then - NDCore.functions:giveCash(amount, player, targetId) + NDCore.Functions.GiveCash(amount, player, targetId) return true end TriggerClientEvent("chat:addMessage", player, { @@ -167,59 +167,59 @@ function NDCore.functions:giveCashToNearbyPlayer(player, amount) end -- 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 player = tonumber(player) if amount <= 0 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 cash = cash + ? WHERE character_id = ?", {amount, NDCore.players[player].id}) - NDCore.functions:updateMoney(player) + 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 cash = cash + ? WHERE character_id = ?", {amount, NDCore.Players[player].id}) + NDCore.Functions.UpdateMoney(player) return true end -- 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 player = tonumber(player) if amount <= 0 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 bank = bank + ? WHERE character_id = ?", {amount, NDCore.players[player].id}) - NDCore.functions:updateMoney(player) + 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 bank = bank + ? WHERE character_id = ?", {amount, NDCore.Players[player].id}) + NDCore.Functions.UpdateMoney(player) return true end -- 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 player = tonumber(player) 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 - 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 - NDCore.functions:updateMoney(player) + NDCore.Functions.UpdateMoney(player) end -- 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 player = tonumber(player) 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 - 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 - NDCore.functions:updateMoney(player) + NDCore.Functions.UpdateMoney(player) end --- Adds the players character to the NDCore.players table, this table consists of every players selected character. -function NDCore.functions:setActiveCharacter(player, characterId) +-- Adds the players character to the NDCore.Players table, this table consists of every players selected character. +function NDCore.Functions.SetActiveCharacter(player, characterId) local result = MySQL.query.await("SELECT * FROM characters WHERE character_id = ?", {characterId}) if result then local i = result[1] - NDCore.players[player] = { + NDCore.Players[player] = { id = characterId, firstName = i.first_name, lastName = i.last_name, @@ -231,13 +231,13 @@ function NDCore.functions:setActiveCharacter(player, characterId) bank = i.bank } end - TriggerClientEvent("ND:setCharacter", player, NDCore.players[player]) + TriggerClientEvent("ND:setCharacter", player, NDCore.Players[player]) end -- This returns all the characters the player has. -function NDCore.functions:getPlayerCharacters(player) +function NDCore.Functions.GetPlayerCharacters(player) 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 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} @@ -246,8 +246,8 @@ function NDCore.functions:getPlayerCharacters(player) end -- 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) - local license = NDCore.functions:GetPlayerIdentifierFromType("license", player) +function NDCore.Functions.CreateCharacter(player, firstName, lastName, dob, gender, twt, job, cash, bank) + local license = NDCore.Functions.GetPlayerIdentifierFromType("license", player) if not cash or not bank or tonumber(cash) > config.startingCash or tonumber(bank) > config.startingBank then cash = config.startingCash 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}) 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}) - TriggerClientEvent("ND:returnCharacters", player, NDCore.functions:getPlayerCharacters(player)) + TriggerClientEvent("ND:returnCharacters", player, NDCore.Functions.GetPlayerCharacters(player)) end end -- 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}) end -- 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}) end -function NDCore.functions:versionChecker(expectedResourceName, resourceName, downloadLink, rawGithubLink) +function NDCore.Functions.VersionChecker(expectedResourceName, resourceName, downloadLink, rawGithubLink) 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!") @@ -306,4 +306,4 @@ function NDCore.functions:versionChecker(expectedResourceName, resourceName, dow 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") \ No newline at end of file +NDCore.Functions.VersionChecker("ND_Core", GetCurrentResourceName(), "https://github.com/Andyyy7666/ND_Framework", "https://raw.githubusercontent.com/Andyyy7666/ND_Framework/main/ND_Core/fxmanifest.lua") \ No newline at end of file diff --git a/ND_Core/server/main.lua b/ND_Core/server/main.lua index 4e50494..2d0fa67 100644 --- a/ND_Core/server/main.lua +++ b/ND_Core/server/main.lua @@ -1,9 +1,9 @@ -- For support join my discord: https://discord.gg/Z9Mxu72zZ6 NDCore = {} -NDCore.players = {} -NDCore.functions = {} -NDCore.config = config +NDCore.Players = {} +NDCore.Functions = {} +NDCore.Config = config function GetCoreObject() return NDCore diff --git a/ND_Doorlocks/source/client.lua b/ND_Doorlocks/source/client.lua index 00723d0..ddc61a4 100644 --- a/ND_Doorlocks/source/client.lua +++ b/ND_Doorlocks/source/client.lua @@ -1,7 +1,7 @@ -- For support join my discord: https://discord.gg/Z9Mxu72zZ6 NDCore = exports["ND_Core"]:GetCoreObject() -local job = NDCore.functions:getSelectedCharacter().job +local job = nil local hasAccess = false function drawText3D(coords, text) diff --git a/ND_Doorlocks/source/server.lua b/ND_Doorlocks/source/server.lua index ce23eb4..c611699 100644 --- a/ND_Doorlocks/source/server.lua +++ b/ND_Doorlocks/source/server.lua @@ -1,7 +1,7 @@ -- For support join my discord: https://discord.gg/Z9Mxu72zZ6 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 = {} diff --git a/ND_Jailing/fxmanifest.lua b/ND_Jailing/fxmanifest.lua index f00827d..ca54abb 100644 --- a/ND_Jailing/fxmanifest.lua +++ b/ND_Jailing/fxmanifest.lua @@ -2,7 +2,7 @@ author "Andyyy#7666" description "ND Framework Jailing" -version "2.1.0" +version "2.2.0" fx_version "cerulean" game "gta5" diff --git a/ND_Jailing/source/client.lua b/ND_Jailing/source/client.lua index 20005bf..5018f15 100644 --- a/ND_Jailing/source/client.lua +++ b/ND_Jailing/source/client.lua @@ -41,7 +41,7 @@ function drawText3D(coords, text) end function hasAccess() - local job = NDCore.functions:getSelectedCharacter().job + local job = NDCore.Functions.GetSelectedCharacter().job for _, department in pairs(config.accessDepartments) do if department == job then return true diff --git a/ND_Jailing/source/server.lua b/ND_Jailing/source/server.lua index fa6daa6..2a50d4f 100644 --- a/ND_Jailing/source/server.lua +++ b/ND_Jailing/source/server.lua @@ -1,5 +1,5 @@ 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 = {} @@ -35,12 +35,12 @@ end RegisterNetEvent("ND_Jailing:jailPlayer") AddEventHandler("ND_Jailing:jailPlayer", function(id, time, fine, reason) local player = source - local players = exports["ND_Core"]:getCharacterTable() - local dept = players[player].dept + local players = NDCore.Functions.GetPlayers() + local dept = players[player].job for _, department in pairs(config.accessDepartments) do if department == dept then jailedPlayers[GetPlayerIdentifierFromType("license", id)] = time - exports["ND_Core"]:deductMoney(fine, id, "bank") + NDCore.Functions.DeductMoney(fine, id, "bank") TriggerClientEvent("ND_Jailing:jailPlayer", id, time) sendToDiscord("Jail Logs", "**" .. GetPlayerName(player) .. "** Jailed **" .. GetPlayerName(id) .. "** for **" .. time .. " seconds** with the reason: **" .. reason .. "**.", 1595381) TriggerClientEvent('chat:addMessage', -1, { diff --git a/ND_Jailing/source/ui/index.html b/ND_Jailing/source/ui/index.html index 75f2ca7..569ecec 100644 --- a/ND_Jailing/source/ui/index.html +++ b/ND_Jailing/source/ui/index.html @@ -16,13 +16,13 @@ - + - + - +

diff --git a/ND_ShotSpotter/source/client.lua b/ND_ShotSpotter/source/client.lua index ad279c2..062578c 100644 --- a/ND_ShotSpotter/source/client.lua +++ b/ND_ShotSpotter/source/client.lua @@ -26,7 +26,7 @@ end -- check if the players department can receive shot spotter alerts. function isCop() - local job = NDCore.functions:getSelectedCharacter().job + local job = NDCore.Functions.GetSelectedCharacter().job for _, department in pairs(config.receiveAlerts) do if department == job then return true diff --git a/ND_ShotSpotter/source/server.lua b/ND_ShotSpotter/source/server.lua index 5666879..5aaa754 100644 --- a/ND_ShotSpotter/source/server.lua +++ b/ND_ShotSpotter/source/server.lua @@ -1,7 +1,7 @@ -- For support join my discord: https://discord.gg/Z9Mxu72zZ6 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") AddEventHandler("ND_ShotSpotter:Trigger", function(street, pedCoords, postal, zoneName)