aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/2016_03_21_00_world_2015_11_27_00.sql3
-rw-r--r--src/server/game/Entities/Player/Player.cpp12
-rw-r--r--src/server/game/Miscellaneous/Language.h4
3 files changed, 12 insertions, 7 deletions
diff --git a/sql/updates/world/2016_03_21_00_world_2015_11_27_00.sql b/sql/updates/world/2016_03_21_00_world_2015_11_27_00.sql
new file mode 100644
index 00000000000..15be2ab73ed
--- /dev/null
+++ b/sql/updates/world/2016_03_21_00_world_2015_11_27_00.sql
@@ -0,0 +1,3 @@
+DELETE FROM `trinity_string` WHERE `entry` = 11010;
+INSERT INTO `trinity_string` (`entry`,`content_default`) VALUES
+(11010, 'You didn\'t get kicked out of the instance even if Player::CheckInstanceLoginValid() returned false and without .gm on flag');
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