* Fix broken link (#11) * Fix typos and improve wording * Add information for IGuildUser + Add GetPermission sample + Add ModifyAsync remarks * Add information for IGuildChannel + Add ModifyAsync remarks + Add GetOverwritePermissionAsync examples * Add warning for Direction.Around * Fix indentations and references * Move IRole.ModifyAsync sample * Add information for IUser + Add example, remarks for Get(Default)AvatarUrl + Add example, remarks for GetOrCreateDMChannelAsync + Add missing remarks/summary/returns for other properties of the class * Change verbs used in IVoiceState summary/remarks * Add additional explanation for IGuildUser.RoleIds * Change verbs used in IMessage summary/remarks * Clarify IUserMessage Add/RemoveReactionAsync samples * Fix command handler sample typo * Add information for DiscordSocketConfig + Add remarks/example to the class + Add remarks to AlwaysDownloadUsers * Fix documentation for SlowMode * Add additional remarks for Guild/TextChannelProperties * Update DocFx.Plugins.LastModified to v1.2.0 This should drastically improve docfx build time. * Add missing dependencies * Update DocFx.Plugins.LastModified to v1.2.1 Improve performance * Update DocFx.Plugins.LastModified to v1.2.2 * Clarify deployment.md + Rewritten .NET Core deployment strategies for better clarification * Split deployment types into framework-dependent and self-contained * Clarify the benefits of using different types of publishing * Include a sample of how to execute dotnet application with the dotnet command in a TIP dialog for visibility * Update post-execution article and samples + This change is to reflect changes made in https://github.com/RogueException/Discord.Net/pull/1164, where CommandInfo is now passed into the CommandExecuted event as an Optional<T> * Update DocFX.Plugin.DescriptionGenerator to v1.1.1 * Adjust according to recent CommandExecuted changes See: +f549da50e0+6260749095* Add further documentation for https://github.com/RogueException/Discord.Net/pull/1037 * Add partial documentation for the precondition helper class * Include CHANGELOG.md in docs * Revise post-execution docs * Fix incorrect Optional<T> usage * Indent some sample code and add a comment reminding the user that the post-execution basic sample code is not ideal. * Streamline docs for Attachment + This commit also adds further explanation for why Embeds and Attachments are read-only collections * Add further documentation for MessageActivity and MessageApplication * Add caching-related docs to ISocketMessageChannel * Add missing documentation inheritance for SyncPermissionsAsync * Streamline documentation process This is done by changing the documentation of the implementations required by interfaces to redirect to the interface method instead (e.g., SocketDMChannel#GetMessagesAsync refer to IMessageChannel.GetMessagesAsync within the remarks of the method). * Cleanup92bf8363ca* Update src/Discord.Net.Core/Entities/Channels/Direction.cs Co-Authored-By: Still34 <341464@gmail.com> * Update src/Discord.Net.Core/Entities/Channels/Direction.cs Co-Authored-By: Still34 <341464@gmail.com> * Update src/Discord.Net.Core/Entities/Channels/GuildChannelProperties.cs Co-Authored-By: Still34 <341464@gmail.com> * Update src/Discord.Net.WebSocket/DiscordSocketConfig.cs Co-Authored-By: Still34 <341464@gmail.com> * Update according to PR suggestions * Reword sentences of deployment article for clarification & remove mention of portability * Fix typos/grammar errors within TextChannelProperties * Add the logo SVG to the page navbar * Implement changing logo image based on theme color using CSS background image * Add a favicon * use the purple logomark instead of white * hack? set the title to navbar svg to read "Discord.Net Docs"
137 lines
8.3 KiB
C#
137 lines
8.3 KiB
C#
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
|
|
{
|
|
/// <summary>
|
|
/// Sends a message to this message channel.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// This method follows the same behavior as described in <see cref="IMessageChannel.SendMessageAsync"/>.
|
|
/// Please visit its documentation for more details on this method.
|
|
/// </remarks>
|
|
/// <param name="text">The message to be sent.</param>
|
|
/// <param name="isTTS">Determines whether the message should be read aloud by Discord or not.</param>
|
|
/// <param name="embed">The <see cref="Discord.EmbedType.Rich"/> <see cref="Embed"/> to be sent.</param>
|
|
/// <param name="options">The options to be used when sending the request.</param>
|
|
/// <returns>
|
|
/// A task that represents an asynchronous send operation for delivering the message. The task result
|
|
/// contains the sent message.
|
|
/// </returns>
|
|
new Task<RestUserMessage> SendMessageAsync(string text = null, bool isTTS = false, Embed embed = null, RequestOptions options = null);
|
|
/// <summary>
|
|
/// Sends a file to this message channel with an optional caption.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// This method follows the same behavior as described in
|
|
/// <see cref="IMessageChannel.SendFileAsync(string, string, bool, Embed, RequestOptions)"/>. Please visit
|
|
/// its documentation for more details on this method.
|
|
/// </remarks>
|
|
/// <param name="filePath">The file path of the file.</param>
|
|
/// <param name="text">The message to be sent.</param>
|
|
/// <param name="isTTS">Whether the message should be read aloud by Discord or not.</param>
|
|
/// <param name="embed">The <see cref="Discord.EmbedType.Rich" /> <see cref="Embed" /> to be sent.</param>
|
|
/// <param name="options">The options to be used when sending the request.</param>
|
|
/// <returns>
|
|
/// A task that represents an asynchronous send operation for delivering the message. The task result
|
|
/// contains the sent message.
|
|
/// </returns>
|
|
new Task<RestUserMessage> SendFileAsync(string filePath, string text = null, bool isTTS = false, Embed embed = null, RequestOptions options = null);
|
|
/// <summary>
|
|
/// Sends a file to this message channel with an optional caption.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// This method follows the same behavior as described in <see cref="IMessageChannel.SendFileAsync(Stream, string, string, bool, Embed, RequestOptions)"/>.
|
|
/// Please visit its documentation for more details on this method.
|
|
/// </remarks>
|
|
/// <param name="stream">The <see cref="Stream" /> of the file to be sent.</param>
|
|
/// <param name="filename">The name of the attachment.</param>
|
|
/// <param name="text">The message to be sent.</param>
|
|
/// <param name="isTTS">Whether the message should be read aloud by Discord or not.</param>
|
|
/// <param name="embed">The <see cref="Discord.EmbedType.Rich"/> <see cref="Embed"/> to be sent.</param>
|
|
/// <param name="options">The options to be used when sending the request.</param>
|
|
/// <returns>
|
|
/// A task that represents an asynchronous send operation for delivering the message. The task result
|
|
/// contains the sent message.
|
|
/// </returns>
|
|
new Task<RestUserMessage> SendFileAsync(Stream stream, string filename, string text = null, bool isTTS = false, Embed embed = null, RequestOptions options = null);
|
|
|
|
/// <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);
|
|
}
|
|
}
|