Example #1
0
        private async Task UpdateRelevantAutorolesForUserAsync
        (
            AutoroleService autoroles,
            AutoroleUpdateService autoroleUpdates,
            IAsyncEnumerable <AutoroleConfiguration> relevantAutoroles,
            IGuildUser guildUser
        )
        {
            await foreach (var relevantAutorole in relevantAutoroles)
            {
                var updateResult = await autoroleUpdates.UpdateAutoroleForUserAsync(relevantAutorole, guildUser);

                if (!updateResult.IsSuccess)
                {
                    this.Log.LogError(updateResult.Exception, updateResult.ErrorReason);
                    continue;
                }

                switch (updateResult.Status)
                {
                case AutoroleUpdateStatus.RequiresAffirmation:
                {
                    await NotifyUserNeedsAffirmation(autoroles, relevantAutorole, guildUser);

                    break;
                }
                }
            }
        }
Example #2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="MessageCountConditionResponder"/> class.
 /// </summary>
 /// <param name="autoroles">The autorole service.</param>
 /// <param name="statistics">The statistics service.</param>
 /// <param name="autoroleUpdates">The autorole update service.</param>
 public MessageCountConditionResponder
 (
     AutoroleService autoroles,
     UserStatisticsService statistics,
     AutoroleUpdateService autoroleUpdates
 )
 {
     _autoroles       = autoroles;
     _statistics      = statistics;
     _autoroleUpdates = autoroleUpdates;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="ReactionConditionResponder"/> class.
 /// </summary>
 /// <param name="autoroles">The autorole service.</param>
 /// <param name="autoroleUpdates">The autorole update service.</param>
 /// <param name="guildAPI">The guild API.</param>
 public ReactionConditionResponder
 (
     AutoroleService autoroles,
     AutoroleUpdateService autoroleUpdates,
     IDiscordRestGuildAPI guildAPI
 )
 {
     _autoroles       = autoroles;
     _autoroleUpdates = autoroleUpdates;
     _guildAPI        = guildAPI;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="UserActivityResponder"/> class.
 /// </summary>
 /// <param name="autoroles">The autorole service.</param>
 /// <param name="autoroleUpdates">The autorole update service.</param>
 /// <param name="statistics">The statistics service.</param>
 public UserActivityResponder
 (
     AutoroleService autoroles,
     AutoroleUpdateService autoroleUpdates,
     UserStatisticsService statistics
 )
 {
     _autoroles       = autoroles;
     _autoroleUpdates = autoroleUpdates;
     _statistics      = statistics;
 }
Example #5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="RoleConditionResponder"/> class.
 /// </summary>
 /// <param name="autoroles">The autorole service.</param>
 /// <param name="autoroleUpdates">The autorole update service.</param>
 public RoleConditionResponder(AutoroleService autoroles, AutoroleUpdateService autoroleUpdates)
 {
     _autoroles       = autoroles;
     _autoroleUpdates = autoroleUpdates;
 }