Scripts/resources/[hp]/hp_multichar/server/main.lua
2024-12-29 20:48:41 +01:00

133 lines
4.2 KiB
Lua

Framework = Config.Framework == "esx" and exports['es_extended']:getSharedObject() or exports['qb-core']:GetCoreObject()
RegisterServerEvent("hp_multichar:playerConnected", function ()
local src = source
local random = math.random(10, 999999)
TriggerClientEvent("hp_multichar:getOldBucket", src, 0)
SetPlayerRoutingBucket(src, math.random(random, 999999999999))
if Config.Framework == "qb" then
local data = GetUserPlayers(src)
if data and next(data) then
TriggerClientEvent("hp_multichar:playerConnected", src, data.charData, data.purchasedSlots)
else
TriggerClientEvent("hp_multichar:playerConnected", src, {}, 0)
end
end
end)
RegisterServerCallback("hp_multichar:server:getSkin", function(_, cb, identifier)
if Config.Framework == "qb" then
local result = MysqlQuery("SELECT * FROM playerskins WHERE citizenid = '"..identifier.."' AND active = 1")
if result[1] ~= nil then
cb(result[1].model, result[1].skin)
else
cb(nil)
end
else
local result = MysqlQuery("SELECT * FROM skin WHERE identifier = '"..identifier.."'")
if result[1] ~= nil then
cb(result[1])
else
cb(nil)
end
end
end)
RegisterServerCallback("hp_multichar:server:deleteCharacter", function(src, cb, identifier)
if Config.Framework == "qb" then
MysqlQuery("DELETE FROM players WHERE citizenid = '"..identifier.."'")
Wait(100)
local data = GetUserPlayers(src)
cb(data)
end
end)
RegisterServerCallback("hp_multichar:codeUsed", function(src, cb, code)
local result = MysqlQuery("SELECT * FROM hp_multichar_codes WHERE code = '"..code.."'")
if result[1] ~= nil then
if result[1].used == 1 then
cb(false)
else
TriggerClientEvent("hp_multichar:refreshSlots", src)
MysqlQuery("UPDATE hp_multichar_codes SET used = 1 WHERE code = '"..code.."'")
Wait(100)
MysqlQuery("INSERT INTO hp_multichar (identifier, uses) VALUES('"..GetPlayerLicense(src).."', 1) ON DUPLICATE KEY UPDATE uses = uses + 1")
cb(true)
end
else
cb(false)
end
end)
RegisterNetEvent('hp_multichar:qb:createCharacter', function(data, oldBucket)
local src = source
local newData = {}
newData.cid = data.cid
newData.charinfo = data
newData.charinfo.gender = newData.charinfo.gender == "m" and 0 or 1
if Framework.Player.Login(src, false, newData) then
if Config.UseQbApartments and GetResourceState('qb-apartments') == 'started' then
local randbucket = (GetPlayerPed(src) .. math.random(1,999))
SetPlayerRoutingBucket(src, randbucket)
Framework.Commands.Refresh(src)
LoadHouseData(src)
TriggerClientEvent('apartments:client:setupSpawnUI', src, newData)
GiveStarterItems(src)
else
Framework.Commands.Refresh(src)
SetPlayerRoutingBucket(src, oldBucket)
LoadHouseData(src)
GiveStarterItems(src)
Config.OnLoad(src, newData, Config.SpawnCoords, true)
end
end
end)
RegisterNetEvent('hp_multichar:qb:loadUserData', function(cData)
local src = source
if Framework.Player.Login(src, cData.citizenid) then
Framework.Commands.Refresh(src)
LoadHouseData(src)
Config.OnLoad(src, cData, json.decode(cData.position), false)
end
end)
RegisterNetEvent('hp_multichar:server:sendOldBucket', function(bucket)
local src = source
SetPlayerRoutingBucket(src, bucket)
end)
-- RegisterCommand('madepurchasefromtebex', function(source, args)
-- print("Made purchase from TEBEX", args[1])
-- local src = source
-- local inProgress = false
-- if src == 0 then
-- local tbxid = args[1]
-- while inProgress do
-- Wait(1000)
-- end
-- inProgress = true
-- local result = MysqlQuery("SELECT * FROM hp_multichar_codes WHERE code = '"..tbxid.."'")
-- if result[1] == nil then
-- MysqlQuery("INSERT INTO hp_multichar_codes (code) VALUES ('"..tbxid.."')")
-- end
-- inProgress = false
-- end
-- end, false)