aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpsayafan <psayafan@hotmail.com>2016-06-19 10:23:27 +0430
committerjoschiwald <joschiwald.trinity@gmail.com>2017-02-01 22:53:24 +0100
commitd1e9bb6f2681adc199ea05af938c229779d98d07 (patch)
treeff72659b76e0f20f7cc531f002cae17ece404dc4
parent4d58d58c990c3400e0223b8c4a717b4458c91fbb (diff)
Core/Player: Add option to prevent rename during character customization
Closes #17420 (cherry picked from commit fe2aed6047baa5871ab0840353a26cdd08d62f49)
-rw-r--r--src/server/game/Handlers/CharacterHandler.cpp15
-rw-r--r--src/server/game/World/World.cpp3
-rw-r--r--src/server/game/World/World.h1
-rw-r--r--src/server/worldserver/worldserver.conf.dist10
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)