Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bool CStaticFunctionDefinitions::SetPlayerName(CElement* pElement, const char* szName)
- {
- assert(pElement);
- assert(szName);
- CClient* pClient = pElement->GetClient();
- if (!pClient)
- {
- return false;
- }
- if (pClient->GetClientType() != CClient::CLIENT_PLAYER)
- {
- return false;
- }
- CPlayer* pPlayer = static_cast<CPlayer*>(pClient);
- if (!IsNickValid(szName))
- {
- return false;
- }
- size_t sizeNewNick = strlen(szName);
- if (sizeNewNick < MIN_NICK_LENGTH || sizeNewNick > MAX_NICK_LENGTH)
- {
- return false;
- }
- const char* szNick = pPlayer->GetNick();
- if (szNick != nullptr && strcmp(szName, szNick) == 0)
- {
- return false;
- }
- if (m_pPlayerManager->Get(szName) != nullptr)
- {
- return false;
- }
- CLuaArguments Arguments;
- Arguments.PushString(szNick);
- Arguments.PushString(szName);
- Arguments.PushBoolean(false); // manually changed
- pPlayer->CallEvent("onPlayerChangeNick", Arguments);
- CLogger::LogPrintf("NICK: %s is now known as %s\n", szNick, szName);
- pPlayer->SetNick(szName);
- CPlayerChangeNickPacket Packet(szName);
- Packet.SetSourceElement(pPlayer);
- m_pPlayerManager->BroadcastOnlyJoined(Packet);
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment