diff options
Diffstat (limited to 'src/server/game/Handlers/CharacterHandler.cpp')
| -rw-r--r-- | src/server/game/Handlers/CharacterHandler.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp index 786c708da93..4bc3e09caaf 100644 --- a/src/server/game/Handlers/CharacterHandler.cpp +++ b/src/server/game/Handlers/CharacterHandler.cpp @@ -1370,6 +1370,7 @@ void WorldSession::HandleCharCustomize(WorldPacket& recvData) uint8 plrRace = fields[0].GetUInt8(); uint8 plrClass = fields[1].GetUInt8(); uint8 plrGender = fields[2].GetUInt8(); + std::string plrName = fields[4].GetString(); if (!Player::ValidateAppearance(plrRace, plrClass, plrGender, customizeInfo.HairStyle, customizeInfo.HairColor, customizeInfo.Face, customizeInfo.FacialHair, customizeInfo.Skin, true)) { @@ -1398,6 +1399,13 @@ void WorldSession::HandleCharCustomize(WorldPacket& recvData) return; } + // prevent character rename + if (sWorld->getBoolConfig(CONFIG_PREVENT_RENAME_CUSTOMIZATION) && (customizeInfo.Name != plrName)) + { + SendCharCustomize(CHAR_NAME_FAILURE, customizeInfo); + return; + } + // prevent character rename to invalid name if (!normalizePlayerName(customizeInfo.Name)) { @@ -1614,6 +1622,7 @@ void WorldSession::HandleCharFactionOrRaceChange(WorldPacket& recvData) return; } + std::string oldName = nameData->Name; uint8 oldRace = nameData->Race; uint8 playerClass = nameData->Class; uint8 level = nameData->Level; @@ -1656,6 +1665,13 @@ void WorldSession::HandleCharFactionOrRaceChange(WorldPacket& recvData) } } + // prevent character rename + if (sWorld->getBoolConfig(CONFIG_PREVENT_RENAME_CUSTOMIZATION) && (factionChangeInfo.Name != oldName)) + { + SendCharFactionChange(CHAR_NAME_FAILURE, factionChangeInfo); + return; + } + // prevent character rename to invalid name if (!normalizePlayerName(factionChangeInfo.Name)) { |
