| 576 | } |
| 577 | |
| 578 | bool PlayerManager::OnClientConnect_Post(edict_t *pEntity, const char *pszName, const char *pszAddress, char *reject, int maxrejectlen) |
| 579 | { |
| 580 | int client = IndexOfEdict(pEntity); |
| 581 | bool orig_value = META_RESULT_ORIG_RET(bool); |
| 582 | CPlayer *pPlayer = &m_Players[client]; |
| 583 | |
| 584 | if (orig_value) |
| 585 | { |
| 586 | List<IClientListener *>::iterator iter; |
| 587 | IClientListener *pListener = NULL; |
| 588 | for (iter=m_hooks.begin(); iter!=m_hooks.end(); iter++) |
| 589 | { |
| 590 | pListener = (*iter); |
| 591 | pListener->OnClientConnected(client); |
| 592 | if (!pPlayer->IsConnected()) |
| 593 | { |
| 594 | return true; |
| 595 | } |
| 596 | } |
| 597 | |
| 598 | if (!pPlayer->IsFakeClient() |
| 599 | && m_bIsListenServer |
| 600 | && strncmp(pszAddress, "127.0.0.1", 9) == 0) |
| 601 | { |
| 602 | m_ListenClient = client; |
| 603 | } |
| 604 | |
| 605 | cell_t res; |
| 606 | m_clconnect_post->PushCell(client); |
| 607 | m_clconnect_post->Execute(&res, NULL); |
| 608 | } |
| 609 | else |
| 610 | { |
| 611 | InvalidatePlayer(pPlayer); |
| 612 | } |
| 613 | |
| 614 | return true; |
| 615 | } |
| 616 | |
| 617 | void PlayerManager::OnClientPutInServer(edict_t *pEntity, const char *playername) |
| 618 | { |
nothing calls this directly
no test coverage detected