From c5a9ab65af58c8642f914c31f327f09ca3a0ce0c Mon Sep 17 00:00:00 2001 From: CraftedRO <24683355+CraftedRO@users.noreply.github.com> Date: Thu, 27 Jun 2024 19:54:31 +0300 Subject: Core/Players: Add level restrictions for faction changes (#30057) Co-authored-by: Shauren --- src/server/scripts/Commands/cs_character.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/server/scripts/Commands') diff --git a/src/server/scripts/Commands/cs_character.cpp b/src/server/scripts/Commands/cs_character.cpp index b8c175f0fa1..2633b8313a2 100644 --- a/src/server/scripts/Commands/cs_character.cpp +++ b/src/server/scripts/Commands/cs_character.cpp @@ -422,6 +422,24 @@ public: if (!player) return false; + CharacterCacheEntry const* characterInfo = sCharacterCache->GetCharacterCacheByGuid(player->GetGUID()); + if (!characterInfo) + return false; + + if (characterInfo->Level < 10) + { + handler->PSendSysMessage(LANG_CHANGEFACTION_NOT_ELIGIBLE_10); + handler->SetSentErrorMessage(true); + return false; + } + + if (characterInfo->Class == CLASS_DEATH_KNIGHT && characterInfo->Level < 60) + { + handler->PSendSysMessage(LANG_CHANGEFACTION_NOT_ELIGIBLE_60); + handler->SetSentErrorMessage(true); + return false; + } + if (Player* target = player->GetConnectedPlayer()) { handler->PSendSysMessage(LANG_CUSTOMIZE_PLAYER, handler->GetNameLink(target).c_str()); -- cgit v1.2.3