Example #1
0
        /// <summary>
        /// Sends a message with reaction callback
        /// </summary>
        /// <param name="context"></param>
        /// <param name="callbacks"></param>
        /// <param name="fromSourceUser"></param>
        /// <returns></returns>
        public async Task <IUserMessage> SendMessageWithReactionCallbacksAsync(SocketCommandContext context, ReactionCallbackData callbacks, bool fromSourceUser = true)
        {
            var criterion = new Criteria <SocketReaction>();

            if (fromSourceUser)
            {
                criterion.AddCriterion(new EnsureReactionFromSourceUserCriterion());
            }
            var callback = new InlineReactionCallback(new InteractiveService(Discord.GetShardFor(context.Guild)), context, callbacks, criterion);
            await callback.DisplayAsync().ConfigureAwait(false);

            return(callback.Message);
        }
Example #2
0
        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);
        }
Example #3
0
        /// <summary>
        ///     Sends a Message with reaction callback
        /// </summary>
        /// <param name="context"></param>
        /// <param name="callbacks"></param>
        /// <param name="fromSourceUser"></param>
        /// <returns></returns>
        public async Task <IUserMessage> SendMessageWithReactionCallbacksAsync(SocketCommandContext context, ReactionCallbackData callbacks, bool fromSourceUser = true)
        {
            if (callbacks.Text == null)
            {
                throw new Exception("Input text must not be null. Use an empty string instead.");
            }

            var criterion = new Criteria <SocketReaction>();

            if (fromSourceUser)
            {
                criterion.AddCriterion(new EnsureReactionFromSourceUserCriterion());
            }
            var callback = new InlineReactionCallback(new InteractiveService(Discord.GetShardFor(context.Guild)), context, callbacks, criterion);

            await callback.DisplayAsync().ConfigureAwait(false);

            return(callback.Message);
        }