Example #1
0
        /// <summary>
        /// Displays the message and the reactions.
        /// </summary>
        /// <returns>
        /// The <see cref="Task"/>.
        /// </returns>
        public async Task DisplayAsync()
        {
            var message = await Context.Channel.SendMessageAsync(_data.Text, embed : _data.Embed).ConfigureAwait(false);

            Message = message;
            _interactive.AddReactionCallback(message, this);

            _ = Task.Run(async() =>
            {
                foreach (var item in _data.Callbacks)
                {
                    await message.AddReactionAsync(item.Reaction);
                }
                if (Timeout.HasValue)
                {
                    await Task.Delay(Timeout.Value);
                    _interactive.RemoveReactionCallback(message);
                    _data.TimeoutCallback?.Invoke(Context);
                }
            });
        }