diff options
author | DJScias <djscias@gmail.com> | 2016-07-25 08:57:10 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2016-07-25 08:57:10 +0200 |
commit | bc467bb2618cc632edede5b00d8109177f075d16 (patch) | |
tree | ad69396abcd3c3a47fc1954bcd5e168753381f9c /src | |
parent | 766afbeacdc2d14ffc8e89a79e874b7c5075da76 (diff) |
Core/Players: Fix logic regarding HandleCharEnum and DHs (#17660)
* If CONFIG_CHARACTER_CREATING_MIN_LEVEL_FOR_DEMON_HUNTER was set to 0 (disable in the config), it would still not allow you to create a DH in case there were no prior characters.
* If RBAC_PERM_SKIP_CHECK_CHARACTER_CREATION_DEMON_HUNTER was true (AKA allow DH creation always) it would not allow DH creation regardless of existing characters or not considering canAlwaysCreateDemonHunter was not checked for validity on charEnum.IsDemonHunterCreationAllowed.
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Handlers/CharacterHandler.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp index 044eb15dab7..d1f2c3d7563 100644 --- a/src/server/game/Handlers/CharacterHandler.cpp +++ b/src/server/game/Handlers/CharacterHandler.cpp @@ -266,6 +266,8 @@ void WorldSession::HandleCharEnum(PreparedQueryResult result) { uint8 demonHunterCount = 0; // We use this counter to allow multiple demon hunter creations when allowed in config bool canAlwaysCreateDemonHunter = HasPermission(rbac::RBAC_PERM_SKIP_CHECK_CHARACTER_CREATION_DEMON_HUNTER); + if (sWorld->getIntConfig(CONFIG_CHARACTER_CREATING_MIN_LEVEL_FOR_DEMON_HUNTER) == 0) // char level = 0 means this check is disabled, so always true + canAlwaysCreateDemonHunter = true; WorldPackets::Character::EnumCharactersResult charEnum; charEnum.Success = true; charEnum.IsDeletedCharacters = false; @@ -319,7 +321,7 @@ void WorldSession::HandleCharEnum(PreparedQueryResult result) while (result->NextRow()); } - charEnum.IsDemonHunterCreationAllowed = (!charEnum.HasDemonHunterOnRealm && charEnum.HasLevel70OnRealm); + charEnum.IsDemonHunterCreationAllowed = (!charEnum.HasDemonHunterOnRealm && charEnum.HasLevel70OnRealm) || canAlwaysCreateDemonHunter; SendPacket(charEnum.Write()); } |