private async Task CheckFollowerAsync(string chatter, string userTwitchId) { try { TwitchChatter follower = await GetTwitchFollowerInfoAsync(chatter, userTwitchId); if (follower == null) { return; } /* Manage follower experience */ int currentExp = await _follower.CurrentExpAsync(chatter, _broadcasterId); if (TwitchStreamStatus.IsLive) { if (currentExp > -1) { await _follower.UpdateExpAsync(chatter, _broadcasterId, ++currentExp); } else { // add new user to the ranks await _follower.EnlistRecruitAsync(chatter, _broadcasterId); } } // check if follower has a stream currency account int setIncrementFunds = 10; // default to normal follower amount if (_follower.IsRegularFollower(currentExp, _botConfig.RegularFollowerHours)) { setIncrementFunds = 15; if (!_twitchChatterListInstance.TwitchRegularFollowers.Any(c => c.Username == chatter)) { _twitchChatterListInstance.TwitchRegularFollowers.Add(follower); } } /* Manage follower streaming currency */ if (TwitchStreamStatus.IsLive) { int funds = await _bank.CheckBalanceAsync(chatter, _broadcasterId); if (funds > -1) { funds += setIncrementFunds; await _bank.UpdateFundsAsync(chatter, _broadcasterId, funds); } else // ToDo: Make currency auto-increment setting { await _bank.CreateAccountAsync(chatter, _broadcasterId, setIncrementFunds); } } } catch (Exception ex) { Console.WriteLine($"Error inside FollowerSubscriberListener.CheckFollower(string, string): {ex.Message}"); if (ex.InnerException != null) { Console.WriteLine($"Inner Exception: {ex.InnerException.Message}"); } } }