lopezloo

ChatGPT refactored CStaticFunctionDefinitions::SetPlayerName()

Mar 9th, 2023
601
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.31 KB | None | 0 0
  1. bool CStaticFunctionDefinitions::SetPlayerName(CElement* pElement, const char* szName)
  2. {
  3.     assert(pElement);
  4.     assert(szName);
  5.  
  6.     CClient* pClient = pElement->GetClient();
  7.  
  8.     if (!pClient)
  9.     {
  10.         return false;
  11.     }
  12.  
  13.     if (pClient->GetClientType() != CClient::CLIENT_PLAYER)
  14.     {
  15.         return false;
  16.     }
  17.  
  18.     CPlayer* pPlayer = static_cast<CPlayer*>(pClient);
  19.  
  20.     if (!IsNickValid(szName))
  21.     {
  22.         return false;
  23.     }
  24.  
  25.     size_t sizeNewNick = strlen(szName);
  26.  
  27.     if (sizeNewNick < MIN_NICK_LENGTH || sizeNewNick > MAX_NICK_LENGTH)
  28.     {
  29.         return false;
  30.     }
  31.  
  32.     const char* szNick = pPlayer->GetNick();
  33.  
  34.     if (szNick != nullptr && strcmp(szName, szNick) == 0)
  35.     {
  36.         return false;
  37.     }
  38.  
  39.     if (m_pPlayerManager->Get(szName) != nullptr)
  40.     {
  41.         return false;
  42.     }
  43.  
  44.     CLuaArguments Arguments;
  45.     Arguments.PushString(szNick);
  46.     Arguments.PushString(szName);
  47.     Arguments.PushBoolean(false); // manually changed
  48.     pPlayer->CallEvent("onPlayerChangeNick", Arguments);
  49.  
  50.     CLogger::LogPrintf("NICK: %s is now known as %s\n", szNick, szName);
  51.  
  52.     pPlayer->SetNick(szName);
  53.  
  54.     CPlayerChangeNickPacket Packet(szName);
  55.     Packet.SetSourceElement(pPlayer);
  56.     m_pPlayerManager->BroadcastOnlyJoined(Packet);
  57.  
  58.     return true;
  59. }
Advertisement
Add Comment
Please, Sign In to add comment