Merge pull request #347 from alliedmodders/double
Call OnClientDisconnect(_Post) if the client has already connected (bug 6361).
This commit is contained in:
commit
11c40e385e
@ -57,6 +57,8 @@ const unsigned int *g_NumPlayersToAuth = NULL;
|
|||||||
int lifestate_offset = -1;
|
int lifestate_offset = -1;
|
||||||
List<ICommandTargetProcessor *> target_processors;
|
List<ICommandTargetProcessor *> target_processors;
|
||||||
|
|
||||||
|
ConVar sm_debug_connect("sm_debug_connect", "0", 0, "Log Debug information about potential connection issues.");
|
||||||
|
|
||||||
#if SOURCE_ENGINE == SE_DOTA
|
#if SOURCE_ENGINE == SE_DOTA
|
||||||
SH_DECL_HOOK5(IServerGameClients, ClientConnect, SH_NOATTRIB, 0, bool, CEntityIndex, const char *, const char *, char *, int);
|
SH_DECL_HOOK5(IServerGameClients, ClientConnect, SH_NOATTRIB, 0, bool, CEntityIndex, const char *, const char *, char *, int);
|
||||||
SH_DECL_HOOK2_void(IServerGameClients, ClientPutInServer, SH_NOATTRIB, 0, CEntityIndex, const char *);
|
SH_DECL_HOOK2_void(IServerGameClients, ClientPutInServer, SH_NOATTRIB, 0, CEntityIndex, const char *);
|
||||||
@ -492,6 +494,28 @@ bool PlayerManager::OnClientConnect(edict_t *pEntity, const char *pszName, const
|
|||||||
CPlayer *pPlayer = &m_Players[client];
|
CPlayer *pPlayer = &m_Players[client];
|
||||||
++m_PlayersSinceActive;
|
++m_PlayersSinceActive;
|
||||||
|
|
||||||
|
if (pPlayer->IsConnected())
|
||||||
|
{
|
||||||
|
if (sm_debug_connect.GetBool())
|
||||||
|
{
|
||||||
|
const char *pAuth = pPlayer->GetAuthString(false);
|
||||||
|
if (pAuth == NULL)
|
||||||
|
{
|
||||||
|
pAuth = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
logger->LogMessage("\"%s<%d><%s><>\" was already connected to the server.", pPlayer->GetName(), pPlayer->GetUserId(), pAuth);
|
||||||
|
}
|
||||||
|
|
||||||
|
#if SOURCE_ENGINE == SE_DOTA
|
||||||
|
OnClientDisconnect(pPlayer->GetIndex(), 0);
|
||||||
|
OnClientDisconnect_Post(pPlayer->GetIndex(), 0);
|
||||||
|
#else
|
||||||
|
OnClientDisconnect(pPlayer->GetEdict());
|
||||||
|
OnClientDisconnect_Post(pPlayer->GetEdict());
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
pPlayer->Initialize(pszName, pszAddress, pEntity);
|
pPlayer->Initialize(pszName, pszAddress, pEntity);
|
||||||
|
|
||||||
/* Get the client's language */
|
/* Get the client's language */
|
||||||
|
Loading…
Reference in New Issue
Block a user