From cc0e246887219db3eb2541809053467b57f6a531 Mon Sep 17 00:00:00 2001 From: David Malchin Date: Sat, 20 Jan 2024 23:56:16 +0200 Subject: [PATCH] fix(server/events): locales issue and promise error handling --- locales/bg.json | 2 +- locales/cs.json | 2 +- locales/is.json | 2 +- locales/sv.json | 2 +- server/events.lua | 17 ++++++++++------- 5 files changed, 14 insertions(+), 11 deletions(-) diff --git a/locales/bg.json b/locales/bg.json index ef934d361..72a4c22cd 100644 --- a/locales/bg.json +++ b/locales/bg.json @@ -31,7 +31,7 @@ "on_duty": "Вече сте на дежурство!", "off_duty": "Вече не сте на дежурство!", "checking_ban": "Здравей %s. Проверяваме дали сте баннат.", - "join_server": "Добре дошъл %s в {Име на сървъра}.", + "join_server": "Добре дошъл %s в %s.", "checking_whitelisted": "Здравей %s. Проверяваме вашето разрешение.", "exploit_banned": "Бяхте баннат за измама. Проверете нашия Discord за повече информация: %s", "exploit_dropped": "Бяхте изхвърлен за използване на експлоит" diff --git a/locales/cs.json b/locales/cs.json index 2c65db2af..11cd31f47 100644 --- a/locales/cs.json +++ b/locales/cs.json @@ -35,7 +35,7 @@ "on_duty": "Nyní jste v práci!", "off_duty": "Nyní jste mimo službu!", "checking_ban": "Ahoj %s. Kontrolujeme, zda jste zakázaný.", - "join_server": "Vítejte %s na {Název Serveru}.", + "join_server": "Vítejte %s na %s.", "checking_whitelisted": "Ahoj %s. Kontrolujeme vaši povolenost.", "exploit_banned": "Byli jste zakázáni za podvádění. Podívejte se na náš Discord pro více informací: %s", "exploit_dropped": "Byli jste vyhoštěni za zneužívání", diff --git a/locales/is.json b/locales/is.json index 332dc4477..5f6759051 100644 --- a/locales/is.json +++ b/locales/is.json @@ -30,7 +30,7 @@ "on_duty": "Þú ert nú á vakt!", "off_duty": "Þú ert nú á vakt!", "checking_ban": "Halló %s. Við erum að athuga hvort þú sért bannaður.", - "join_server": "Velkominn %s til {Nafn netþjóns}.", + "join_server": "Velkominn %s til %s.", "checking_whitelisted": "Halló %s. Við erum að athuga vasapeningana þína.", "exploit_banned": "Þú hefur verið bannaður fyrir svindl. Athugaðu Discord okkar til að fá frekari upplýsingar: %s", "exploit_dropped": "Þér hefur verið sparkað fyrir arðrán" diff --git a/locales/sv.json b/locales/sv.json index 2a9c2971f..3e96ac441 100644 --- a/locales/sv.json +++ b/locales/sv.json @@ -20,7 +20,7 @@ "on_duty": "Du är nu i tjänst!", "off_duty": "Du har gått ur tjänst!", "checking_ban": "Hej %s. Vi kollar ifall du är bannad.", - "join_server": "Välkommen %s till Bygden RP.", + "join_server": "Välkommen %s till %s.", "checking_whitelisted": "Hej %s. Vi kollar efter giltighet i ditt medlemskap." } } diff --git a/server/events.lua b/server/events.lua index d83b60460..041c699a5 100644 --- a/server/events.lua +++ b/server/events.lua @@ -58,7 +58,7 @@ end) ---@field done fun(failureReason?: string) finalizes deferrals. If failureReason is present, user will be refused connection and shown reason. Need to wait 1 tick after calling other deferral methods before calling done. -- Player Connecting ----@param name any +---@param name string ---@param _ any ---@param deferrals Deferrals local function onPlayerConnecting(name, _, deferrals) @@ -96,7 +96,7 @@ local function onPlayerConnecting(name, _, deferrals) end) if serverConfig.whitelist and success then - deferrals.update(string.format(locale('info.checking_whitelisted'), name)) + deferrals.update(locale('info.checking_whitelisted', name)) success, err = pcall(function() if not IsWhitelisted(src --[[@as Source]]) then Wait(0) -- Mandatory wait @@ -111,9 +111,15 @@ local function onPlayerConnecting(name, _, deferrals) databasePromise:resolve() end) + local onError = function(err) + deferrals.done(locale('error.connecting_error')) + lib.print.error(err) + end + -- wait for database to finish databasePromise:next(function() - deferrals.update(locale('info.join_server', name)) + local serverName = GetConvar('sv_projectName', GetConvar('sv_hostname', 'Server')) + deferrals.update(locale('info.join_server', name, serverName)) -- Mandatory wait Wait(0) @@ -123,10 +129,7 @@ local function onPlayerConnecting(name, _, deferrals) else deferrals.done() end - end, function(err) - deferrals.done(locale('error.connecting_error')) - lib.print.error(err) - end) + end, onError):next(function() end, onError) -- if conducting db checks for too long then raise error while databasePromise.state == 0 do