diff --git a/src/server/game/Handlers/GroupHandler.cpp b/src/server/game/Handlers/GroupHandler.cpp index 8d9498c1a..1ad222eaf 100644 --- a/src/server/game/Handlers/GroupHandler.cpp +++ b/src/server/game/Handlers/GroupHandler.cpp @@ -110,6 +110,12 @@ void WorldSession::HandleGroupInviteOpcode(WorldPacket& recvData) return; } + if (!player->GetSocial()->HasFriend(GetPlayer()->GetGUID()) && GetPlayer()->getLevel() < sWorld->getIntConfig(CONFIG_PARTY_LEVEL_REQ)) + { + SendPartyResult(PARTY_OP_INVITE, player->GetName(), ERR_INVITE_RESTRICTED); + return; + } + Group* group = GetPlayer()->GetGroup(); if (group && (group->isBGGroup() || group->isBFGroup())) group = GetPlayer()->GetOriginalGroup(); diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index 69e5d9e46..da62ad302 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -652,6 +652,7 @@ void World::LoadConfigSettings(bool reload) m_int_configs[CONFIG_CHAT_CHANNEL_LEVEL_REQ] = sConfigMgr->GetIntDefault("ChatLevelReq.Channel", 1); m_int_configs[CONFIG_CHAT_WHISPER_LEVEL_REQ] = sConfigMgr->GetIntDefault("ChatLevelReq.Whisper", 1); m_int_configs[CONFIG_CHAT_SAY_LEVEL_REQ] = sConfigMgr->GetIntDefault("ChatLevelReq.Say", 1); + m_int_configs[CONFIG_PARTY_LEVEL_REQ] = sConfigMgr->GetIntDefault("PartyLevelReq", 1); m_int_configs[CONFIG_TRADE_LEVEL_REQ] = sConfigMgr->GetIntDefault("LevelReq.Trade", 1); m_int_configs[CONFIG_TICKET_LEVEL_REQ] = sConfigMgr->GetIntDefault("LevelReq.Ticket", 1); m_int_configs[CONFIG_AUCTION_LEVEL_REQ] = sConfigMgr->GetIntDefault("LevelReq.Auction", 1); diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h index 047fc2c04..0b8269d4e 100644 --- a/src/server/game/World/World.h +++ b/src/server/game/World/World.h @@ -270,6 +270,7 @@ enum WorldIntConfigs CONFIG_CHAT_CHANNEL_LEVEL_REQ, CONFIG_CHAT_WHISPER_LEVEL_REQ, CONFIG_CHAT_SAY_LEVEL_REQ, + CONFIG_PARTY_LEVEL_REQ, CONFIG_CHAT_TIME_MUTE_FIRST_LOGIN, CONFIG_TRADE_LEVEL_REQ, CONFIG_TICKET_LEVEL_REQ, diff --git a/src/server/worldserver/worldserver.conf.dist b/src/server/worldserver/worldserver.conf.dist index f1a0983b5..8de43dc14 100644 --- a/src/server/worldserver/worldserver.conf.dist +++ b/src/server/worldserver/worldserver.conf.dist @@ -1973,6 +1973,15 @@ ChatLevelReq.Whisper = 1 ChatLevelReq.Say = 1 +# +# PartyLevelReq +# Description: Minimum level at which players can invite to group, even if they aren't on +# the invite friends list. (Players who are on that friend list can always +# invite despite having lower level) +# Default: 1 + +PartyLevelReq = 1 + # # AllowPlayerCommands # Description: Allow players to use commands.