mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-02-10 03:59:05 +01:00
Fix possible bug occuring during shuffling of raid subgroups, and prevent client side exploit. Author: Vladimir.
--HG-- branch : trunk
This commit is contained in:
@@ -534,8 +534,10 @@ void WorldSession::HandleGroupChangeSubGroupOpcode(WorldPacket & recv_data)
|
||||
std::string name;
|
||||
uint8 groupNr;
|
||||
recv_data >> name;
|
||||
|
||||
recv_data >> groupNr;
|
||||
|
||||
if (groupNr >= MAX_RAID_SUBGROUPS)
|
||||
return;
|
||||
|
||||
/** error handling **/
|
||||
uint64 senderGuid = GetPlayer()->GetGUID();
|
||||
@@ -546,16 +548,18 @@ void WorldSession::HandleGroupChangeSubGroupOpcode(WorldPacket & recv_data)
|
||||
return;
|
||||
/********************/
|
||||
|
||||
Player *movedPlayer=objmgr.GetPlayer(name.c_str());
|
||||
if (!movedPlayer)
|
||||
return;
|
||||
Player *movedPlayer = objmgr.GetPlayer(name.c_str());
|
||||
if (movedPlayer)
|
||||
{
|
||||
//Do not allow leader to change group of player in combat
|
||||
if (movedPlayer->isInCombat())
|
||||
return;
|
||||
|
||||
//Do not allow leader to change group of player in combat
|
||||
if (movedPlayer->isInCombat())
|
||||
return;
|
||||
|
||||
// everything's fine, do it
|
||||
group->ChangeMembersGroup(movedPlayer, groupNr);
|
||||
// everything's fine, do it
|
||||
group->ChangeMembersGroup(movedPlayer, groupNr);
|
||||
}
|
||||
else
|
||||
group->ChangeMembersGroup(objmgr.GetPlayerGUIDByName(name.c_str()), groupNr);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGroupAssistantLeaderOpcode(WorldPacket & recv_data)
|
||||
|
||||
Reference in New Issue
Block a user