Example #1
0
        /// <inheritdoc/>
        public Task <Result> RespondAsync(IMessageReactionAdd gatewayEvent, CancellationToken ct = default)
        {
            if (!gatewayEvent.GuildID.HasValue)
            {
                return(Task.FromResult(Result.FromSuccess()));
            }

            if (!gatewayEvent.Member.HasValue)
            {
                return(Task.FromResult(Result.FromSuccess()));
            }

            var member = gatewayEvent.Member.Value;

            if (!member.User.HasValue)
            {
                return(Task.FromResult(Result.FromSuccess()));
            }

            var key = KeyHelpers.CreateGuildMemberKey(gatewayEvent.GuildID.Value, member.User.Value.ID);

            _cacheService.Cache(key, member);

            return(Task.FromResult(Result.FromSuccess()));
        }
    /// <inheritdoc />
    public async Task <Result> RespondAsync(IMessageReactionAdd gatewayEvent, CancellationToken ct = default)
    {
        if (!gatewayEvent.GuildID.IsDefined(out var guildID))
        {
            return(Result.FromSuccess());
        }

        var user = gatewayEvent.UserID;

        return(await UpdateTimestampAndRelevantAutorolesAsync(guildID, user, ct));
    }