@@ -22,22 +22,20 @@ public class AccountLogin
2222 public static CallbackManager ChatLoggerManager ;
2323
2424 public static bool ChatLogger = false ;
25+ private static EResult LastLogOnResult ;
2526
2627 public static bool IsLoggedIn { get ; private set ; }
2728 public static bool isRunning = false ;
2829
29- private static int DisconnectedCounter ;
30- private static int MaxDisconnects = 5 ;
31-
30+
3231 private static string NewloginKey = null ;
3332
3433 public static string user , pass ;
3534
35+
3636 public static string authCode , twoFactorAuth ;
37- public static string steamID ;
37+ public static string steamID , LastMessageSentReceived ;
3838
39- public static string myUserNonce ;
40- public static string myUniqueId ;
4139 public static ulong CurrentSteamID = 0 ;
4240
4341 public static string AvatarPrefix = "http://cdn.akamai.steamstatic.com/steamcommunity/public/images/avatars/" ;
@@ -76,6 +74,9 @@ public static void Login()
7674
7775 ChatLoggerManager = new CallbackManager ( steamClient ) ;
7876
77+ // DebugLog.AddListener(new MyListener());
78+ // DebugLog.Enabled = true;
79+
7980 #region Callbacks
8081 steamUser = steamClient . GetHandler < SteamUser > ( ) ;
8182 steamFriends = steamClient . GetHandler < SteamFriends > ( ) ;
@@ -134,7 +135,6 @@ static void OnConnected(SteamClient.ConnectedCallback callback)
134135 else
135136 {
136137 NewloginKey = a . LoginKey ;
137- myUniqueId = a . LoginKey ;
138138 File . WriteAllText ( Program . AccountsJsonFile , JsonConvert . SerializeObject ( list , Formatting . Indented ) ) ; // update login key
139139 }
140140 }
@@ -158,8 +158,14 @@ static void OnConnected(SteamClient.ConnectedCallback callback)
158158
159159 static void OnLoggedOn ( SteamUser . LoggedOnCallback callback )
160160 {
161+ if ( callback == null )
162+ {
163+ throw new ArgumentNullException ( nameof ( callback ) ) ;
164+ }
165+
161166 LastLogOnResult = callback . Result ;
162167
168+
163169 bool isSteamGuard = callback . Result == EResult . AccountLogonDenied ;
164170 bool is2FA = callback . Result == EResult . AccountLoginDeniedNeedTwoFactor ;
165171 bool isLoginKey = callback . Result == EResult . InvalidPassword && NewloginKey != null ;
@@ -250,7 +256,6 @@ static void OnLoggedOn(SteamUser.LoggedOnCallback callback)
250256
251257 steamID = steamClient . SteamID . ConvertToUInt64 ( ) . ToString ( ) ;
252258 CurrentSteamID = steamClient . SteamID . ConvertToUInt64 ( ) ;
253- myUserNonce = callback . WebAPIUserNonce ;
254259 UserCountry = callback . IPCountryCode ;
255260
256261 IsLoggedIn = true ;
@@ -269,68 +274,50 @@ static void OnLoggedOn(SteamUser.LoggedOnCallback callback)
269274
270275 static void OnDisconnected ( SteamClient . DisconnectedCallback callback )
271276 {
272- if ( callback . UserInitiated && ! ReconnectOnUserInitiated )
277+ if ( callback . UserInitiated )
273278 {
274279 return ;
275280 }
276281
282+ EResult lastLogOnResult = LastLogOnResult ;
283+ LastLogOnResult = EResult . Invalid ;
284+
277285 switch ( lastLogOnResult )
278286 {
279287 case EResult . AccountDisabled :
280288 // Do not attempt to reconnect, those failures are permanent
281289 return ;
282- case EResult . InvalidPassword when ! string . IsNullOrEmpty ( BotDatabase . LoginKey ) :
283- BotDatabase . LoginKey = null ;
284- ArchiLogger . LogGenericInfo ( Strings . BotRemovedExpiredLoginKey ) ;
285-
286- break ;
287290 case EResult . InvalidPassword :
288291 case EResult . NoConnection :
289292 case EResult . ServiceUnavailable :
290293 case EResult . Timeout :
291294 case EResult . TryAnotherCM :
292295 case EResult . TwoFactorCodeMismatch :
293- await Task . Delay ( 5000 ) . ConfigureAwait ( false ) ;
296+ //retry
297+ TimeSpan . FromSeconds ( 5 ) ;
298+ steamClient . Connect ( ) ;
299+ Console . WriteLine ( "Disconnected from steam, reconnecting in 5 sec... [" + lastLogOnResult + "]" ) ;
294300
295301 break ;
296- case EResult . RateLimitExceeded :
297-
298-
302+ case EResult . AccountLoginDeniedNeedTwoFactor :
303+ steamClient . Connect ( ) ;
299304 break ;
300- }
301-
302-
303-
304-
305-
306305
307- DisconnectedCounter ++ ;
308- CurrentPersonaState = 0 ;
306+ case EResult . RateLimitExceeded :
307+ //retry
308+ Console . WriteLine ( "Disconnected from steam, please try again in 30min [" + lastLogOnResult + "]" ) ;
309309
310- if ( isRunning )
311- {
312- if ( DisconnectedCounter >= MaxDisconnects )
313- {
314- Console . WriteLine ( "[" + Program . BOTNAME + "] - Too many disconnects occured in a short period of time. Wait 1 minute..." ) ;
315- InfoForm . InfoHelper . CustomMessageBox . Show ( "Error" , "Too many disconnects occured in a short period of time. Wait 1 minute..." ) ;
316- Thread . Sleep ( TimeSpan . FromMinutes ( 1 ) ) ;
317- DisconnectedCounter = 0 ;
318- steamClient . Disconnect ( ) ;
319- }
310+ break ;
311+ default : //test
312+ TimeSpan . FromSeconds ( 5 ) ;
313+ steamClient . Connect ( ) ;
314+ Console . WriteLine ( "Disconnected from steam, reconnecting in 5 sec... [" + lastLogOnResult + "]" ) ;
315+ break ;
320316 }
321-
322-
323- Console . WriteLine ( "[" + Program . BOTNAME + "] - Reconnecting in 1min ..." ) ;
324- Thread . Sleep ( TimeSpan . FromMinutes ( 1 ) ) ;
325-
326- steamClient . Connect ( ) ;
327-
328317 }
329318
330319 static void OnLoginKey ( SteamUser . LoginKeyCallback callback )
331320 {
332- myUniqueId = callback . UniqueID . ToString ( ) ;
333-
334321 steamUser . AcceptNewLoginKey ( callback ) ;
335322
336323
@@ -354,6 +341,14 @@ static void OnLoginKey(SteamUser.LoginKeyCallback callback)
354341
355342 static void OnLoggedOff ( SteamUser . LoggedOffCallback callback )
356343 {
344+ if ( callback == null )
345+ {
346+ throw new ArgumentNullException ( nameof ( callback ) ) ;
347+ }
348+
349+ LastLogOnResult = callback . Result ;
350+
351+
357352 IsLoggedIn = false ;
358353 CurrentPersonaState = 0 ;
359354 Console . WriteLine ( "[" + Program . BOTNAME + "] - Logged off of Steam: {0}" , callback . Result ) ;
@@ -382,6 +377,8 @@ static void OnFriendMsg(SteamFriends.FriendMsgCallback callback)
382377 {
383378 if ( callback . EntryType == EChatEntryType . ChatMsg )
384379 {
380+ String hourMinuteSec = DateTime . Now . ToString ( "HH:mm:ss" ) ;
381+
385382 var Settingslist = JsonConvert . DeserializeObject < ChatLoggerSettings > ( File . ReadAllText ( Program . SettingsJsonFile ) ) ;
386383
387384
@@ -396,6 +393,10 @@ static void OnFriendMsg(SteamFriends.FriendMsgCallback callback)
396393
397394 string FinalMsg = "[" + DateTime . Now + "] " + FriendName + ": " + Message ;
398395
396+ // Console.WriteLine("\nYou received a message by " + FriendName + "\n Telling you: " + Message);
397+
398+ LastMessageSentReceived = "[" + hourMinuteSec + "] " + FriendName . Replace ( ":" , "" ) + ": " + Message ;
399+
399400 if ( ! Directory . Exists ( Settingslist . PathLogs + @"\" + steamClient . SteamID . ConvertToUInt64 ( ) ) )
400401 {
401402 Directory . CreateDirectory ( Settingslist . PathLogs + @"\" + steamClient . SteamID . ConvertToUInt64 ( ) ) ;
@@ -430,6 +431,7 @@ static void OnFriendEchoMsg(SteamFriends.FriendMsgEchoCallback callback)
430431 {
431432 if ( callback . EntryType == EChatEntryType . ChatMsg )
432433 {
434+
433435 var Settingslist = JsonConvert . DeserializeObject < ChatLoggerSettings > ( File . ReadAllText ( Program . SettingsJsonFile ) ) ;
434436
435437 ulong FriendID = callback . Recipient ;
@@ -444,6 +446,8 @@ static void OnFriendEchoMsg(SteamFriends.FriendMsgEchoCallback callback)
444446
445447 string FinalMsg = "[" + DateTime . Now + "] " + steamFriends . GetPersonaName ( ) + ": " + Message ;
446448
449+ Console . WriteLine ( "\n You sent a message to " + FriendName + "\n Saying: " + Message ) ;
450+
447451 if ( ! Directory . Exists ( Settingslist . PathLogs + @"\" + steamClient . SteamID . ConvertToUInt64 ( ) ) )
448452 {
449453 Directory . CreateDirectory ( Settingslist . PathLogs + @"\" + steamClient . SteamID . ConvertToUInt64 ( ) ) ;
@@ -500,11 +504,19 @@ public static void Logout()
500504 isRunning = false ;
501505 IsLoggedIn = false ;
502506 steamUser . LogOff ( ) ;
503- DisconnectedCounter = 0 ;
504507 CurrentPersonaState = 0 ;
505508 CurrentUsername = null ;
506509
507-
510+
508511 }
509512 }
513+
514+ }
515+
516+ class MyListener : IDebugListener
517+ {
518+ public void WriteLine ( string category , string msg )
519+ {
520+ Console . WriteLine ( "[IDebug] 💔 " + category + ": " + msg ) ;
521+ }
510522}
0 commit comments