Core/Players: Reject logins flagged for rename earlier in Player::LoadFromDB

This commit is contained in:
luis
2026-09-22 20:18:35 -03:00
parent 958e6e1ce6
commit c86a787d30
+9 -8
View File
@@ -18655,6 +18655,14 @@ bool Player::LoadFromDB(ObjectGuid guid, CharacterDatabaseQueryHolder const& hol
return false; return false;
} }
m_atLoginFlags = fields.at_login;
if (HasAtLoginFlag(AT_LOGIN_RENAME))
{
TC_LOG_ERROR("entities.player.cheat", "Player::LoadFromDB: Player ({}) tried to login while forced to rename, can't load.'", guid.ToString());
return false;
}
_Create(guid); _Create(guid);
m_name = std::move(fields.name); m_name = std::move(fields.name);
@@ -18744,8 +18752,6 @@ bool Player::LoadFromDB(ObjectGuid guid, CharacterDatabaseQueryHolder const& hol
ReplaceAllPlayerFlagsEx(fields.playerFlagsEx); ReplaceAllPlayerFlagsEx(fields.playerFlagsEx);
SetWatchedFactionIndex(fields.watchedFaction); SetWatchedFactionIndex(fields.watchedFaction);
m_atLoginFlags = fields.at_login;
if (!GetSession()->ValidateAppearance(Races(GetRace()), Classes(GetClass()), fields.gender, MakeChrCustomizationChoiceRange(customizations))) if (!GetSession()->ValidateAppearance(Races(GetRace()), Classes(GetClass()), fields.gender, MakeChrCustomizationChoiceRange(customizations)))
{ {
TC_LOG_ERROR("entities.player.loading", "Player::LoadFromDB: Player ({}) has wrong Appearance values (Hair/Skin/Color), can't load.", guid.ToString()); TC_LOG_ERROR("entities.player.loading", "Player::LoadFromDB: Player ({}) has wrong Appearance values (Hair/Skin/Color), can't load.", guid.ToString());
@@ -19047,6 +19053,7 @@ bool Player::LoadFromDB(ObjectGuid guid, CharacterDatabaseQueryHolder const& hol
} }
} }
// no early return is allowed past this point, player will be deleted and still referenced by the map and battleground AddPlayer can apply auras also
SetMap(map); SetMap(map);
UpdatePositionData(); UpdatePositionData();
@@ -19094,12 +19101,6 @@ bool Player::LoadFromDB(ObjectGuid guid, CharacterDatabaseQueryHolder const& hol
_LoadPetStable(fields.summonedPetNumber, holder.GetPreparedResult(PLAYER_LOGIN_QUERY_LOAD_PET_SLOTS)); _LoadPetStable(fields.summonedPetNumber, holder.GetPreparedResult(PLAYER_LOGIN_QUERY_LOAD_PET_SLOTS));
if (HasAtLoginFlag(AT_LOGIN_RENAME))
{
TC_LOG_ERROR("entities.player.cheat", "Player::LoadFromDB: Player ({}) tried to login while forced to rename, can't load.'", GetGUID().ToString());
return false;
}
// Honor system // Honor system
// Update Honor kills data // Update Honor kills data
m_lastHonorUpdateTime = logoutTime; m_lastHonorUpdateTime = logoutTime;