add announcement message support

This commit is contained in:
Alan Moon 2025-03-20 11:14:02 -07:00
parent dc0fa9b596
commit ba5230e799

View File

@ -131,6 +131,9 @@ public class MessagingService
public ArrayOfCombinedListMessage ConstructCombinedMessageArray(Viking viking, Viking publicViking) public ArrayOfCombinedListMessage ConstructCombinedMessageArray(Viking viking, Viking publicViking)
{ {
// get now timestamp
DateTime now = DateTime.UtcNow;
// get all messages in viking board // get all messages in viking board
List<Model.Message> messages = ctx.Messages.Where(e => e.ToVikingId == publicViking.Id).ToList(); List<Model.Message> messages = ctx.Messages.Where(e => e.ToVikingId == publicViking.Id).ToList();
@ -245,6 +248,28 @@ public class MessagingService
} }
} }
// add announcements all the time
Announcement[] announcements = new Announcement[0];
if (viking.GameVersion <= ClientVersion.Max_OldJS && (viking.GameVersion & ClientVersion.WoJS) != 0)
announcements = XmlUtil.DeserializeXml<AnnouncementList>(XmlUtil.ReadResourceXmlString("announcements_wojs")).Announcements;
else if (viking.GameVersion == ClientVersion.SS)
announcements = XmlUtil.DeserializeXml<AnnouncementList>(XmlUtil.ReadResourceXmlString("announcements_ss")).Announcements;
foreach (var announcement in announcements)
{
if(announcement.Type == AnnouncementType.Text)
{
CombinedListMessage announcementMsg = new CombinedListMessage
{
MessageType = 5,
MessageBody = XmlUtil.SerializeXml(announcement),
MessageDate = now
};
combinedListMessages.Add(announcementMsg);
}
}
// save any changes made to db // save any changes made to db
ctx.SaveChanges(); ctx.SaveChanges();