diff options
-rw-r--r-- | src/server/game/Server/Protocol/Handlers/CharacterHandler.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/server/game/Server/Protocol/Handlers/CharacterHandler.cpp b/src/server/game/Server/Protocol/Handlers/CharacterHandler.cpp index e777071b306..cf3ec422d9e 100644 --- a/src/server/game/Server/Protocol/Handlers/CharacterHandler.cpp +++ b/src/server/game/Server/Protocol/Handlers/CharacterHandler.cpp @@ -1387,6 +1387,18 @@ void WorldSession::HandleCharFactionOrRaceChange(WorldPacket& recv_data) SendPacket( &data ); return; } + + if (GetSecurity() == SEC_PLAYER) + { + uint32 raceMaskDisabled = sWorld.getIntConfig(CONFIG_CHARACTER_CREATING_DISABLED_RACEMASK); + if ((1 << (race - 1)) & raceMaskDisabled) + { + WorldPacket data(SMSG_CHAR_FACTION_CHANGE, 1); + data << uint8(CHAR_CREATE_ERROR); + SendPacket( &data ); + return; + } + } // prevent character rename to invalid name if (!normalizePlayerName(newname)) |