Merge pull request 'NEW: CALL GB.NEW: CALLBACKS' (#2) from feature/server-events into main
Reviewed-on: #2
This commit was merged in pull request #2.
This commit is contained in:
153
events/sv_events.lua
Normal file
153
events/sv_events.lua
Normal file
@@ -0,0 +1,153 @@
|
||||
--// CALL GB.\\--
|
||||
GB.Functions = GB.Functions or {}
|
||||
GB.Commands = {}
|
||||
GB.CommandsSuggestions = {}
|
||||
GB.ServerCallbacks = GB.ServerCallbacks or {}
|
||||
GB.ServerCallback = {}
|
||||
|
||||
--// CALLBACKS \\--
|
||||
GB.Functions.RegisterServerCallback = function(name, cb)
|
||||
GB.ServerCallback[name] = cb
|
||||
end
|
||||
|
||||
GB.Functions.TriggerServerCallback = function(name, requestId, source, cb, ...)
|
||||
if GB.ServerCallbacks[name] ~= nil then
|
||||
GB.ServerCallbacks[name](source, cb, ...)
|
||||
end
|
||||
end
|
||||
|
||||
--// FUNCTIONS \\--
|
||||
GB.Functions.getPlayer() = function(source)
|
||||
if GB.Players[source] ~= nil then
|
||||
return GB.Players[source]
|
||||
end
|
||||
end
|
||||
|
||||
GB.Functions.AdminPlayer = function (source) -- ADMIN
|
||||
if GB.APlayers[source] ~= nil then
|
||||
return GB.APlayers[source]
|
||||
end
|
||||
end
|
||||
|
||||
--// EVENTS \\--
|
||||
RegisterNetEvent('gb-core:server:updatePlayer')
|
||||
AddEventHandler('gb-core:server:updatePlayer', function()
|
||||
local src = source
|
||||
local player = GB.Functions.GetPlayer(src)
|
||||
if player then
|
||||
Player.Functions.Save()
|
||||
end
|
||||
end)
|
||||
|
||||
--// SQL \\--
|
||||
GB.Functions.CreatePlayer = function(source, Data)
|
||||
exports['ghmattimysql']:execute(`INSERT INTO players (`Identifier`, `license`, `name`, `cash`, `bank`) VALUES (@identifier), (@license), (@name), (@cash), (@bank)`, {
|
||||
['identifier'] = Data.identifier,
|
||||
['license'] = Data.license,
|
||||
['name'] = Data.name,
|
||||
['cash'] = Data.cash,
|
||||
['bank'] = Data.bank
|
||||
})
|
||||
|
||||
print('[GB-Core] ' ..Data.name..' was created successfully')
|
||||
|
||||
GB.Functions.LoadPlayer(source, Data)
|
||||
end
|
||||
|
||||
GB.Functions.LoadPlayer = function(source, pData, cid)
|
||||
local src = source
|
||||
local identifier = pData.identifier
|
||||
|
||||
Citizen.Wait(7)
|
||||
exports['ghmattimysql']:execute(`SELECT * FROM players WHERE identifier = @identifier AND cid = @cid`, {['@identifier'] = identifier, ['@cid'] = cid}, function(result)
|
||||
-- SERVER
|
||||
exports['ghmattimysql']:execute(`UPDATE players SET name = @name WHERE identifier = @identifier AND cid = @cid`, {['@identifier'] = identifier, ['@name'] = pData.name ['@cid'] = cid})
|
||||
|
||||
GB.Player.LoadData(source, identifier, cid)
|
||||
Citizen.Wait(7)
|
||||
local player = GB.Functions.getPlayer(source)
|
||||
TriggerClientEvent('gb-setCharacterData', source {
|
||||
identifier = result[1].identifier,
|
||||
license = result[1].license,
|
||||
cid = result[1].cid,
|
||||
name = result[1].name,
|
||||
cash = result[1].cash,
|
||||
bank = result[1].bank,
|
||||
citizenId = result[1].citizenId,
|
||||
})
|
||||
|
||||
TriggerClientEvent('gb-core:playerLoaded', source)
|
||||
-- TODO: TriggerClientEvent() for UI
|
||||
-- TODO: Trigger for ADMIN
|
||||
end)
|
||||
end
|
||||
|
||||
--// COMMANDS \\--
|
||||
GB.Functions.addCommand = function(command, callback, suggestion, args)
|
||||
GB.Commands[command] = {}
|
||||
GB.Commands[command].perm = math.maxInteger
|
||||
GB.Commands[command].group = group
|
||||
GB.Commands[command].cmd = callback
|
||||
GB.Commands[command].callbackfailed = callbackfailed
|
||||
GB.Commands[command].arguments = arguments or -1
|
||||
|
||||
if suggestion then
|
||||
if not suggestion.params or not type(suggestion.params) == "table" then suggestion.params = {} end
|
||||
if not suggestion.help or not type(suggestion.help) == "string" then suggestion.help = "" end
|
||||
|
||||
GB.CommandsSuggestions[command] = suggestion
|
||||
end
|
||||
|
||||
ExecuteCommand('add_ace group.' .. group .. ' command.' .. command .. ' allow')
|
||||
|
||||
RegisterCommand(command, function(source, args)
|
||||
local src = source
|
||||
local pData = GB.Functions.AgetPlayer(src)
|
||||
|
||||
if (src ~= 0) then
|
||||
if pData ~= then
|
||||
if pData.Data.usergroup == GB.Commands[command].group then
|
||||
if ((#args <= GB.Commands[command].arguments and #args == GB.Commands[command].arguments) or GB.Commands[command].arguments == -1) then
|
||||
callback(src, args, GB.Players[src])
|
||||
else
|
||||
callbackfailed(src, args, GB.Players[src])
|
||||
end
|
||||
end
|
||||
else
|
||||
if ((#args <= GB.Commands[command].arguments and #args == GB.Commands[command].arguments) or GB.Commands[command].arguments == -1) then
|
||||
callback(src, args, GB.Players[src])
|
||||
end
|
||||
end
|
||||
end
|
||||
end, true)
|
||||
end
|
||||
|
||||
--// GROUPS \\--
|
||||
GB.Functions.setupAdmin = function(player, group)
|
||||
local identifier = player.Data.identifier
|
||||
local pCid = player.Data.cid
|
||||
|
||||
exports['ghmattimysql']:execute(`DELETE FROM ranking WHERE identifier = @identifier`, {['@identifier'] = identifier})
|
||||
Wait(1000)
|
||||
|
||||
exports['ghmattimysql']:execute(`INSERT INTO ranking (`usergroup`, `identifier`) VALUES (@usergroup, @identifier)`, {
|
||||
['@usergroup'] = group,
|
||||
['@identifier'] = identifier
|
||||
})
|
||||
print('[GB-Core] Function Group: ' .. group)
|
||||
TriggerClientEvent('gb-admin:updateGroup', player.Data.PlayerId, group)
|
||||
end
|
||||
|
||||
GB.function.BuildCommands = function(source)
|
||||
local src = source
|
||||
for k, v in pairs(GB.CommandsSuggestions) do
|
||||
TriggerClientEvent('chat:addSuggestion', src, '/'..k, v.help, v.params)
|
||||
end
|
||||
end
|
||||
|
||||
GB.function.ClearCommands = function(source)
|
||||
local src = source
|
||||
for k, v in pairs(GB.CommandsSuggestions) do
|
||||
TriggerClientEvent('chat:addSuggestion', src, '/'..k, v.help, v.params)
|
||||
end
|
||||
end
|
||||
@@ -13,6 +13,7 @@ client_scripts {
|
||||
}
|
||||
|
||||
server_scripts {
|
||||
'core/sv_core.lua'
|
||||
'core/sv_core.lua',
|
||||
'events/sv_events.lua'
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user