mirror of
https://github.com/mangosfour/server.git
synced 2025-12-13 04:37:00 +00:00
[10870] Properly remove deleted character from friends of online players.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
This commit is contained in:
parent
9b5dd492da
commit
73859988ad
2 changed files with 22 additions and 1 deletions
|
|
@ -4288,6 +4288,9 @@ void Player::DeleteFromDB(ObjectGuid playerguid, uint32 accountId, bool updateRe
|
|||
// Get guids of character's pets, will deleted in transaction
|
||||
QueryResult *resultPets = CharacterDatabase.PQuery("SELECT id FROM character_pet WHERE owner = '%u'", lowguid);
|
||||
|
||||
// delete char from friends list when selected chars is online (non existing - error)
|
||||
QueryResult *resultFriend = CharacterDatabase.PQuery("SELECT DISTINCT guid FROM character_social WHERE friend = '%u'", lowguid);
|
||||
|
||||
// NOW we can finally clear other DB data related to character
|
||||
CharacterDatabase.BeginTransaction();
|
||||
if (resultPets)
|
||||
|
|
@ -4301,6 +4304,24 @@ void Player::DeleteFromDB(ObjectGuid playerguid, uint32 accountId, bool updateRe
|
|||
delete resultPets;
|
||||
}
|
||||
|
||||
// cleanup friends for online players, offline case will cleanup later in code
|
||||
if (resultFriend)
|
||||
{
|
||||
do
|
||||
{
|
||||
Field* fieldsFriend = resultFriend->Fetch();
|
||||
if (Player* sFriend = sObjectAccessor.FindPlayer(ObjectGuid(HIGHGUID_PLAYER, fieldsFriend[0].GetUInt32())))
|
||||
{
|
||||
if (sFriend->IsInWorld())
|
||||
{
|
||||
sFriend->GetSocial()->RemoveFromSocialList(playerguid, false);
|
||||
sSocialMgr.SendFriendStatus(sFriend, FRIEND_REMOVED, playerguid, false);
|
||||
}
|
||||
}
|
||||
} while (resultFriend->NextRow());
|
||||
delete resultFriend;
|
||||
}
|
||||
|
||||
CharacterDatabase.PExecute("DELETE FROM characters WHERE guid = '%u'", lowguid);
|
||||
CharacterDatabase.PExecute("DELETE FROM character_account_data WHERE guid = '%u'", lowguid);
|
||||
CharacterDatabase.PExecute("DELETE FROM character_declinedname WHERE guid = '%u'", lowguid);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue