diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 9 | ||||
-rw-r--r-- | src/server/game/Handlers/CharacterHandler.cpp | 1 | ||||
-rw-r--r-- | src/server/game/World/World.cpp | 1 | ||||
-rw-r--r-- | src/server/game/World/World.h | 1 | ||||
-rw-r--r-- | src/server/worldserver/worldserver.conf.dist | 8 |
5 files changed, 19 insertions, 1 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 0d52d34b149..bc2d1f0b194 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -3751,7 +3751,14 @@ void Player::DeleteFromDB(ObjectGuid playerguid, uint32 accountId, bool updateRe else if (CharacterInfo const* characterInfo = sWorld->GetCharacterInfo(playerguid)) // To avoid a query, we select loaded data. If it doesn't exist, return. { // Define the required variables - uint32 charDeleteMinLvl = sWorld->getIntConfig(characterInfo->Class != CLASS_DEATH_KNIGHT ? CONFIG_CHARDELETE_MIN_LEVEL : CONFIG_CHARDELETE_DEATH_KNIGHT_MIN_LEVEL); + uint32 charDeleteMinLvl; + + if (characterInfo->Class == CLASS_DEATH_KNIGHT) + charDeleteMinLvl = sWorld->getIntConfig(CONFIG_CHARDELETE_DEATH_KNIGHT_MIN_LEVEL); + else if (characterInfo->Class == CLASS_DEMON_HUNTER) + charDeleteMinLvl = sWorld->getIntConfig(CONFIG_CHARDELETE_DEMON_HUNTER_MIN_LEVEL); + else + charDeleteMinLvl = sWorld->getIntConfig(CONFIG_CHARDELETE_MIN_LEVEL); // if we want to finalize the character removal or the character does not meet the level requirement of either heroic or non-heroic settings, // we set it to mode CHAR_DELETE_REMOVE diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp index 0c3e81ccb1b..ad1b6f7c7f3 100644 --- a/src/server/game/Handlers/CharacterHandler.cpp +++ b/src/server/game/Handlers/CharacterHandler.cpp @@ -2459,6 +2459,7 @@ void WorldSession::HandleCharUndeleteOpcode(WorldPackets::Character::UndeleteCha /// @todo: add more safety checks /// * max char count per account /// * max death knight count + /// * max demon hunter count /// * team violation PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_SUM_CHARS); diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index 484232494c1..55303c5e033 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -1263,6 +1263,7 @@ void World::LoadConfigSettings(bool reload) m_int_configs[CONFIG_CHARDELETE_METHOD] = sConfigMgr->GetIntDefault("CharDelete.Method", 0); m_int_configs[CONFIG_CHARDELETE_MIN_LEVEL] = sConfigMgr->GetIntDefault("CharDelete.MinLevel", 0); m_int_configs[CONFIG_CHARDELETE_DEATH_KNIGHT_MIN_LEVEL] = sConfigMgr->GetIntDefault("CharDelete.DeathKnight.MinLevel", 0); + m_int_configs[CONFIG_CHARDELETE_DEMON_HUNTER_MIN_LEVEL] = sConfigMgr->GetIntDefault("CharDelete.DemonHunter.MinLevel", 0); m_int_configs[CONFIG_CHARDELETE_KEEP_DAYS] = sConfigMgr->GetIntDefault("CharDelete.KeepDays", 30); // No aggro from gray mobs diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h index 389f40947b6..c6fbe7e47ab 100644 --- a/src/server/game/World/World.h +++ b/src/server/game/World/World.h @@ -351,6 +351,7 @@ enum WorldIntConfigs CONFIG_CHARDELETE_METHOD, CONFIG_CHARDELETE_MIN_LEVEL, CONFIG_CHARDELETE_DEATH_KNIGHT_MIN_LEVEL, + CONFIG_CHARDELETE_DEMON_HUNTER_MIN_LEVEL, CONFIG_AUTOBROADCAST_CENTER, CONFIG_AUTOBROADCAST_INTERVAL, CONFIG_MAX_RESULTS_LOOKUP_COMMANDS, diff --git a/src/server/worldserver/worldserver.conf.dist b/src/server/worldserver/worldserver.conf.dist index 31609770c38..7f662a5c954 100644 --- a/src/server/worldserver/worldserver.conf.dist +++ b/src/server/worldserver/worldserver.conf.dist @@ -2906,6 +2906,14 @@ CharDelete.MinLevel = 0 CharDelete.DeathKnight.MinLevel = 0 # +# CharDelete.DemonHunter.MinLevel +# Description: Required level to use the unlinking method if enabled for demon hunters. +# Default: 0 - (Same method for every level) +# 1+ - (Only characters with the specified level will use the unlinking method) + +CharDelete.DemonHunter.MinLevel = 0 + +# # CharDelete.KeepDays # Description: Time (in days) before unlinked characters will be removed from the database. # Default: 30 - (Enabled) |