void WorldSession::HandleChangePlayerNameOpcodeCallBack(QueryResult *result, uint32 accountId, std::string newname) { WorldSession * session = sWorld.FindSession(accountId); if(!session) { if(result) delete result; return; } if (!result) { WorldPacket data(SMSG_CHAR_RENAME, 1); data << (uint8)CHAR_CREATE_ERROR; session->SendPacket( &data ); return; } uint32 guidLow = result->Fetch()[0].GetUInt32(); uint64 guid = MAKE_NEW_GUID(guidLow, 0, HIGHGUID_PLAYER); std::string oldname = result->Fetch()[1].GetCppString(); delete result; CharacterDatabase.PExecute("UPDATE characters set name = '%s', at_login = at_login & ~ %u WHERE guid ='%u'", newname.c_str(), uint32(AT_LOGIN_RENAME), guidLow); CharacterDatabase.PExecute("DELETE FROM character_declinedname WHERE guid ='%u'", guidLow); sLog.outChar("Account: %d (IP: %s) Character:[%s] (guid:%u) Changed name to: %s",session->GetAccountId(), session->GetRemoteAddress().c_str(), oldname.c_str(), guidLow, newname.c_str()); WorldPacket data(SMSG_CHAR_RENAME,1+8+(newname.size()+1)); data << (uint8)RESPONSE_SUCCESS; data << guid; data << newname; session->SendPacket(&data); }
void Tracker::CreateTracker(WorldSession * adder, const char * args) { if(!*args) return; char *pname = strtok((char*)args, " "); if(!pname) { if( adder != NULL ) sChatHandler.RedSystemMessage(adder, "No name specified."); return; } Player *toAdd = objmgr.GetPlayer((const char*)pname, false); if( toAdd && toAdd->GetSession() && toAdd->GetSession()->GetSocket() ) { WorldSession * toAddSession = toAdd->GetSession(); TrackedPlr *user = new TrackedPlr; user->Id = sTracker.GenerateID(); user->AcctId = toAddSession->GetAccountId(); user->Name = toAddSession->GetAccountName(); user->IP_Address = toAddSession->GetSocket()->GetIP(); AddTracker(user, false); char msg[128]; sprintf(msg, "%sTracker:|r User [%s] is now being tracked (Tracker ID: %u)", MSG_COLOR_CYAN, toAddSession->GetAccountName().c_str(), (uint32)user->Id); sWorld.SendGMWorldText( msg ); } else { if( adder != NULL ) sChatHandler.RedSystemMessage(adder, "Server was unable to handle your request, please check your syntax."); } }
void WorldSession::HandleChangePlayerNameOpcodeCallBack(QueryResult* result, uint32 accountId, std::string newname) { WorldSession* session = sWorld.FindSession(accountId); if (!session) { delete result; return; } if (!result) { WorldPacket data(SMSG_CHAR_RENAME, 1); data << uint8(CHAR_CREATE_ERROR); session->SendPacket(data, true); return; } uint32 guidLow = result->Fetch()[0].GetUInt32(); ObjectGuid guid = ObjectGuid(HIGHGUID_PLAYER, guidLow); std::string oldname = result->Fetch()[1].GetCppString(); delete result; CharacterDatabase.BeginTransaction(); CharacterDatabase.PExecute("UPDATE characters set name = '%s', at_login = at_login & ~ %u WHERE guid ='%u'", newname.c_str(), uint32(AT_LOGIN_RENAME), guidLow); CharacterDatabase.CommitTransaction(); sLog.outChar("Account: %d (IP: %s) Character:[%s] (guid:%u) Changed name to: %s", session->GetAccountId(), session->GetRemoteAddress().c_str(), oldname.c_str(), guidLow, newname.c_str()); WorldPacket data(SMSG_CHAR_RENAME, 1 + 8 + (newname.size() + 1)); data << uint8(RESPONSE_SUCCESS); data << guid; data << newname; session->SendPacket(data, true); sWorld.InvalidatePlayerDataToAllClient(guid); }
void WriteToHistory(Player* player, uint8 historyType) { WorldSession* session = player->GetSession(); LoginDatabase.PExecute(SQL_HISTORY, session->GetAccountId(), realmID, session->GetRemoteAddress().c_str(), historyType, player->GetGUIDLow(), player->GetName().c_str()); }
void WorldSession::HandleChangePlayerNameOpcodeCallBack(QueryResultAutoPtr result, uint32 accountId, std::string newname) { WorldSession * session = sWorld.FindSession(accountId); if (!session) return; if (!result) { WorldPacket data(SMSG_CHAR_RENAME, 1); data << uint8(CHAR_CREATE_ERROR); session->SendPacket(&data); return; } uint32 guidLow = result->Fetch()[0].GetUInt32(); uint64 guid = MAKE_NEW_GUID(guidLow, 0, HIGHGUID_PLAYER); std::string oldname = result->Fetch()[1].GetCppString(); static SqlStatementID changeCharName; static SqlStatementID deleteDeclinedName; RealmDataDatabase.BeginTransaction(); SqlStatement stmt = RealmDataDatabase.CreateStatement(changeCharName, "UPDATE characters set name = ?, at_login = at_login & ~ ? WHERE guid = ?"); stmt.addString(newname); stmt.addUInt32(uint32(AT_LOGIN_RENAME)); stmt.addUInt32(guidLow); stmt.Execute(); stmt = RealmDataDatabase.CreateStatement(deleteDeclinedName, "DELETE FROM character_declinedname WHERE guid = ?"); stmt.PExecute(guidLow); RealmDataDatabase.CommitTransaction(); sLog.outLog(LOG_CHAR, "Account: %d (IP: %s) Character:[%s] (guid:%u) Changed name to: %s", session->GetAccountId(), session->GetRemoteAddress().c_str(), oldname.c_str(), guidLow, newname.c_str()); WorldPacket data(SMSG_CHAR_RENAME, 1+8+(newname.size()+1)); data << uint8(RESPONSE_SUCCESS); data << uint64(guid); data << newname; session->SendPacket(&data); }