Ejemplo n.º 1
0
void WorldSession::HandleGuildAccept(WorldPacket & recv_data)
{
	CHECK_INWORLD_RETURN

	Player* plyr = GetPlayer();

	if(!plyr)
		return;

	Player* inviter = objmgr.GetPlayer(plyr->GetGuildInvitersGuid());
	plyr->UnSetGuildInvitersGuid();

	if(!inviter)
	{
		return;
	}

	Guild* pGuild = inviter->m_playerInfo->guild;
	if(!pGuild)
	{
		return;
	}
	pGuild->getLock().Acquire();
	uint32 memberCount = pGuild->GetNumMembers();
	pGuild->getLock().Release();

	if( memberCount >= MAX_GUILD_MEMBERS ){
		plyr->UnSetGuildInvitersGuid();
		SystemMessage( "That guild is full." );
		return;
	}
	pGuild->AddGuildMember(plyr->m_playerInfo, NULL);
}
Ejemplo n.º 2
0
void WorldSession::HandleGuildAccept(WorldPacket & recv_data)
{
	Player *plyr = GetPlayer();

	if(!plyr)
		return;

	Player *inviter = objmgr.GetPlayer( plyr->GetGuildInvitersGuid() );
	plyr->UnSetGuildInvitersGuid();

	if(!inviter)
	{
		return;
	}

	Guild *pGuild = inviter->m_playerInfo->guild;
	if(!pGuild)
	{
		return;
	}

	if(pGuild->GetNumMembers() >= MAX_GUILD_MEMBERS)
	{
		return;
	}

	pGuild->AddGuildMember(plyr->m_playerInfo, NULL);
}
Ejemplo n.º 3
0
void WorldSession::HandleGuildAccept(WorldPacket & recv_data)
{
	CHECK_INWORLD_RETURN

	Player* plyr = GetPlayer();

	if(!plyr)
		return;

	Player* inviter = objmgr.GetPlayer(plyr->GetGuildInvitersGuid());
	plyr->UnSetGuildInvitersGuid();

	if(!inviter)
	{
		return;
	}

	Guild* pGuild = inviter->m_playerInfo->guild;
	if(!pGuild)
	{
		return;
	}
	pGuild->AddGuildMember(plyr->m_playerInfo, NULL);
}
Ejemplo n.º 4
0
//.guild join
bool ChatHandler::HandleGuildJoinCommand(const char* args, WorldSession* m_session)
{
    Player* selected_player = GetSelectedPlayer(m_session, true, true);
    if (selected_player == nullptr)
        return true;

#if VERSION_STRING != Cata
    if (selected_player->IsInGuild())
    {
        RedSystemMessage(m_session, "%s is already in a guild.", selected_player->GetName());
        return true;
    }
#else
    if (selected_player->GetGuild())
    {
        RedSystemMessage(m_session, "%s is already in a guild.", selected_player->GetName());
        return true;
    }
#endif

    if (!*args)
        return false;

#if VERSION_STRING != Cata
    Guild* guild = objmgr.GetGuildByGuildName(std::string(args));
    if (guild != nullptr)
    {
        guild->getLock().Acquire();
        uint32 memberCount = static_cast<uint32>(guild->GetNumMembers());
        guild->getLock().Release();

        if (memberCount >= MAX_GUILD_MEMBERS)
        {
            m_session->SystemMessage("That guild is full.");
            return true;
        }

        guild->AddGuildMember(selected_player->getPlayerInfo(), m_session, -2);
        GreenSystemMessage(m_session, "You have joined the guild '%s'", guild->getGuildName());
        sGMLog.writefromsession(m_session, "Force joined guild '%s'", guild->getGuildName());
        return true;
    }
    else
    {
        RedSystemMessage(m_session, "Guild %s is not a valid guildname!", args);
    }
#else
    Guild* guild = sGuildMgr.getGuildByName(std::string(args));
    if (guild != nullptr)
    {
        uint32 memberCount = guild->getMembersCount();

        if (memberCount >= worldConfig.guild.maxMembers)
        {
            m_session->SystemMessage("That guild is full.");
            return true;
        }

        guild->addMember(selected_player->getGuid(), 4);
        GreenSystemMessage(m_session, "You have joined the guild '%s'", guild->getName().c_str());
        sGMLog.writefromsession(m_session, "Force joined guild '%s'", guild->getName().c_str());
        return true;
    }
    else
    {
        RedSystemMessage(m_session, "Guild %s is not a valid guildname!", args);
    }
#endif

    return false;
}