Exemple #1
0
        private async Task RunReactionPrompts([NotNull] MessageReactionAddPayload payload)
        {
            var key    = IPromptDataReaction.ToKey(payload);
            var result = await Client.Cache.Prompts.GetAsync(key);

            if (result is null)
            {
                return;
            }

            var state = (result.Data as IPromptDataReaction) !;
            // ReSharper disable once PossibleNullReferenceException
            var delay = await state.RunAsync(payload);

            if (delay is null)
            {
                await Client.Cache.Prompts.DeleteAsync(key);
            }
            else if (delay != TimeSpan.Zero)
            {
                await Client.Cache.Prompts.SetAsync(result, (TimeSpan)delay);
            }
        }
Exemple #2
0
 public MessageReaction From(IClient client, [NotNull] MessageReactionAddPayload reaction)
 {
     return(new MessageReaction(client, ulong.Parse(reaction.MessageId), ulong.Parse(reaction.ChannelId),
                                ulong.Parse(reaction.GuildId), ulong.Parse(reaction.UserId), reaction.Emoji));
 }
        public async Task <TimeSpan?> RunAsync(MessageReactionAddPayload reaction)
        {
            await Task.CompletedTask;

            return(null);
        }
Exemple #4
0
 private async Task RunAsync([NotNull] MessageReactionAddPayload state)
 {
     await RunReactionPrompts(state);
 }