From ae2f3ce1ffe8e09d29cd6d7675fa9fdea78f63b0 Mon Sep 17 00:00:00 2001 From: JustArchi Date: Mon, 6 Apr 2020 20:37:53 +0200 Subject: [PATCH] Handle new notifications for comments --- ArchiSteamFarm/ArchiHandler.cs | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/ArchiSteamFarm/ArchiHandler.cs b/ArchiSteamFarm/ArchiHandler.cs index d84e633a8..cb19c1efd 100644 --- a/ArchiSteamFarm/ArchiHandler.cs +++ b/ArchiSteamFarm/ArchiHandler.cs @@ -70,6 +70,10 @@ namespace ArchiSteamFarm { LastPacketReceived = DateTime.UtcNow; switch (packetMsg.MsgType) { + case EMsg.ClientCommentNotifications: + HandleCommentNotifications(packetMsg); + + break; case EMsg.ClientItemAnnouncements: HandleItemAnnouncements(packetMsg); @@ -629,6 +633,17 @@ namespace ArchiSteamFarm { Client.Send(request); } + private void HandleCommentNotifications(IPacketMsg packetMsg) { + if (packetMsg == null) { + ArchiLogger.LogNullError(nameof(packetMsg)); + + return; + } + + ClientMsgProtobuf response = new ClientMsgProtobuf(packetMsg); + Client.PostCallback(new UserNotificationsCallback(packetMsg.TargetJobID, response.Body)); + } + private void HandleItemAnnouncements(IPacketMsg packetMsg) { if (packetMsg == null) { ArchiLogger.LogNullError(nameof(packetMsg)); @@ -837,6 +852,15 @@ namespace ArchiSteamFarm { Notifications = new Dictionary(1) { { EUserNotification.Items, msg.count_new_items } }; } + internal UserNotificationsCallback([JetBrains.Annotations.NotNull] JobID jobID, [JetBrains.Annotations.NotNull] CMsgClientCommentNotifications msg) { + if ((jobID == null) || (msg == null)) { + throw new ArgumentNullException(nameof(jobID) + " || " + nameof(msg)); + } + + JobID = jobID; + Notifications = new Dictionary(1) { { EUserNotification.Comments, msg.count_new_comments + msg.count_new_comments_owner + msg.count_new_comments_subscriptions } }; + } + [PublicAPI] public enum EUserNotification : byte { Unknown,