aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChazy Chaz <ChazyTheBest@hotmail.es>2017-03-17 19:08:38 +0100
committerShauren <shauren.trinity@gmail.com>2017-03-17 19:08:38 +0100
commitc7ea1b97c239788a18752549ba34d0565f61ffe9 (patch)
treea32a03b5e585c58672a5bc2a844ec61d9d1e53e0 /src
parentc31de25627df8267b893dc6bbc49232cf81a07fd (diff)
Core/Config: Add option CharDelete.DemonHunter.MinLevel
Closes #19285
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Player/Player.cpp9
-rw-r--r--src/server/game/Handlers/CharacterHandler.cpp1
-rw-r--r--src/server/game/World/World.cpp1
-rw-r--r--src/server/game/World/World.h1
-rw-r--r--src/server/worldserver/worldserver.conf.dist8
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)