diff options
| author | psayafan <psayafan@hotmail.com> | 2016-06-19 10:23:27 +0430 |
|---|---|---|
| committer | joschiwald <joschiwald.trinity@gmail.com> | 2017-02-01 22:53:24 +0100 |
| commit | d1e9bb6f2681adc199ea05af938c229779d98d07 (patch) | |
| tree | ff72659b76e0f20f7cc531f002cae17ece404dc4 /src | |
| parent | 4d58d58c990c3400e0223b8c4a717b4458c91fbb (diff) | |
Core/Player: Add option to prevent rename during character customization
Closes #17420
(cherry picked from commit fe2aed6047baa5871ab0840353a26cdd08d62f49)
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/game/Handlers/CharacterHandler.cpp | 15 | ||||
| -rw-r--r-- | src/server/game/World/World.cpp | 3 | ||||
| -rw-r--r-- | src/server/game/World/World.h | 1 | ||||
| -rw-r--r-- | src/server/worldserver/worldserver.conf.dist | 10 |
4 files changed, 29 insertions, 0 deletions
diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp index d97a020b56e..9eccfde208e 100644 --- a/src/server/game/Handlers/CharacterHandler.cpp +++ b/src/server/game/Handlers/CharacterHandler.cpp @@ -1553,6 +1553,13 @@ void WorldSession::HandleCharCustomizeCallback(std::shared_ptr<WorldPackets::Cha return; } + // prevent character rename + if (sWorld->getBoolConfig(CONFIG_PREVENT_RENAME_CUSTOMIZATION) && (customizeInfo->CharName != oldName)) + { + SendCharCustomize(CHAR_NAME_FAILURE, customizeInfo.get()); + return; + } + atLoginFlags &= ~AT_LOGIN_CUSTOMIZE; // prevent character rename to invalid name @@ -1811,6 +1818,7 @@ void WorldSession::HandleCharRaceOrFactionChangeCallback(std::shared_ptr<WorldPa return; } + std::string oldName = characterInfo->Name; uint8 oldRace = characterInfo->Race; uint8 playerClass = characterInfo->Class; uint8 level = characterInfo->Level; @@ -1855,6 +1863,13 @@ void WorldSession::HandleCharRaceOrFactionChangeCallback(std::shared_ptr<WorldPa } } + // prevent character rename + if (sWorld->getBoolConfig(CONFIG_PREVENT_RENAME_CUSTOMIZATION) && (factionChangeInfo->Name != oldName)) + { + SendCharFactionChange(CHAR_NAME_FAILURE, factionChangeInfo.get()); + return; + } + // prevent character rename to invalid name if (!normalizePlayerName(factionChangeInfo->Name)) { diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index de4f97ee4a1..662a814cc03 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -1451,6 +1451,9 @@ void World::LoadConfigSettings(bool reload) m_bool_configs[CONFIG_HOTSWAP_INSTALL_ENABLED] = sConfigMgr->GetBoolDefault("HotSwap.EnableInstall", true); m_bool_configs[CONFIG_HOTSWAP_PREFIX_CORRECTION_ENABLED] = sConfigMgr->GetBoolDefault("HotSwap.EnablePrefixCorrection", true); + // prevent character rename on character customization + m_bool_configs[CONFIG_PREVENT_RENAME_CUSTOMIZATION] = sConfigMgr->GetBoolDefault("PreventRenameCharacterOnCustomization", false); + // Check Invalid Position m_bool_configs[CONFIG_CREATURE_CHECK_INVALID_POSITION] = sConfigMgr->GetBoolDefault("Creature.CheckInvalidPosition", false); m_bool_configs[CONFIG_GAME_OBJECT_CHECK_INVALID_POSITION] = sConfigMgr->GetBoolDefault("GameObject.CheckInvalidPosition", false); diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h index bc7e9e52171..907a450bbac 100644 --- a/src/server/game/World/World.h +++ b/src/server/game/World/World.h @@ -190,6 +190,7 @@ enum WorldBoolConfigs CONFIG_HOTSWAP_BUILD_FILE_RECREATION_ENABLED, CONFIG_HOTSWAP_INSTALL_ENABLED, CONFIG_HOTSWAP_PREFIX_CORRECTION_ENABLED, + CONFIG_PREVENT_RENAME_CUSTOMIZATION, CONFIG_CREATURE_CHECK_INVALID_POSITION, CONFIG_GAME_OBJECT_CHECK_INVALID_POSITION, BOOL_CONFIG_VALUE_COUNT diff --git a/src/server/worldserver/worldserver.conf.dist b/src/server/worldserver/worldserver.conf.dist index 96b8aace805..f3e2f0ee6f2 100644 --- a/src/server/worldserver/worldserver.conf.dist +++ b/src/server/worldserver/worldserver.conf.dist @@ -3146,6 +3146,16 @@ NoGrayAggro.Above = 0 NoGrayAggro.Below = 0 # +# PreventRenameCharacterOnCustomization +# Description: If option is set to 1, player can not rename the character in character customization. +# Applies to all character customization commands. +# Default: 0 - (Disabled, character can be renamed in Character Customization) +# 1 - (Enabled, character can not be renamed in Character Customization) +# + +PreventRenameCharacterOnCustomization = 0 + +# # Creature.CheckInvalidPosition # Description: Check possible invalid position for creatures at startup (WARNING: SLOW WORLD SERVER STARTUP) # Default: 0 - (Do not show) |
