aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAokromes <Aokromes@users.noreply.github.com>2016-08-01 10:43:49 +0200
committerjoschiwald <joschiwald.trinity@gmail.com>2017-02-11 21:08:48 +0100
commit5264374fd657b5e42811631ab9a6d94e539aea46 (patch)
tree0605c8cb314ea673ca93e091c1e3ae29c2bc48e0 /src
parent04f7de8957317cddb3b892df484113fb0fd4f0cb (diff)
Core/Player: New PartyLevelReq setting (#17707)
(cherry picked from commit bfda0ba91d2b686177f471052637f837f8a6c1c4) Typo fix (cherry picked from commit 35f06ccb5568becadc6f4becdb6760cf0485d9aa)
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Handlers/GroupHandler.cpp6
-rw-r--r--src/server/game/World/World.cpp1
-rw-r--r--src/server/game/World/World.h1
-rw-r--r--src/server/worldserver/worldserver.conf.dist9
4 files changed, 17 insertions, 0 deletions
diff --git a/src/server/game/Handlers/GroupHandler.cpp b/src/server/game/Handlers/GroupHandler.cpp
index 1919ab76031..6cc162eff89 100644
--- a/src/server/game/Handlers/GroupHandler.cpp
+++ b/src/server/game/Handlers/GroupHandler.cpp
@@ -100,6 +100,12 @@ void WorldSession::HandlePartyInviteOpcode(WorldPackets::Party::PartyInviteClien
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 = GetPlayer()->GetOriginalGroup();
diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp
index e2f78a9a753..15845153998 100644
--- a/src/server/game/World/World.cpp
+++ b/src/server/game/World/World.cpp
@@ -662,6 +662,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_AUCTION_LEVEL_REQ] = sConfigMgr->GetIntDefault("LevelReq.Auction", 1);
m_int_configs[CONFIG_MAIL_LEVEL_REQ] = sConfigMgr->GetIntDefault("LevelReq.Mail", 1);
diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h
index 1e3695e84b0..7181d9592a9 100644
--- a/src/server/game/World/World.h
+++ b/src/server/game/World/World.h
@@ -302,6 +302,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_AUCTION_LEVEL_REQ,
CONFIG_MAIL_LEVEL_REQ,
diff --git a/src/server/worldserver/worldserver.conf.dist b/src/server/worldserver/worldserver.conf.dist
index d781afe9a43..11f9a2dd327 100644
--- a/src/server/worldserver/worldserver.conf.dist
+++ b/src/server/worldserver/worldserver.conf.dist
@@ -1804,6 +1804,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
# or ban list in the database. Needs to be enabled to save custom