Beispiel #1
0
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);
	}
}
Beispiel #2
0
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);
        }
    }
}
Beispiel #3
0
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);
        }
    }
}
Beispiel #4
0
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);
		}
    }
}
Beispiel #5
0
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); }
    }
}
Beispiel #6
0
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;
		}
	}
}