diff --git a/Framework/DiscordRewards/EventsAndErrors.cs b/Framework/DiscordRewards/EventsAndErrors.cs index e26568c0..638299c6 100644 --- a/Framework/DiscordRewards/EventsAndErrors.cs +++ b/Framework/DiscordRewards/EventsAndErrors.cs @@ -11,8 +11,7 @@ return Errors.Length > 0 || EventsOverview.Length > 0 || - ActiveChainAddresses.Hosts.Length > 0 || - ActiveChainAddresses.Clients.Length > 0; + ActiveChainAddresses.HasAny(); } } @@ -26,5 +25,15 @@ { public string[] Hosts { get; set; } = Array.Empty(); public string[] Clients { get; set; } = Array.Empty(); + + public bool HasAny() + { + return Hosts.Length > 0 || Clients.Length > 0; + } + + public override string ToString() + { + return "Hosts:" + string.Join(",", Hosts) + "Clients:" + string.Join(",", Clients); + } } } diff --git a/Tools/BiblioTech/Rewards/ChainActivityHandler.cs b/Tools/BiblioTech/Rewards/ChainActivityHandler.cs index a3bb17a8..1541bde8 100644 --- a/Tools/BiblioTech/Rewards/ChainActivityHandler.cs +++ b/Tools/BiblioTech/Rewards/ChainActivityHandler.cs @@ -18,10 +18,24 @@ namespace BiblioTech.Rewards public async Task Process(ActiveChainAddresses activeChainAddresses) { + if (!activeChainAddresses.HasAny()) + { + Log("Received empty activeChainAddresses."); + return; + } + var activeUserIds = ConvertToUserIds(activeChainAddresses); - if (!activeUserIds.HasAny()) return; + if (!activeUserIds.HasAny()) + { + Log("Empty userIds after lookup of addresses: " + activeChainAddresses); + return; + } - if (!HasChanged(activeUserIds)) return; + if (!HasChanged(activeUserIds)) + { + Log("Active userIds has not changed: " + activeUserIds); + return; + } await GiveAndRemoveRoles(activeUserIds); } @@ -116,6 +130,11 @@ namespace BiblioTech.Rewards return result.Order().ToArray(); } + private void Log(string msg) + { + log.Log(msg); + } + private class ActiveUserIds { public ActiveUserIds(IEnumerable hosts, IEnumerable clients) @@ -131,6 +150,11 @@ namespace BiblioTech.Rewards { return Hosts.Any() || Clients.Any(); } + + public override string ToString() + { + return "Hosts:" + string.Join(",", Hosts) + "Clients:" + string.Join(",", Clients); + } } } } diff --git a/Tools/BiblioTech/Rewards/RoleModifyContext.cs b/Tools/BiblioTech/Rewards/RoleModifyContext.cs index 58914f5e..3fbc5132 100644 --- a/Tools/BiblioTech/Rewards/RoleModifyContext.cs +++ b/Tools/BiblioTech/Rewards/RoleModifyContext.cs @@ -33,6 +33,7 @@ namespace BiblioTech.Rewards public async Task GiveRole(ulong userId, ulong roleId) { + Log($"Giving role {roleId} to user {userId}"); var role = GetRole(roleId); var guildUser = GetUser(userId); if (role == null) return; @@ -46,6 +47,7 @@ namespace BiblioTech.Rewards public async Task RemoveRole(ulong userId, ulong roleId) { + Log($"Removing role {roleId} from user {userId}"); var role = GetRole(roleId); var guildUser = GetUser(userId); if (role == null) return; @@ -67,6 +69,11 @@ namespace BiblioTech.Rewards return null; } + private void Log(string msg) + { + log.Log(msg); + } + private async Task> LoadAllUsers(SocketGuild guild) { log.Log("Loading all users.."); diff --git a/Tools/TestNetRewarder/Program.cs b/Tools/TestNetRewarder/Program.cs index ab21f61c..e3ed24e7 100644 --- a/Tools/TestNetRewarder/Program.cs +++ b/Tools/TestNetRewarder/Program.cs @@ -45,6 +45,7 @@ namespace TestNetRewarder Log.Log("Starting TestNet Rewarder..."); var segmenter = new TimeSegmenter(Log, Config.Interval, Config.HistoryStartUtc, processor); + await EnsureBotOnline(); await processor.Initialize(); while (!CancellationToken.IsCancellationRequested)