From 03fbc0a69d910ef8058a9db88f9b4b341cd7d59d Mon Sep 17 00:00:00 2001 From: Dehravor Date: Thu, 2 Jan 2014 10:36:13 +0100 Subject: Core/Guild: Implement GR_RIGHT_VIEWOFFNOTE --- src/server/game/Guilds/Guild.cpp | 12 ++++++++---- src/server/game/Guilds/Guild.h | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/server/game/Guilds/Guild.cpp b/src/server/game/Guilds/Guild.cpp index 239c0b17e72..33e16dbf994 100644 --- a/src/server/game/Guilds/Guild.cpp +++ b/src/server/game/Guilds/Guild.cpp @@ -701,7 +701,7 @@ bool Guild::Member::CheckStats() const return true; } -void Guild::Member::WritePacket(WorldPacket& data) const +void Guild::Member::WritePacket(WorldPacket& data, bool sendOfficerNote) const { data << uint64(m_guid) << uint8(m_flags) @@ -715,8 +715,12 @@ void Guild::Member::WritePacket(WorldPacket& data) const if (!m_flags) data << float(float(::time(NULL) - m_logoutTime) / DAY); - data << m_publicNote - << m_officerNote; + data << m_publicNote; + + if (sendOfficerNote) + data << m_officerNote; + else + data << ""; } // Decreases amount of money/slots left for today. @@ -1312,7 +1316,7 @@ void Guild::HandleRoster(WorldSession* session /*= NULL*/) ritr->WritePacket(data); for (Members::const_iterator itr = m_members.begin(); itr != m_members.end(); ++itr) - itr->second->WritePacket(data); + itr->second->WritePacket(data, _HasRankRight(session->GetPlayer(), GR_RIGHT_VIEWOFFNOTE)); if (session) { diff --git a/src/server/game/Guilds/Guild.h b/src/server/game/Guilds/Guild.h index aa4c002433a..c8c7089fee6 100644 --- a/src/server/game/Guilds/Guild.h +++ b/src/server/game/Guilds/Guild.h @@ -315,7 +315,7 @@ private: bool LoadFromDB(Field* fields); void SaveToDB(SQLTransaction& trans) const; - void WritePacket(WorldPacket& data) const; + void WritePacket(WorldPacket& data, bool sendOfficerNote) const; uint64 GetGUID() const { return m_guid; } std::string const& GetName() const { return m_name; } -- cgit v1.2.3 From e794e85969c1fec54cbf5140a17272e3d1070a93 Mon Sep 17 00:00:00 2001 From: Dehravor Date: Thu, 2 Jan 2014 10:37:44 +0100 Subject: Core/Guild: HandleRoster should always have a valid session --- src/server/game/Guilds/Guild.cpp | 14 +++----------- src/server/game/Guilds/Guild.h | 2 +- 2 files changed, 4 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/server/game/Guilds/Guild.cpp b/src/server/game/Guilds/Guild.cpp index 33e16dbf994..f448fbb9f19 100644 --- a/src/server/game/Guilds/Guild.cpp +++ b/src/server/game/Guilds/Guild.cpp @@ -1303,7 +1303,7 @@ bool Guild::SetName(std::string const& name) return true; } -void Guild::HandleRoster(WorldSession* session /*= NULL*/) +void Guild::HandleRoster(WorldSession* session) { // Guess size WorldPacket data(SMSG_GUILD_ROSTER, (4 + m_motd.length() + 1 + m_info.length() + 1 + 4 + _GetRanksSize() * (4 + 4 + GUILD_BANK_MAX_TABS * (4 + 4)) + m_members.size() * 50)); @@ -1318,16 +1318,8 @@ void Guild::HandleRoster(WorldSession* session /*= NULL*/) for (Members::const_iterator itr = m_members.begin(); itr != m_members.end(); ++itr) itr->second->WritePacket(data, _HasRankRight(session->GetPlayer(), GR_RIGHT_VIEWOFFNOTE)); - if (session) - { - TC_LOG_DEBUG("guild", "SMSG_GUILD_ROSTER [%s]", session->GetPlayerInfo().c_str()); - session->SendPacket(&data); - } - else - { - TC_LOG_DEBUG("guild", "SMSG_GUILD_ROSTER [Broadcast]"); - BroadcastPacket(&data); - } + TC_LOG_DEBUG("guild", "SMSG_GUILD_ROSTER [%s]", session->GetPlayerInfo().c_str()); + session->SendPacket(&data); } void Guild::HandleQuery(WorldSession* session) diff --git a/src/server/game/Guilds/Guild.h b/src/server/game/Guilds/Guild.h index c8c7089fee6..fca483e92c3 100644 --- a/src/server/game/Guilds/Guild.h +++ b/src/server/game/Guilds/Guild.h @@ -661,7 +661,7 @@ public: bool SetName(std::string const& name); // Handle client commands - void HandleRoster(WorldSession* session = NULL); // NULL = broadcast + void HandleRoster(WorldSession* session); void HandleQuery(WorldSession* session); void HandleSetMOTD(WorldSession* session, std::string const& motd); void HandleSetInfo(WorldSession* session, std::string const& info); -- cgit v1.2.3