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)
+4 -1
View File
@@ -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());
}
+2 -4
View File
@@ -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)