void Guild::SendMessageToGuild(uint64 ExcludePlayer, WorldPacket *data, uint8 Type) { std::list<PlayerInfo*>::iterator i; for (i = m_guildMembers.begin(); i != m_guildMembers.end();++i) { if(Type == G_MSGTYPE_ALLBUTONE) { if((*i)->guid == ExcludePlayer) continue; } Player *pMember = objmgr.GetPlayer( (*i)->guid); if (!pMember || !pMember->IsInWorld() || !pMember->GetSession()) continue; uint32 MemberRank = pMember->GetGuildRank(); if(Type == G_MSGTYPE_OFFICERCHAT) { if(!HasRankRight(MemberRank,GR_RIGHT_OFFCHATLISTEN)) continue; } else if(Type == G_MSGTYPE_PUBLICCHAT) { if(!HasRankRight(MemberRank,GR_RIGHT_GCHATLISTEN)) continue; } pMember->GetSession()->SendPacket(data); } }
void Guild::BroadcastToOfficers(WorldSession *session, const std::string& msg, uint32 language) { if (session && session->GetPlayer() && HasRankRight(session->GetPlayer()->GetRank(), GR_RIGHT_OFFCHATSPEAK)) { for(MemberList::const_iterator itr = members.begin(); itr != members.end(); ++itr) { WorldPacket data; ChatHandler::FillMessageData(&data, session, CHAT_MSG_OFFICER, language, NULL, 0, msg.c_str(), NULL); Player *pl = ObjectAccessor::FindPlayer(ObjectGuid(HIGHGUID_PLAYER, itr->first)); if (pl && pl->GetSession() && HasRankRight(pl->GetRank(),GR_RIGHT_OFFCHATLISTEN) && !pl->GetSocial()->HasIgnore(session->GetPlayer()->GetObjectGuid())) pl->GetSession()->SendPacket(&data); } } }
void Guild::BroadcastToGuild(WorldSession *session, const std::string& msg, uint32 language) { if (session && session->GetPlayer() && HasRankRight(session->GetPlayer()->GetRank(),GR_RIGHT_GCHATSPEAK)) { WorldPacket data; ChatHandler(session).FillMessageData(&data, CHAT_MSG_GUILD, language, 0, msg.c_str()); for (MemberList::const_iterator itr = members.begin(); itr != members.end(); ++itr) { Player *pl = ObjectAccessor::FindPlayer(MAKE_NEW_GUID(itr->first, 0, HIGHGUID_PLAYER)); if (pl && pl->GetSession() && HasRankRight(pl->GetRank(),GR_RIGHT_GCHATLISTEN) && !pl->GetSocial()->HasIgnore(session->GetPlayer()->GetGUIDLow()) ) pl->GetSession()->SendPacket(&data); } } }
void Guild::BroadcastToOfficers(WorldSession *session, std::string msg) { if (session && session->GetPlayer() && HasRankRight(session->GetPlayer()->GetRank(),GR_RIGHT_OFFCHATSPEAK)) { Player *pl; std::list<MemberSlot*>::iterator itr; for (itr = members.begin(); itr != members.end(); itr++) { WorldPacket data; sChatHandler.FillMessageData(&data, session, CHAT_MSG_GUILD, LANG_UNIVERSAL, NULL, msg.c_str()); pl = ObjectAccessor::Instance().FindPlayer((*itr)->guid); if (pl && pl->GetSession() && HasRankRight(pl->GetRank(),GR_RIGHT_OFFCHATLISTEN)) pl->GetSession()->SendPacket(&data); } } }
void Guild::BroadcastToOfficers(WorldSession* session, const std::string& msg, uint32 language) { if (!session) { return; } Player* player = session->GetPlayer(); if (!player || !HasRankRight(player->GetRank(), GR_RIGHT_OFFCHATSPEAK)) { return; } for (MemberList::const_iterator itr = members.begin(); itr != members.end(); ++itr) { WorldPacket data; ChatHandler::BuildChatPacket(data, CHAT_MSG_OFFICER, msg.c_str(), Language(language), player->GetChatTag(), player->GetObjectGuid(), player->GetName()); Player* pl = ObjectAccessor::FindPlayer(ObjectGuid(HIGHGUID_PLAYER, itr->first)); if (pl && pl->GetSession() && HasRankRight(pl->GetRank(), GR_RIGHT_OFFCHATLISTEN) && !pl->GetSocial()->HasIgnore(player->GetObjectGuid())) { pl->GetSession()->SendPacket(&data); } } }
void Guild::OfficerChannelChat(WorldSession *session, std::string msg) { if (session) { if(session->GetPlayer()) { uint32 MemberRank = session->GetPlayer()->GetGuildRank(); if(!HasRankRight(MemberRank,GR_RIGHT_OFFCHATSPEAK)) return; WorldPacket *data; if(session->GetPlayer()->m_modlanguage >=0) data = sChatHandler.FillMessageData( CHAT_MSG_OFFICER, session->GetPlayer()->m_modlanguage, msg.c_str(),session->GetPlayer()->GetGUID()); else data = sChatHandler.FillMessageData( CHAT_MSG_OFFICER, LANG_UNIVERSAL, msg.c_str(),session->GetPlayer()->GetGUID()); SendMessageToGuild(0, data, G_MSGTYPE_OFFICERCHAT); delete data; } } }