Core/Achievements: Fixed achievement SMSG_ACHIEVEMENT_EARNED not being sent to self

Port From (https://github.com/TrinityCore/TrinityCore/commit/0384d9066336b8ec71434c49244d1ddb0657c11e)
This commit is contained in:
Hondacrx
2024-08-08 17:33:23 -04:00
parent 2f71dbfda0
commit 96f57592d9
3 changed files with 10 additions and 11 deletions
@@ -671,6 +671,8 @@ namespace Game.Achievements
achievementEarned.Time += receiver.GetSession().GetTimezoneOffset();
receiver.SendPacket(achievementEarned);
};
achievementEarnedBuilder(_owner);
if (!achievement.Flags.HasAnyFlag(AchievementFlags.TrackingFlag))
{
@@ -678,8 +680,6 @@ namespace Game.Achievements
MessageDistDeliverer notifier = new(_owner, achievementEarnedBuilder, dist);
Cell.VisitWorldObjects(_owner, notifier, dist);
}
else
achievementEarnedBuilder(_owner);
}
public override void SendPacket(ServerPacket data)
@@ -1050,7 +1050,7 @@ namespace Game.Achievements
Global.WorldMgr.SendGlobalMessage(serverFirstAchievement);
}
var guildAchievementEarnedBuilder = (Player receiver) =>
_owner.BroadcastWorker(receiver =>
{
GuildAchievementEarned guildAchievementEarned = new();
guildAchievementEarned.AchievementID = achievement.Id;
@@ -1058,9 +1058,7 @@ namespace Game.Achievements
guildAchievementEarned.TimeEarned = GameTime.GetUtcWowTime();
guildAchievementEarned.TimeEarned += receiver.GetSession().GetTimezoneOffset();
receiver.SendPacket(guildAchievementEarned);
};
_owner.BroadcastWorker(guildAchievementEarnedBuilder);
});
}
public override void SendPacket(ServerPacket data)