@@ -340,6 +340,7 @@ export class RustPlusInstance {
340340 if ( this . rustPlus . getAppResponseError ( response ) === rp . AppResponseError . NotFound ) {
341341 /* pairingData is no longer valid. */
342342 if ( pairingData && pairingData . valid ) {
343+ log . warn ( `${ funcName } PairingData no longer valid for ${ mainRequesterSteamId } .` , logParam ) ;
343344 pairingData . valid = false ;
344345 gim . updateGuildInstance ( this . guildId ) ;
345346 await sendServerMessage ( dm , this . guildId , this . serverId , this . connectionStatus ) ;
@@ -375,6 +376,46 @@ export class RustPlusInstance {
375376 return true ;
376377 }
377378
379+ public async validatePairingData ( ) {
380+ const funcName = `[RustPlusManager: validatePairingData]`
381+ const logParam = { guildId : this . guildId , serverId : this . serverId , serverName : this . serverName } ;
382+
383+ log . info ( `${ funcName } ` , logParam ) ;
384+
385+ const gInstance = gim . getGuildInstance ( this . guildId ) as GuildInstance ;
386+ const pairingDataMap = gInstance . pairingDataMap [ this . serverId ] ;
387+ for ( const [ steamId , pairingData ] of Object . entries ( pairingDataMap ) ) {
388+ const rpInfo = await this . rustPlus . getInfoAsync ( pairingData . steamId , pairingData . playerToken ) ;
389+ if ( rp . isValidAppResponse ( rpInfo , log ) ) {
390+ if ( ! rp . isValidAppInfo ( rpInfo . info , log ) ) {
391+ if ( rp . isValidAppError ( rpInfo . error , log ) ) {
392+ log . warn ( `${ funcName } SteamId: ${ steamId } , AppError: ${ rpInfo . error . error } ` , logParam ) ;
393+ if ( this . rustPlus . getAppResponseError ( rpInfo ) === rp . AppResponseError . NotFound ) {
394+ log . warn ( `${ funcName } PairingData no longer valid for ${ steamId } .` , logParam ) ;
395+ pairingData . valid = false ;
396+ }
397+ }
398+ else {
399+ log . error ( `${ funcName } We got completely wrong response: ${ JSON . stringify ( rpInfo ) } ` , logParam ) ;
400+ }
401+ }
402+ else {
403+ pairingData . valid = true ;
404+ }
405+ }
406+ else {
407+ /* Error or rp.ConsumeTokensError */
408+ if ( rpInfo instanceof Error ) {
409+ log . error ( `${ funcName } Error: ${ rpInfo . message } ` , logParam ) ;
410+ }
411+ else {
412+ log . error ( `${ funcName } ConsumeTokensError: ${ rpInfo } ` , logParam ) ;
413+ }
414+ }
415+ }
416+ gim . updateGuildInstance ( this . guildId ) ;
417+ }
418+
378419 public async setupSmartDevices ( ) {
379420
380421 // TODO! Go through all smart devices to get the status of them
0 commit comments