|
- using System.Collections.Generic;
- using System.IO;
- using System.Threading.Tasks;
-
- namespace Discord.Rest
- {
- /// <summary>
- /// Represents a REST-based channel that can send and receive messages.
- /// </summary>
- public interface IRestMessageChannel : IMessageChannel
- {
- /// <inheritdoc cref="IMessageChannel.SendMessageAsync(string, bool, Embed, RequestOptions, AllowedMentions, MessageReference, MessageComponent, ISticker[], Embed[], MessageFlags)"/>
- new Task<RestUserMessage> SendMessageAsync(string text = null, bool isTTS = false, Embed embed = null, RequestOptions options = null, AllowedMentions allowedMentions = null, MessageReference messageReference = null, MessageComponent components = null, ISticker[] stickers = null, Embed[] embeds = null, MessageFlags flags = MessageFlags.None);
-
- /// <inheritdoc cref="IMessageChannel.SendMessageAsync(Message, RequestOptions)"/>
- new Task<RestUserMessage> SendMessageAsync(Message message, RequestOptions options = null);
-
- /// <inheritdoc cref="IMessageChannel.SendFileAsync(string, string, bool, Embed, RequestOptions, bool, AllowedMentions, MessageReference, MessageComponent, ISticker[], Embed[], MessageFlags)"/>
- new Task<RestUserMessage> SendFileAsync(string filePath, string text = null, bool isTTS = false, Embed embed = null, RequestOptions options = null, bool isSpoiler = false, AllowedMentions allowedMentions = null, MessageReference messageReference = null, MessageComponent components = null, ISticker[] stickers = null, Embed[] embeds = null, MessageFlags flags = MessageFlags.None);
-
- /// <inheritdoc cref="IMessageChannel.SendFileAsync(Stream, string, string, bool, Embed, RequestOptions, bool, AllowedMentions, MessageReference, MessageComponent, ISticker[], Embed[], MessageFlags)"/>
- new Task<RestUserMessage> SendFileAsync(Stream stream, string filename, string text = null, bool isTTS = false, Embed embed = null, RequestOptions options = null, bool isSpoiler = false, AllowedMentions allowedMentions = null, MessageReference messageReference = null, MessageComponent components = null, ISticker[] stickers = null, Embed[] embeds = null, MessageFlags flags = MessageFlags.None);
-
- /// <summary>
- /// Gets a message from this message channel.
- /// </summary>
- /// <remarks>
- /// This method follows the same behavior as described in <see cref="IMessageChannel.GetMessageAsync(ulong, CacheMode, RequestOptions)"/>.
- /// Please visit its documentation for more details on this method.
- /// </remarks>
- /// <param name="id">The snowflake identifier of the message.</param>
- /// <param name="options">The options to be used when sending the request.</param>
- /// <returns>
- /// A task that represents an asynchronous get operation for retrieving the message. The task result contains
- /// the retrieved message; <c>null</c> if no message is found with the specified identifier.
- /// </returns>
- Task<RestMessage> GetMessageAsync(ulong id, RequestOptions options = null);
- /// <summary>
- /// Gets the last N messages from this message channel.
- /// </summary>
- /// <remarks>
- /// This method follows the same behavior as described in <see cref="IMessageChannel.GetMessagesAsync(int, CacheMode, RequestOptions)"/>.
- /// Please visit its documentation for more details on this method.
- /// </remarks>
- /// <param name="limit">The numbers of message to be gotten from.</param>
- /// <param name="options">The options to be used when sending the request.</param>
- /// <returns>
- /// Paged collection of messages.
- /// </returns>
- IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null);
- /// <summary>
- /// Gets a collection of messages in this channel.
- /// </summary>
- /// <remarks>
- /// This method follows the same behavior as described in <see cref="IMessageChannel.GetMessagesAsync(ulong, Direction, int, CacheMode, RequestOptions)"/>.
- /// Please visit its documentation for more details on this method.
- /// </remarks>
- /// <param name="fromMessageId">The ID of the starting message to get the messages from.</param>
- /// <param name="dir">The direction of the messages to be gotten from.</param>
- /// <param name="limit">The numbers of message to be gotten from.</param>
- /// <param name="options">The options to be used when sending the request.</param>
- /// <returns>
- /// Paged collection of messages.
- /// </returns>
- IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(ulong fromMessageId, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null);
- /// <summary>
- /// Gets a collection of messages in this channel.
- /// </summary>
- /// <remarks>
- /// This method follows the same behavior as described in <see cref="IMessageChannel.GetMessagesAsync(IMessage, Direction, int, CacheMode, RequestOptions)"/>.
- /// Please visit its documentation for more details on this method.
- /// </remarks>
- /// <param name="fromMessage">The starting message to get the messages from.</param>
- /// <param name="dir">The direction of the messages to be gotten from.</param>
- /// <param name="limit">The numbers of message to be gotten from.</param>
- /// <param name="options">The options to be used when sending the request.</param>
- /// <returns>
- /// Paged collection of messages.
- /// </returns>
- IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(IMessage fromMessage, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null);
- /// <summary>
- /// Gets a collection of pinned messages in this channel.
- /// </summary>
- /// <remarks>
- /// This method follows the same behavior as described in <see cref="IMessageChannel.GetPinnedMessagesAsync"/>.
- /// Please visit its documentation for more details on this method.
- /// </remarks>
- /// <param name="options">The options to be used when sending the request.</param>
- /// <returns>
- /// A task that represents the asynchronous get operation for retrieving pinned messages in this channel.
- /// The task result contains a collection of messages found in the pinned messages.
- /// </returns>
- new Task<IReadOnlyCollection<RestMessage>> GetPinnedMessagesAsync(RequestOptions options = null);
- }
- }
|