From 56feab44d961f3ce6ea7c8bd83eca7d2fbeae013 Mon Sep 17 00:00:00 2001 From: Aokromes Date: Wed, 3 Aug 2016 11:49:01 +0200 Subject: [PATCH] Core/Player: New PartyLevelReq setting --- src/server/game/Handlers/GroupHandler.cpp | 6 ++++++ src/server/game/World/World.cpp | 1 + src/server/game/World/World.h | 1 + src/server/worldserver/worldserver.conf.dist | 9 +++++++++ 4 files changed, 17 insertions(+) diff --git a/src/server/game/Handlers/GroupHandler.cpp b/src/server/game/Handlers/GroupHandler.cpp index 632aff4b38c..3dfd960e4e5 100644 --- a/src/server/game/Handlers/GroupHandler.cpp +++ b/src/server/game/Handlers/GroupHandler.cpp @@ -145,6 +145,12 @@ void WorldSession::HandleGroupInviteOpcode(WorldPacket& recvData) return; } + if (!player->GetSocial()->HasFriend(GetPlayer()->GetGUID().GetCounter()) && player->getLevel() < sWorld->getIntConfig(CONFIG_PARTY_LEVEL_REQ)) + { + SendPartyResult(PARTY_OP_INVITE, membername, ERR_INVITE_RESTRICTED); + return; + } + ObjectGuid invitedGuid = player->GetGUID(); Group* group = GetPlayer()->GetGroup(); diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index d7bb90a4ba2..004d3bcb761 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -604,6 +604,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 eec5f08d98a..4a3e75b4752 100644 --- a/src/server/game/World/World.h +++ b/src/server/game/World/World.h @@ -289,6 +289,7 @@ enum WorldIntConfigs CONFIG_CHAT_CHANNEL_LEVEL_REQ, CONFIG_CHAT_WHISPER_LEVEL_REQ, CONFIG_CHAT_SAY_LEVEL_REQ, + CONFIG_PARTY_LEVEL_REQ, CONFIG_TRADE_LEVEL_REQ, CONFIG_TICKET_LEVEL_REQ, CONFIG_AUCTION_LEVEL_REQ, diff --git a/src/server/worldserver/worldserver.conf.dist b/src/server/worldserver/worldserver.conf.dist index 1d0179e68c6..f6081007858 100644 --- a/src/server/worldserver/worldserver.conf.dist +++ b/src/server/worldserver/worldserver.conf.dist @@ -1662,6 +1662,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 invitee friends list. (Players who are on that friend list can always +# invite despite having lower level) +# Default: 1 + +PartyLevelReq = 1 + # # PreserveCustomChannels # Description: Store custom chat channel settings like password, automatic ownership handout