As per BAILOPAN's suggestion, I made it queue up players for checking in GameFrame() until their networkids are validated. Here's basically what I did:
Code:
bool Plugin::ClientConnect(edict_t *pEntity, const char *pszName, const char *pszAddress, char *reject, int maxrejectlen)
{
[add player to pending players list]
if (strcmp([player's steamid via IVEngineServer::GetPlayerNetworkID], "STEAM_ID_PENDING") == 0)
g_IsPending = true;
RETURN_META_VALUE(MRES_HANDLED, true);
}
And then in GameFrame:
Code:
void Plugin::GameFrame(bool simulating)
{
if (g_IsPending)
{
if (g_Globals->curtime > g_Timer) // g_Globals is CGlobalVars
{
g_Timer = g_Globals->curtime + 0.5;
[function that checks each pending player's steamid and removes them from the pending list if they're validated]
if ([count of pending player list] < 1)
g_IsPending = false;
RETURN_META(MRES_HANDLED);
}
}
RETURN_META(MRES_IGNORED);
}