diff --git a/src/TNetwork.cpp b/src/TNetwork.cpp index 6239d81..5294445 100644 --- a/src/TNetwork.cpp +++ b/src/TNetwork.cpp @@ -430,32 +430,24 @@ std::shared_ptr TNetwork::Authentication(TConnection&& RawConnection) { Reason = "No guests are allowed on this server! To join, sign up at: forum.beammp.com."; } - bool Allowed = true; - if (NotAllowed) { - Allowed = false; + if (!NotAllowed && !NotAllowedWithReason) { + if (mServer.ClientCount() < size_t(Application::Settings.getAsInt(Settings::Key::General_MaxPlayers)) || BypassLimit) { + beammp_info("Identification success"); + mServer.InsertClient(Client); + TCPClient(Client); + } else { + NotAllowedWithReason = true; + Reason = "Server full!"; + } } + if (NotAllowedWithReason) { - Allowed = false; - } - - if (NotAllowed) { - ClientKick(*Client, "you are not allowed on the server!"); - } else if (NotAllowedWithReason) { ClientKick(*Client, Reason); + } else if (NotAllowed) { + ClientKick(*Client, "you are not allowed on the server!"); } - - if (!Allowed) { - return {}; - } else if (mServer.ClientCount() < size_t(Application::Settings.getAsInt(Settings::Key::General_MaxPlayers)) || BypassLimit) { - beammp_info("Identification success"); - mServer.InsertClient(Client); - TCPClient(Client); - } else { - ClientKick(*Client, "Server full!"); - } - - auto PostFutures = LuaAPI::MP::Engine->TriggerEvent("postPlayerAuth", "", Allowed, Client->GetName(), Client->GetRoles(), Client->IsGuest(), Client->GetIdentifiers()); + auto PostFutures = LuaAPI::MP::Engine->TriggerEvent("postPlayerAuth", "", NotAllowed || NotAllowedWithReason, Reason, Client->GetName(), Client->GetRoles(), Client->IsGuest(), Client->GetIdentifiers()); // the post event is not cancellable so we dont wait for it LuaAPI::MP::Engine->ReportErrors(PostFutures);