/// <summary> /// Initializes a new instance of the <see cref="InlineReactionCallback"/> class. /// </summary> /// <param name="interactive"> /// The interactive. /// </param> /// <param name="context"> /// The context. /// </param> /// <param name="data"> /// The data. /// </param> /// <param name="criterion"> /// The criterion. /// </param> public InlineReactionCallback( InteractiveService interactive, SocketCommandContext context, ReactionCallbackData data, ICriterion <SocketReaction> criterion = null) { this.interactive = interactive; Context = context; this.data = data; Criterion = criterion ?? new EmptyCriterion <SocketReaction>(); Timeout = data.Timeout ?? TimeSpan.FromSeconds(30); }
public InlineReactionCallback( InteractiveService interactive, SocketCommandContext context, ReactionCallbackData data, ICriterion <SocketReaction> criterion = null) { _interactive = interactive; Context = context; _data = data; Criterion = criterion ?? new EmptyCriterion <SocketReaction>(); Timeout = data.Timeout; }
/// <summary> /// Sends a message with reaction callbacks /// </summary> /// <param name="context"> /// The context. /// </param> /// <param name="reactionCallbackData"> /// The callbacks. /// </param> /// <param name="fromSourceUser"> /// The from source user. /// </param> /// <returns> /// The <see cref="Task"/>. /// </returns> public async Task <IUserMessage> SendMessageWithReactionCallbacksAsync(SocketCommandContext context, ReactionCallbackData reactionCallbackData, bool fromSourceUser = true) { var criterion = new Criteria <SocketReaction>(); if (fromSourceUser) { criterion.AddCriterion(new EnsureReactionFromSourceUserCriterion()); } var callback = new InlineReactionCallback(this, context, reactionCallbackData, criterion); await callback.DisplayAsync().ConfigureAwait(false); return(callback.Message); }