Merge branch 'qbcore-framework:main' into main

This commit is contained in:
Zerio
2022-12-17 01:18:57 +01:00
committed by GitHub
8 changed files with 5394 additions and 4462 deletions
+1 -1
View File
@@ -2,7 +2,7 @@ fx_version 'cerulean'
game 'gta5'
description 'QB-Core'
version '1.1.0'
version '1.2.1'
shared_scripts {
'config.lua',
+2
View File
@@ -17,6 +17,8 @@ local Translations = {
no_permission = 'You don\'t have permissions for this..',
no_waypoint = 'No Waypoint Set.',
tp_error = 'Error While Teleporting.',
connecting_database_error = 'A database error occurred while connecting to the server. (Is the SQL server on?)',
connecting_database_timeout = 'Connection to database timed out. (Is the SQL server on?)',
},
success = {
server_opened = 'The server has been opened',
+105 -5
View File
@@ -7,18 +7,118 @@ local Translations = {
no_access = 'Não tens acesso a este comando',
company_too_poor = 'A tua empresa está falida',
item_not_exist = 'O item não existe',
too_heavy = 'Inventário cheio'
too_heavy = 'Inventário cheio',
location_not_exist = 'Localização não existe',
duplicate_license = 'Licença Rockstar duplicada',
no_valid_license = 'Licença Rockstar não encontrada',
not_whitelisted = 'Não estás na whitelist deste servidor',
server_already_open = 'O Servidor já se encontra aberto',
server_already_closed = 'O Servidor já se encontra fechado',
no_permission = 'Não tem permissões para isto',
no_waypoint = 'Não colocou nenhum waypoint',
tp_error = 'Erro ao teleportar',
connecting_database_error = 'Um erro na base de dados ocorreu enquanto se conecatava ao servidor. (SQL Server Ligado?)',
connecting_database_timeout = 'Falhou a ligação à base de dados. (SQL server Ligado?)',
},
success = {
server_opened = 'O Servidor abriu',
server_closed = 'O Servidor fechou',
teleported_waypoint = 'Teleportado para o waypoint.',
},
success = {},
info = {
received_paycheck = 'Recebeste o pagamento de %{value}€',
job_info = 'Emprego: %{value} | Grau: %{value2} | Serviço: %{value3}',
gang_info = 'Gang: %{value} | Grau: %{value2}',
on_duty = 'Agora estás de serviço!',
off_duty = 'Agora estás fora de serviço!'
}
off_duty = 'Agora estás fora de serviço!',
checking_ban = 'Olá %s. Estamos a verificar se estás banido.',
join_server = 'Bem vindo %s ao {Server Name}.',
checking_whitelisted = 'Bem vindo %s. Estamos a verificiar se estás na whitelist.',
exploit_banned = 'Foste banidos por cheats. Para mais informações visita o nosso discord: %{discord}',
exploit_dropped = 'Foste kickado por cheats!',
},
command = {
tp = {
help = 'TP para jogador ou coordenadas (Apenas Admin)',
params = {
x = { name = 'id/x', help = 'ID do jogador ou posição X'},
y = { name = 'y', help = 'Posição Y'},
z = { name = 'z', help = 'Posição Z'},
},
},
tpm = { help = 'TP para Marcador (Apenas Admin)' },
togglepvp = { help = 'Ligar /Desligar PVP no servidor (Apenas Admin)' },
addpermission = {
help = 'Dar Permissões a jogador (Apenas God)',
params = {
id = { name = 'id', help = 'ID do jogador' },
permission = { name = 'permission', help = 'Nivel de permissão' },
},
},
removepermission = {
help = 'Remover permissão de jogador (Apenas God)',
params = {
id = { name = 'id', help = 'ID do jogador' },
permission = { name = 'permission', help = 'Nivel de permissão' },
},
},
openserver = { help = 'Abrir o Servidor para todos (Apenas Admin)' },
closeserver = {
help = 'Fechar o servidor para todos excepto Admins (Apenas Admin)',
params = {
reason = { name = 'reason', help = 'Razão para fechar(opcional)' },
},
},
car = {
help = 'Spawnar Veículo (Apenas Admin)',
params = {
model = { name = 'model', help = 'Modelo do veículo' },
},
},
dv = { help = 'Apagar Veículo (Apenas Admin)' },
givemoney = {
help = 'Dar dinheiro a jogador (Apenas Admin)',
params = {
id = { name = 'id', help = 'ID do jogador' },
moneytype = { name = 'moneytype', help = 'Tipo (cash, bank, crypto)' },
amount = { name = 'amount', help = 'Quantidade de dinheiro' },
},
},
setmoney = {
help = 'Definir a quantia de dinheiro do jogador (Apenas Admin)',
params = {
id = { name = 'id', help = 'ID do jogador' },
moneytype = { name = 'moneytype', help = 'Tipo(cash, bank, crypto)' },
amount = { name = 'amount', help = 'Quantidade de dinheiro' },
},
},
job = { help = 'Ver o teu trabalho' },
setjob = {
help = 'Definir o trabalho de 1 jogador (Apenas Admin)',
params = {
id = { name = 'id', help = 'ID do jogador' },
job = { name = 'job', help = 'Nome do trabalho' },
grade = { name = 'grade', help = 'Nivel do trabalho' },
},
},
gang = { help = 'Ver o teu Gang' },
setgang = {
help = 'Definir o Gang de um jogador (Apenas Admin)',
params = {
id = { name = 'id', help = 'ID do jogador' },
gang = { name = 'gang', help = 'Nome do Gang' },
grade = { name = 'grade', help = 'Nível/ Posição no Gang' },
},
},
ooc = { help = 'Mensagem Chat em OOC' },
me = {
help = 'Mostrar Mensagem local',
params = {
message = { name = 'message', help = 'Menssagem a enviar' }
},
},
},
}
if GetConvar('qb_locale', 'en') == 'pt' then
Lang = Locale:new({
phrases = Translations,
+54 -24
View File
@@ -34,8 +34,6 @@ local function onPlayerConnecting(name, _, deferrals)
end
end
deferrals.update(string.format(Lang:t('info.checking_ban'), name))
for _, v in pairs(identifiers) do
if string.find(v, 'license') then
license = v
@@ -43,30 +41,62 @@ local function onPlayerConnecting(name, _, deferrals)
end
end
-- Mandatory wait
Wait(2500)
deferrals.update(string.format(Lang:t('info.checking_whitelisted'), name))
local isBanned, Reason = QBCore.Functions.IsPlayerBanned(src)
local isLicenseAlreadyInUse = QBCore.Functions.IsLicenseInUse(license)
local isWhitelist, whitelisted = QBCore.Config.Server.Whitelist, QBCore.Functions.IsWhitelisted(src)
Wait(2500)
deferrals.update(string.format(Lang:t('info.join_server'), name))
if not license then
deferrals.done(Lang:t('error.no_valid_license'))
elseif isBanned then
deferrals.done(Reason)
elseif isLicenseAlreadyInUse and QBCore.Config.Server.CheckDuplicateLicense then
deferrals.done(Lang:t('error.duplicate_license'))
elseif isWhitelist and not whitelisted then
deferrals.done(Lang:t('error.not_whitelisted'))
if GetConvarInt("sv_fxdkMode", false) then
license = 'license:AAAAAAAAAAAAAAAA' -- Dummy License
end
deferrals.done()
if not license then
deferrals.done(Lang:t('error.no_valid_license'))
elseif QBCore.Config.Server.CheckDuplicateLicense and QBCore.Functions.IsLicenseInUse(license) then
deferrals.done(Lang:t('error.duplicate_license'))
end
local databaseTime = os.clock()
local databasePromise = promise.new()
-- conduct database-dependant checks
CreateThread(function()
deferrals.update(string.format(Lang:t('info.checking_ban'), name))
local databaseSuccess, databaseError = pcall(function()
local isBanned, Reason = QBCore.Functions.IsPlayerBanned(src)
if isBanned then
deferrals.done(Reason)
end
end)
if QBCore.Config.Server.Whitelist then
deferrals.update(string.format(Lang:t('info.checking_whitelisted'), name))
databaseSuccess, databaseError = pcall(function()
if not QBCore.Functions.IsWhitelisted(src) then
deferrals.done(Lang:t('error.not_whitelisted'))
end
end)
end
if not databaseSuccess then
databasePromise:reject(databaseError)
end
databasePromise:resolve()
end)
-- wait for database to finish
databasePromise:next(function()
deferrals.update(string.format(Lang:t('info.join_server'), name))
deferrals.done()
end, function (databaseError)
deferrals.done(Lang:t('error.connecting_database_error'))
print('^1' .. databaseError)
end)
-- if conducting checks for too long then raise error
while databasePromise.state == 0 do
if os.clock() - databaseTime > 30 then
deferrals.done(Lang:t('error.connecting_database_timeout'))
error(Lang:t('error.connecting_database_timeout'))
break
end
Wait(1000)
end
-- Add any additional defferals you may need!
end
+7 -3
View File
@@ -1,6 +1,9 @@
QBShared = QBShared or {}
QBShared.ForceJobDefaultDutyAtLogin = true -- true: Force duty state to jobdefaultDuty | false: set duty state from database last saved
QBShared.Jobs = {
QBShared.QBJobsStatus = false -- true: integrate qb-jobs into the whole of qb-core | false: treat qb-jobs as an add-on resource.
QBShared.Jobs = {} -- All of below has been migrated into qb-jobs
if not QBShared.QBJobsStatus then
QBShared.Jobs = {
['unemployed'] = {
label = 'Civilian',
defaultDuty = true,
@@ -125,7 +128,7 @@ QBShared.Jobs = {
},
},
},
['bus'] = {
['bus'] = {
label = 'Bus',
defaultDuty = true,
offDutyPay = false,
@@ -281,4 +284,5 @@ QBShared.Jobs = {
},
},
},
}
}
end
+4 -4
View File
@@ -30,10 +30,10 @@ end
--- Constructor function for a new Locale class instance
--- @param opts table<string, any> - Constructor opts param
--- @return Locale
function Locale:new(opts)
setmetatable(self, Locale)
function Locale.new(_, opts)
local self = setmetatable({}, Locale)
self.fallback = opts.fallbackLang and Locale.new({}, {
self.fallback = opts.fallbackLang and Locale:new({
warnOnMissing = false,
phrases = opts.fallbackLang.phrases,
}) or false
@@ -142,4 +142,4 @@ function Locale:delete(phraseTarget, prefix)
end
end
end
end
end
+1 -12
View File
@@ -10,33 +10,25 @@ QBShared.Locations = {
['pizzaria'] = vector4(790.4561, -758.4601, 26.7424, 270.2329),
['catcafe'] = vector4(-580.8388, -1072.7872, 22.3296, 359.0078),
['carmeet'] = vector4(958.8237, -1699.6659, 29.5574, 71.2731),
['davispd'] = vector4(382.5791, -1591.1827, 29.2828, 145.0991),
['popsdiner'] = vector4(1595.9753, 6448.6421, 25.3170, 28.3026),
['davisfirestation'] = vector4(216.7576, -1638.3801, 29.5151, 137.8174),
['harmony'] = vector4(1183.0693, 2648.5313, 37.8363, 194.0603),
['haters'] = vector4(-1117.1525, -1439.4297, 5.1075, 103.4411),
['hayes'] = vector4(-1435.7040, -445.7360, 35.5964, 220.1762),
['pdm'] = vector4(-48.2113, -1105.4769, 27.2634, 339.5899),
['bennys'] = vector4(-47.5289, -1042.6086, 28.3532, 247.9748),
['impound'] = vector4(-190.5874, -1156.1343, 23.0482, 158.9385),
['lamesaauto'] = vector4(720.4776, -1092.1934, 22.2866, 310.1469),
['lamesapd'] = vector4(824.3735, -1290.0670, 28.2364, 266.1293),
['lostmc'] = vector4(982.6339, -104.7095, 74.8488, 30.8738),
['pillbox'] = vector4(298.1153, -584.2825, 43.2609, 252.7553),
['mrpd'] = vector4(432.0686, -981.6853, 30.7119, 267.3501),
['mirrorparkhouse1'] = vector4(945.9535, -652.9119, 58.0228, 90.5541),
['pacificbank'] = vector4(229.9529, 214.3890, 105.5561, 294.6791),
['paletoliquor'] = vector4(-154.2287, 6328.8682, 31.5665, 133.1992),
['paletopd'] = vector4(-436.0935, 6015.2026, 31.4892, 132.9752),
['paletogasstation'] = vector4(120.2420, 6625.4722, 31.9580, 36.5687),
['pinkcage'] = vector4(323.9055, -203.2524, 54.0866, 186.8505),
['ponsonbys1'] = vector4(-165.2497, -304.3988, 38.07126, 0.0),
['ponsonbys2'] = vector4(-1448.1, -236.8420, 48.15098, 0.0),
['ponsonbys3'] = vector4(-709.8120, -150.6267, 35.75312, 0.0),
['prison'] = vector4(1847.1284, 2586.0696, 45.6726, 91.7828),
['rangerstation'] = vector4(387.3204, 790.1508, 187.6927, 4.7656),
['recordastudio'] = vector4(473.3006, -109.4360, 62.7418, 350.8488),
['sandypd'] = vector4(1839.7510, 3667.9907, 33.8787, 29.1744),
['suburban1'] = vector4(124.9756, -217.6290, 55.81879, 0.0),
['suburban2'] = vector4(617.4776, 2757.4810, 43.34935, 0.0),
['suburban3'] = vector4(-1195.8690, -773.5746, 18.58485, 0.0),
@@ -51,8 +43,5 @@ QBShared.Locations = {
-- Unclejust
['digitalden'] = vector4(-656.28, -849.92, 24.51, 167.42),
['ifruitstore1'] = vector4(-646.78, -288.17, 35.49, 297.73),
['ifruitstore2'] = vector4(-778.7451, -598.2717, 30.2772, 181.0197),
['taxijob'] = vector4(908.7, -166.45, 74.13, 54.88),
['vineyard'] = vector4(-1892.29, 2038.47, 140.86, 339.23),
['weazelnews'] = vector4(-604.82, -933.22, 23.86, 292.3),
['ifruitstore2'] = vector4(-778.7451, -598.2717, 30.2772, 181.0197)
}
+5220 -4413
View File
File diff suppressed because it is too large Load Diff