Prepare for custom HeartBeat handling

This commit is contained in:
JustArchi
2016-08-08 18:23:15 +02:00
parent e675a3a488
commit b9f2dd1292
2 changed files with 33 additions and 0 deletions

View File

@@ -53,6 +53,16 @@ namespace ArchiSteamFarm {
*/
internal sealed class HeartBeatCallback : CallbackMsg {
internal HeartBeatCallback(JobID jobID, CMsgClientHeartBeat msg) {
if ((jobID == null) || (msg == null)) {
throw new ArgumentNullException(nameof(jobID) + " || " + nameof(msg));
}
JobID = jobID;
}
}
internal sealed class NotificationsCallback : CallbackMsg {
internal enum ENotification : byte {
[SuppressMessage("ReSharper", "UnusedMember.Global")]
@@ -299,6 +309,9 @@ namespace ArchiSteamFarm {
case EMsg.ClientFSOfflineMessageNotification:
HandleFSOfflineMessageNotification(packetMsg);
break;
case EMsg.ClientHeartBeat:
HandleHeartBeat(packetMsg);
break;
case EMsg.ClientItemAnnouncements:
HandleItemAnnouncements(packetMsg);
break;
@@ -324,6 +337,16 @@ namespace ArchiSteamFarm {
Client.PostCallback(new OfflineMessageCallback(packetMsg.TargetJobID, response.Body));
}
private void HandleHeartBeat(IPacketMsg packetMsg) {
if (packetMsg == null) {
Logging.LogNullError(nameof(packetMsg), Bot.BotName);
return;
}
ClientMsgProtobuf<CMsgClientHeartBeat> response = new ClientMsgProtobuf<CMsgClientHeartBeat>(packetMsg);
Client.PostCallback(new HeartBeatCallback(packetMsg.TargetJobID, response.Body));
}
private void HandleItemAnnouncements(IPacketMsg packetMsg) {
if (packetMsg == null) {
Logging.LogNullError(nameof(packetMsg), Bot.BotName);

View File

@@ -221,6 +221,7 @@ namespace ArchiSteamFarm {
CallbackManager.Subscribe<SteamUser.UpdateMachineAuthCallback>(OnMachineAuth);
CallbackManager.Subscribe<SteamUser.WebAPIUserNonceCallback>(OnWebAPIUserNonce);
CallbackManager.Subscribe<ArchiHandler.HeartBeatCallback>(OnHeartBeat);
CallbackManager.Subscribe<ArchiHandler.NotificationsCallback>(OnNotifications);
CallbackManager.Subscribe<ArchiHandler.OfflineMessageCallback>(OnOfflineMessage);
CallbackManager.Subscribe<ArchiHandler.PlayingSessionStateCallback>(OnPlayingSessionState);
@@ -1965,6 +1966,15 @@ namespace ArchiSteamFarm {
}
}
private void OnHeartBeat(ArchiHandler.HeartBeatCallback callback) {
if (callback == null) {
Logging.LogNullError(nameof(callback), BotName);
return;
}
Logging.LogGenericDebug("HeartBeat", BotName);
}
private void OnNotifications(ArchiHandler.NotificationsCallback callback) {
if (callback == null) {
Logging.LogNullError(nameof(callback), BotName);