aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorForesterDev <forester.manv@gmail.com>2015-11-27 11:59:13 +0400
committerShauren <shauren.trinity@gmail.com>2016-03-21 18:49:45 +0100
commit6ed2cde7733e3e94ce84dbc53c6c42774c5c1847 (patch)
treef296cf1ee2d85720070948e4e2c72b9ced0e91a9 /src
parented392756753a143d7da473301d45a8687018784a (diff)
Core/Player: cleanup function CheckInstanceLoginValid
(cherry picked from commit 9573ec52f0ea2fbda0fdcac1bd9ed2617d359338)
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Player/Player.cpp12
-rw-r--r--src/server/game/Miscellaneous/Language.h4
2 files changed, 9 insertions, 7 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 59078cb8ef6..a9b7aa12b6b 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -2273,7 +2273,7 @@ void Player::SetGameMaster(bool on)
bool Player::CanBeGameMaster() const
{
- return m_session && m_session->HasPermission(rbac::RBAC_PERM_COMMAND_GM);
+ return GetSession()->HasPermission(rbac::RBAC_PERM_COMMAND_GM);
}
void Player::SetGMVisible(bool on)
@@ -18389,31 +18389,31 @@ bool Player::Satisfy(AccessRequirement const* ar, uint32 target_map, bool report
bool Player::CheckInstanceLoginValid(Map* map)
{
- if (!map->IsDungeon() || IsGameMaster())
+ if (!map->IsDungeon() || IsInstanceLoginGameMasterException())
return true;
if (map->IsRaid())
{
// cannot be in raid instance without a group
if (!GetGroup())
- return IsInstanceLoginGameMasterException();
+ return false;
}
else
{
// cannot be in normal instance without a group and more players than 1 in instance
if (!GetGroup() && map->GetPlayersCountExceptGMs() > 1)
- return IsInstanceLoginGameMasterException();
+ return false;
}
// do checks for satisfy accessreqs, instance full, encounter in progress (raid), perm bind group != perm bind player
- return sMapMgr->CanPlayerEnter(map->GetId(), this, true) || IsInstanceLoginGameMasterException();
+ return sMapMgr->CanPlayerEnter(map->GetId(), this, true);
}
bool Player::IsInstanceLoginGameMasterException() const
{
if (CanBeGameMaster())
{
- ChatHandler(GetSession()).PSendSysMessage("You didn't get kicked out of the instance even if Player::CheckInstanceLoginValid() returned false and without .gm on flag");
+ ChatHandler(GetSession()).SendSysMessage(LANG_INSTANCE_LOGIN_GAMEMASTER_EXCEPTION);
return true;
}
else
diff --git a/src/server/game/Miscellaneous/Language.h b/src/server/game/Miscellaneous/Language.h
index de0e4b77791..76d7a1380bf 100644
--- a/src/server/game/Miscellaneous/Language.h
+++ b/src/server/game/Miscellaneous/Language.h
@@ -1211,7 +1211,9 @@ enum TrinityStrings
LANG_BAN_ACCOUNT_YOUPERMBANNEDMESSAGE_WORLD = 11007,
LANG_NPCINFO_INHABIT_TYPE = 11008,
- LANG_NPCINFO_FLAGS_EXTRA = 11009
+ LANG_NPCINFO_FLAGS_EXTRA = 11009,
+
+ LANG_INSTANCE_LOGIN_GAMEMASTER_EXCEPTION = 11010
};
#endif