void WorldSession::HandleGroupUninviteNameOpcode(WorldPacket & recv_data) { CHECK_PACKET_SIZE(recv_data,1); std::string membername; recv_data >> membername; // player not found if(!normalizePlayerName(membername)) return; // can't uninvite yourself if(GetPlayer()->GetName() == membername) { sLog.outError("WorldSession::HandleGroupUninviteNameOpcode: leader %s(%d) tried to uninvite himself from the group.", GetPlayer()->GetName(), GetPlayer()->GetGUIDLow()); return; } PartyResult res = GetPlayer()->CanUninviteFromGroup(); if(res != PARTY_RESULT_OK) { SendPartyResult(PARTY_OP_LEAVE, "", res); return; } Group* grp = GetPlayer()->GetGroup(); if(!grp) return; if(uint64 guid = grp->GetMemberGUID(membername)) { Player::RemoveFromGroup(grp,guid); return; } if(Player* plr = grp->GetInvited(membername)) { plr->UninviteFromGroup(); return; } SendPartyResult(PARTY_OP_LEAVE, membername, PARTY_RESULT_NOT_IN_YOUR_PARTY); }
void WorldSession::HandleGroupUninviteOpcode(WorldPacket & recv_data) { std::string membername; recv_data >> membername; // player not found if (!normalizePlayerName(membername)) return; // can't uninvite yourself if (GetPlayer()->GetName() == membername) { sLog.outError("WorldSession::HandleGroupUninviteOpcode: leader %s tried to uninvite himself from the group.", GetPlayer()->GetName(), GetPlayer()->GetObjectGuid().GetString().c_str()); return; } PartyResult res = GetPlayer()->CanUninviteFromGroup(); if (res != ERR_PARTY_RESULT_OK) { SendPartyResult(PARTY_OP_LEAVE, "", res); return; } Group* grp = GetPlayer()->GetGroup(); if (!grp) return; ObjectGuid guid = grp->GetMemberGUID(membername); if (!guid.IsEmpty()) { Player::RemoveFromGroup(grp, guid); return; } if (Player* plr = grp->GetInvited(membername)) { plr->UninviteFromGroup(); return; } SendPartyResult(PARTY_OP_LEAVE, membername, ERR_TARGET_NOT_IN_GROUP_S); }
void WorldSession::HandleGroupUninviteOpcode(WorldPacket & recv_data) { std::string membername; recv_data >> membername; // player not found if (!normalizePlayerName(membername)) return; // can't uninvite yourself if (GetPlayer()->GetName() == membername) { sLog->outError("WorldSession::HandleGroupUninviteOpcode: leader %s(%d) tried to uninvite himself from the group.", GetPlayer()->GetName(), GetPlayer()->GetGUIDLow()); return; } PartyResult res = GetPlayer()->CanUninviteFromGroup(); if (res != ERR_PARTY_RESULT_OK) { SendPartyResult(PARTY_OP_UNINVITE, "", res); return; } Group* grp = GetPlayer()->GetGroup(); if (!grp) return; if (uint64 guid = grp->GetMemberGUID(membername)) { Player::RemoveFromGroup(grp, guid, GROUP_REMOVEMETHOD_KICK, GetPlayer()->GetGUID()); return; } if (Player* plr = grp->GetInvited(membername)) { plr->UninviteFromGroup(); return; } SendPartyResult(PARTY_OP_UNINVITE, membername, ERR_TARGET_NOT_IN_GROUP_S); }
void WorldSession::HandleGroupUninviteOpcode(WorldPacket & recv_data) { sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Received CMSG_GROUP_UNINVITE"); std::string membername; recv_data >> membername; Player *player = GetPlayer(); // player not found if (!normalizePlayerName(membername)) { if(player->HaveBot() && !membername.compare(player->GetBot()->GetName())) { Group *grp = GetPlayer()->GetGroup(); player->SetBotMustDie(); Player::RemoveFromGroup(grp, player->GetBot()->GetGUID()); } return; } // can't uninvite yourself if (GetPlayer()->GetName() == membername) { sLog->outError("WorldSession::HandleGroupUninviteOpcode: leader %s(%d) tried to uninvite himself from the group.", GetPlayer()->GetName(), GetPlayer()->GetGUIDLow()); return; } PartyResult res = GetPlayer()->CanUninviteFromGroup(); if (res != ERR_PARTY_RESULT_OK) { SendPartyResult(PARTY_OP_UNINVITE, "", res); return; } Group* grp = GetPlayer()->GetGroup(); if (!grp) return; if (uint64 guid = grp->GetMemberGUID(membername)) { if(player->HaveBot() && !membername.compare(player->GetBot()->GetName())) player->SetBotMustDie(); Player::RemoveFromGroup(grp, guid, GROUP_REMOVEMETHOD_KICK, GetPlayer()->GetGUID()); return; } else { //check if it is a bot if(player->HaveBot()) { Group *grp = GetPlayer()->GetGroup(); player->SetBotMustDie(); Player::RemoveFromGroup(grp, player->GetBot()->GetGUID(), GROUP_REMOVEMETHOD_KICK); return; } } if (Player* plr = grp->GetInvited(membername)) { plr->UninviteFromGroup(); return; } SendPartyResult(PARTY_OP_UNINVITE, membername, ERR_TARGET_NOT_IN_GROUP_S); }