diff --git a/Source/Game/Achievements/AchievementManager.cs b/Source/Game/Achievements/AchievementManager.cs index f5f279f73..69d910c20 100644 --- a/Source/Game/Achievements/AchievementManager.cs +++ b/Source/Game/Achievements/AchievementManager.cs @@ -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) diff --git a/Source/Game/Entities/Unit/Vignette.cs b/Source/Game/Entities/Unit/Vignette.cs index 14be3a8d6..f8b3f282e 100644 --- a/Source/Game/Entities/Unit/Vignette.cs +++ b/Source/Game/Entities/Unit/Vignette.cs @@ -5,7 +5,6 @@ using Framework.Constants; using Game.DataStorage; using Game.Maps; using Game.Networking.Packets; -using System.Collections.Generic; namespace Game.Entities { @@ -37,6 +36,10 @@ namespace Game.Entities receiver.SendPacket(vignetteUpdate); }; + Player playerOwner = owner.ToPlayer(); + if (playerOwner != null) + sender(playerOwner); + MessageDistDeliverer notifier = new(owner, sender, owner.GetVisibilityRange()); Cell.VisitWorldObjects(owner, notifier, owner.GetVisibilityRange()); } diff --git a/Source/Game/Guilds/Guild.cs b/Source/Game/Guilds/Guild.cs index ccaaa1312..873a79930 100644 --- a/Source/Game/Guilds/Guild.cs +++ b/Source/Game/Guilds/Guild.cs @@ -2411,16 +2411,14 @@ namespace Game.Guilds NewsLogEntry news = m_newsLog.AddEvent(trans, new NewsLogEntry(m_id, m_newsLog.GetNextGUID(), type, guid, flags, value)); DB.Characters.CommitTransaction(trans); - var packetBuilder = (Player receiver) => + BroadcastWorker(receiver => { GuildNewsPkt newsPacket = new(); news.WritePacket(newsPacket); newsPacket.NewsEvents.Last().CompletedDate += receiver.GetSession().GetTimezoneOffset(); receiver.SendPacket(newsPacket); - }; - - BroadcastWorker(packetBuilder); + }); } bool HasAchieved(uint achievementId)