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); } }
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); }
private async Task RunAsync([NotNull] MessageReactionAddPayload state) { await RunReactionPrompts(state); }