From da9350f8bc6589e3bc966b447d603e7aa039c053 Mon Sep 17 00:00:00 2001 From: LordLucifr <67039969+LordLucifr@users.noreply.github.com> Date: Thu, 15 Apr 2021 03:58:30 -0400 Subject: [PATCH 1/3] Fix Defferals Additional Defferals can be added these are just proof of concept. --- server/events.lua | 93 +++++++++++++++++++---------------------------- 1 file changed, 38 insertions(+), 55 deletions(-) diff --git a/server/events.lua b/server/events.lua index 7130ab0..48bb613 100644 --- a/server/events.lua +++ b/server/events.lua @@ -14,62 +14,45 @@ AddEventHandler('playerDropped', function(reason) QBCore.Players[src] = nil end) --- Checking everything before joining ---[[ AddEventHandler('playerConnecting', function(playerName, setKickReason, deferrals) - deferrals.defer() - local src = source - deferrals.update("\nChecking name...") - local name = GetPlayerName(src) - if name == nil then - QBCore.Functions.Kick(src, 'Please don\'t use a blank Steam username.', setKickReason, deferrals) - CancelEvent() - return false - end - if(string.match(name, "[*%%'=`\"]")) then - QBCore.Functions.Kick(src, 'You have a character in your username ('..string.match(name, "[*%%'=`\"]")..') that is not allowed.\nPlease remove this out of your Steam username.', setKickReason, deferrals) - CancelEvent() - return false - end - if (string.match(name, "drop") or string.match(name, "table") or string.match(name, "database")) then - QBCore.Functions.Kick(src, 'Your username contains a word (drop/table/database) that is not allowed.\nPlease change your Steam username.', setKickReason, deferrals) - CancelEvent() - return false - end - deferrals.update("\nChecking identifiers...") - local identifiers = GetPlayerIdentifiers(src) - local steamid = identifiers[1] - local license = identifiers[2] - if (QBConfig.IdentifierType == "steam" and (steamid:sub(1,6) == "steam:") == false) then - QBCore.Functions.Kick(src, 'You need to open Steam to play.', setKickReason, deferrals) - CancelEvent() - return false - elseif (QBConfig.IdentifierType == "license" and (steamid:sub(1,6) == "license:") == false) then - QBCore.Functions.Kick(src, 'No Social Club license found.', setKickReason, deferrals) - CancelEvent() - return false +local function OnPlayerConnecting(name, setKickReason, deferrals) + local player = source + local steamIdentifier + local identifiers = GetPlayerIdentifiers(player) + deferrals.defer() + + -- mandatory wait! + Wait(0) + + deferrals.update(string.format("Hello %s. Your Steam ID is being checked.", name)) + + for _, v in pairs(identifiers) do + if string.find(v, "steam") then + steamIdentifier = v + break + end end - deferrals.update("\nChecking ban status...") - local isBanned, Reason = QBCore.Functions.IsPlayerBanned(src) - if(isBanned) then - QBCore.Functions.Kick(src, Reason, setKickReason, deferrals) - CancelEvent() - return false + + -- mandatory wait! + Wait(2500) + + deferrals.update(string.format("Hello %s. We are checking if you are banned.", name)) + + local isBanned, Reason = QBCore.Functions.IsPlayerBanned(src) + + Wait(2500) + + if not steamIdentifier then + deferrals.done("You are not connected to Steam.") + elseif isBanned then + deferrals.done(Reason) + else + deferrals.done("Welcome to {Server Name}!") end - deferrals.update("\nChecking whitelist status...") - if(not QBCore.Functions.IsWhitelisted(src)) then - QBCore.Functions.Kick(src, 'You aren\'t whitelisted.', setKickReason, deferrals) - CancelEvent() - return false - end - deferrals.update("\nChecking server status...") - if(QBCore.Config.Server.closed and not IsPlayerAceAllowed(src, "qbadmin.join")) then - QBCore.Functions.Kick(_source, 'the server is closed:\n'..QBCore.Config.Server.closedReason, setKickReason, deferrals) - CancelEvent() - return false - end - TriggerEvent("qb-log:server:CreateLog", "joinleave", "Queue", "orange", "**"..name .. "** ("..json.encode(GetPlayerIdentifiers(src))..") in queue..") - TriggerEvent("connectqueue:playerConnect", src, setKickReason, deferrals) -end) ]] + --Add any additional defferals you may need! +end + +AddEventHandler("playerConnecting", OnPlayerConnecting) + RegisterServerEvent("QBCore:server:CloseServer") AddEventHandler('QBCore:server:CloseServer', function(reason) @@ -285,4 +268,4 @@ AddEventHandler('QBCore:Command:CheckOwnedVehicle', function(VehiclePlate) end end) end -end) \ No newline at end of file +end) From 4f12f9662d33b178ae68f5080354c5f945c612e3 Mon Sep 17 00:00:00 2001 From: LordLucifr <67039969+LordLucifr@users.noreply.github.com> Date: Thu, 15 Apr 2021 04:14:51 -0400 Subject: [PATCH 2/3] Added ConnectQueue Trigger forgot it in the first commit --- server/events.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/server/events.lua b/server/events.lua index 48bb613..deed5b5 100644 --- a/server/events.lua +++ b/server/events.lua @@ -49,6 +49,7 @@ local function OnPlayerConnecting(name, setKickReason, deferrals) deferrals.done("Welcome to {Server Name}!") end --Add any additional defferals you may need! + TriggerEvent("connectqueue:playerConnect", src, setKickReason, deferrals) end AddEventHandler("playerConnecting", OnPlayerConnecting) From 880e0b25cb52a44806368d7f29f94e02a90cb5a4 Mon Sep 17 00:00:00 2001 From: LordLucifr <67039969+LordLucifr@users.noreply.github.com> Date: Thu, 15 Apr 2021 15:35:00 -0400 Subject: [PATCH 3/3] Fixed a typo ... --- server/events.lua | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/server/events.lua b/server/events.lua index deed5b5..c94b6c9 100644 --- a/server/events.lua +++ b/server/events.lua @@ -35,21 +35,25 @@ local function OnPlayerConnecting(name, setKickReason, deferrals) -- mandatory wait! Wait(2500) - deferrals.update(string.format("Hello %s. We are checking if you are banned.", name)) + deferrals.update(string.format("Hello %s. We are checking if you are banned.", name)) - local isBanned, Reason = QBCore.Functions.IsPlayerBanned(src) + local isBanned, Reason = QBCore.Functions.IsPlayerBanned(player) - Wait(2500) + Wait(2500) + + deferrals.update(string.format("Welcome %s to {Server Name}.", name)) if not steamIdentifier then deferrals.done("You are not connected to Steam.") - elseif isBanned then - deferrals.done(Reason) - else - deferrals.done("Welcome to {Server Name}!") + elseif isBanned then + deferrals.done(Reason) + else + deferrals.done() + Wait(1000) + TriggerEvent("connectqueue:playerConnect", name, setKickReason, deferrals) end --Add any additional defferals you may need! - TriggerEvent("connectqueue:playerConnect", src, setKickReason, deferrals) + end AddEventHandler("playerConnecting", OnPlayerConnecting)