Files
2021-12-03 01:05:09 +00:00

89 lines
2.8 KiB
Lua

RegisterServerEvent('mapbuilder:syncObject')
AddEventHandler('mapbuilder:syncObject', function(hash, loc, heading, freeze)
print('sync ' .. hash .. loc .. heading)
TriggerClientEvent('mapbuilder:spawnObject', -1, hash, loc, heading, freeze)
end)
RegisterServerEvent('mapbuilder:syncObjectRemove')
AddEventHandler('mapbuilder:syncObjectRemove', function(objectID, hash)
TriggerClientEvent('mapbuilder:deleteObject', -1, objectID, hash)
end)
RegisterServerEvent('mapbuilder:saveToDatabase')
AddEventHandler('mapbuilder:saveToDatabase', function(hash, loc, heading, freeze, comment)
local identifier = GetPlayerIdentifiers(source)[1]
MySQL.Async.execute(
'INSERT INTO mapbuilder (objectHash, locX, locY, locZ, heading, freeze, createdBy, comment) VALUES (@objectHash, @locX, @locY, @locZ, @heading, @freeze, @createdBy, @comment)', {
['@objectHash'] = hash,
['@locX'] = loc.x,
['@locY'] = loc.y,
['@locZ'] = loc.z,
['@heading'] = heading,
['@freeze'] = freeze,
['@createdBy'] = identifier,
['@comment'] = comment,
})
end)
RegisterServerEvent('mapbuilder:removeFromDatabase')
AddEventHandler('mapbuilder:removeFromDatabase', function(objectID, hash)
MySQL.Async.execute(
'DELETE FROM mapbuilder WHERE id = @id and objectHash = @objectHash', {
['@id'] = objectID,
['@objectHash'] = hash,
})
end)
RegisterServerEvent('mapbuilder:updateObject')
AddEventHandler('mapbuilder:updateObject', function(objectID, loc, heading, freeze)
MySQL.Async.execute(
'UPDATE mapbuilder SET locX = @locX, locY = @locY, locZ = @locZ, heading = @heading, freeze = @freeze WHERE id = @id', {
['@id'] = objectID,
['@locX'] = loc.x,
['@locY'] = loc.y,
['@locZ'] = loc.z,
['@heading'] = heading,
['@freeze'] = freeze,
})
TriggerClientEvent('mapbuilder:updateObject', -1, objectID, loc, heading, freeze)
end)
-- no callback to avoid using ESX
RegisterServerEvent('mapbuilder:getObjects')
AddEventHandler('mapbuilder:getObjects', function()
local _source = source
local steamID = GetPlayerIdentifiers(_source)[1]
MySQL.Async.fetchAll('SELECT * FROM mapbuilder', {},
function(result)
if #result > 0 then
TriggerClientEvent('mapbuilder:receiveObjects', _source, result)
end
end
)
local isWhitelisted = false
for k, v in pairs(Config.SteamWhitelist) do
if v == steamID then
isWhitelisted = true
break
end
end
local isAdmin = false
for k, v in pairs(Config.AdminWhitelist) do
if v == steamID then
isAdmin = true
break
end
end
TriggerClientEvent('mapbuilder:getPerm', _source, steamID, isWhitelisted, isAdmin)
end)