9 Commits

Author SHA1 Message Date
Andyyy7666
1b6870dd87 Create .gitignore 2022-12-25 16:50:31 +01:00
Andyyy7666
aa73db1111 fix: index id twice 2022-12-25 16:46:25 +01:00
Andyyy7666
68563c6d18 fix: saving clothes by character id error 2022-12-25 16:39:49 +01:00
Andyyy7666
a9d42b9861 Update README.md 2022-12-25 14:50:25 +01:00
Andyyy7666
eac4de4623 feat: import core object 2022-12-24 17:01:28 +01:00
Andyyy7666
08815f2ecd feat: callbacks 2022-12-24 17:01:07 +01:00
Andyyy7666
88e8a4218a fix: nil value in version checker from wrong links 2022-12-19 19:54:43 +01:00
Andyyy7666
99b8d85901 Merge pull request #34 from marshular/main
Added more addons to list
2022-12-19 19:43:33 +01:00
Marshular's Development
378e552fe7 Added more addons to list 2022-12-19 10:41:04 -08:00
7 changed files with 120 additions and 10 deletions

2
.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
config_server.lua

View File

@@ -4,19 +4,25 @@
<p align='center'><b><a href="discord.gg/nc82d8zvjm">Discord</a></b>
<p align='center'><b><a href="https://ndframework.gitbook.io/nd-framework/">Documentation</a></b>
<p align='center'><b><a href="https://ndfw.gitbook.io/nd-framework/">Documentation</a></b>
## Dependency:
[oxmysql](https://github.com/overextended/oxmysql/releases/download/v2.4.0/oxmysql.zip)
## Addons
* [Ox Inventory](https://github.com/overextended/ox_inventory/releases)
* [Character Selection](https://github.com/ND-Framework/ND_CharacterSelection)
* [No Characters (use framework without character selection)](https://github.com/ND-Framework/ND_NoCharacters)
* [Vehicle System](https://github.com/ND-Framework/ND_VehicleSystem)
* [Dealerships](https://github.com/ND-Framework/ND_Dealership)
* [Fuel (with nozzle and hose)](https://github.com/ND-Framework/ND_Fuel)
* [Nitro](https://github.com/ND-Framework/ND_Nitro)
* [Shot Spotter](https://github.com/ND-Framework/ND_ShotSpotter)
* [Banking](https://github.com/ND-Framework/ND_Banking)
* [Door locks](https://github.com/ND-Framework/ND_Doorlocks)
* [Ox Inventory](https://github.com/overextended/ox_inventory/releases)
* [No Characters (use framework without character selection)](https://github.com/ND-Framework/ND_NoCharacters)
* [Doorlocks](https://github.com/ND-Framework/ND_Doorlocks)
* [Properties](https://github.com/ND-Framework/ND_Properties)
* [Appearance Shops](https://github.com/ND-Framework/ND_AppearanceShops)
# Need support?
[![Need Support?](https://user-images.githubusercontent.com/86536434/147299047-73691b78-2690-4786-b58b-27d24e48a0d2.png)](https://discord.gg/Z9Mxu72zZ6)
[![Discord](https://discordapp.com/api/guilds/857672921912836116/widget.png?style=banner3)](https://discord.gg/Z9Mxu72zZ6)

View File

@@ -8,4 +8,52 @@ end
function NDCore.Functions.GetCharacters()
return NDCore.Characters
end
-- Callbacks are licensed under LGPL v3.0
-- <https://github.com/overextended/ox_lib>
NDCore.callback = {}
local events = {}
RegisterNetEvent("ND:callbacks", function(key, ...)
local cb = events[key]
return cb and cb(...)
end)
local function triggerCallback(_, name, cb, ...)
local key = ("%s:%s"):format(name, math.random(0, 100000))
TriggerServerEvent(("ND:%s_cb"):format(name), key, ...)
local promise = not cb and promise.new()
events[key] = function(response, ...)
response = { response, ... }
events[key] = nil
if promise then
return promise:resolve(response)
end
if cb then
cb(table.unpack(response))
end
end
if promise then
return table.unpack(Citizen.Await(promise))
end
end
setmetatable(NDCore.callback, {
__call = triggerCallback
})
function NDCore.callback.await(name, ...)
return triggerCallback(nil, name, false, ...)
end
function NDCore.callback.register(name, callback)
RegisterNetEvent(("ND:%s_cb"):format(name), function(key, ...)
TriggerServerEvent("ND:callbacks", key, callback(...))
end)
end

View File

@@ -15,16 +15,17 @@ shared_scripts {
client_scripts {
"client/main.lua",
"client/functions.lua",
"client/events.lua"
"client/events.lua",
"shared/import.lua"
}
server_scripts {
"@oxmysql/lib/MySQL.lua",
"config_server.lua",
"server/main.lua",
"server/functions.lua",
"server/events.lua",
"server/commands.lua"
"server/commands.lua",
"shared/import.lua"
}
exports {

View File

@@ -68,7 +68,8 @@ end)
-- Update the characters clothes.
RegisterNetEvent("ND:updateClothes", function(clothing)
local player = source
NDCore.Functions.SetPlayerData(player, "clothing", clothing)
local character = NDCore.Players[player]
NDCore.Functions.SetPlayerData(character.id, "clothing", clothing)
end)
-- Disconnecting a player
@@ -111,4 +112,4 @@ AddEventHandler("onResourceStart", function(resourceName)
NDCore.PlayersDiscordInfo[tonumber(playerId)] = discordInfo
end
end
end)
end)

View File

@@ -690,6 +690,7 @@ function NDCore.Functions.VersionChecker(expectedResourceName, resourceName, dow
end
PerformHttpRequest(rawGithubLink, function(errorCode, resultData, resultHeaders)
local i, j = tostring(resultData):find("version")
if not i or not j then return end
local resultData = tostring(resultData):sub(i, j + 12)
local resultData = resultData:gsub("version \"", "")
local i, j = resultData:find("\"")
@@ -717,3 +718,53 @@ function NDCore.Functions.VersionChecker(expectedResourceName, resourceName, dow
end)
end
NDCore.Functions.VersionChecker("ND_Core", GetCurrentResourceName(), "https://github.com/ND-Framework/ND_Core", "https://raw.githubusercontent.com/ND-Framework/ND_Core/main/fxmanifest.lua")
-- Callbacks are licensed under LGPL v3.0
-- <https://github.com/overextended/ox_lib>
NDCore.callback = {}
local events = {}
RegisterNetEvent("ND:callbacks", function(key, ...)
local cb = events[key]
return cb and cb(...)
end)
function triggerCallback(_, name, playerId, cb, ...)
local key = ("%s:%s:%s"):format(name, math.random(0, 100000), playerId)
TriggerClientEvent(("ND:%s_cb"):format(name), playerId, key, ...)
local promise = not cb and promise.new()
events[key] = function(response, ...)
response = { response, ... }
events[key] = nil
if promise then
return promise:resolve(response)
end
if cb then
cb(table.unpack(response))
end
end
if promise then
return table.unpack(Citizen.Await(promise))
end
end
setmetatable(NDCore.callback, {
__call = triggerCallback
})
function NDCore.callback.await(name, playerId, ...)
return triggerCallback(nil, name, playerId, false, ...)
end
function NDCore.callback.register(name, callback)
RegisterNetEvent(("ND:%s_cb"):format(name), function(key, ...)
local src = source
TriggerClientEvent("ND:callbacks", src, key, callback(src, ...))
end)
end

1
shared/import.lua Normal file
View File

@@ -0,0 +1 @@
NDCore = exports["ND_Core"]:GetCoreObject()