mirror of
https://github.com/goatcorp/Dalamud.git
synced 2025-12-12 10:17:22 +01:00
1057 lines
56 KiB
HTML
1057 lines
56 KiB
HTML
<!DOCTYPE html>
|
|
<!--[if IE]><![endif]-->
|
|
<html>
|
|
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
|
<title>Interface IMessageChannel
|
|
</title>
|
|
<meta name="viewport" content="width=device-width">
|
|
<meta name="title" content="Interface IMessageChannel
|
|
">
|
|
<meta name="generator" content="docfx 2.48.1.0">
|
|
|
|
<link rel="shortcut icon" href="../favicon.ico">
|
|
<link rel="stylesheet" href="../styles/docfx.vendor.css">
|
|
<link rel="stylesheet" href="../styles/docfx.css">
|
|
<link rel="stylesheet" href="../styles/main.css">
|
|
<meta property="docfx:navrel" content="">
|
|
<meta property="docfx:tocrel" content="toc.html">
|
|
|
|
|
|
|
|
</head>
|
|
<body data-spy="scroll" data-target="#affix" data-offset="120">
|
|
<div id="wrapper">
|
|
<header>
|
|
|
|
<nav id="autocollapse" class="navbar navbar-inverse ng-scope" role="navigation">
|
|
<div class="container">
|
|
<div class="navbar-header">
|
|
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
|
|
<span class="sr-only">Toggle navigation</span>
|
|
<span class="icon-bar"></span>
|
|
<span class="icon-bar"></span>
|
|
<span class="icon-bar"></span>
|
|
</button>
|
|
|
|
<a class="navbar-brand" href="../index.html">
|
|
<img id="logo" class="svg" src="../logo.svg" alt="">
|
|
</a>
|
|
</div>
|
|
<div class="collapse navbar-collapse" id="navbar">
|
|
<form class="navbar-form navbar-right" role="search" id="search">
|
|
<div class="form-group">
|
|
<input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
|
|
<div class="subnav navbar navbar-default">
|
|
<div class="container hide-when-search" id="breadcrumb">
|
|
<ul class="breadcrumb">
|
|
<li></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</header>
|
|
<div role="main" class="container body-content hide-when-search">
|
|
|
|
<div class="sidenav hide-when-search">
|
|
<a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
|
|
<div class="sidetoggle collapse" id="sidetoggle">
|
|
<div id="sidetoc"></div>
|
|
</div>
|
|
</div>
|
|
<div class="article row grid-right">
|
|
<div class="col-md-10">
|
|
<article class="content wrap" id="_content" data-uid="Discord.IMessageChannel">
|
|
|
|
|
|
<h1 id="Discord_IMessageChannel" data-uid="Discord.IMessageChannel" class="text-break">Interface IMessageChannel
|
|
</h1>
|
|
<div class="markdown level0 summary"><p>Represents a generic channel that can send and receive messages.</p>
|
|
</div>
|
|
<div class="markdown level0 conceptual"></div>
|
|
<div class="inheritedMembers">
|
|
<h5>Inherited Members</h5>
|
|
<div>
|
|
<a class="xref" href="Discord.IChannel.html#Discord_IChannel_Name">IChannel.Name</a>
|
|
</div>
|
|
<div>
|
|
<a class="xref" href="Discord.IChannel.html#Discord_IChannel_GetUsersAsync_Discord_CacheMode_Discord_RequestOptions_">IChannel.GetUsersAsync(CacheMode, RequestOptions)</a>
|
|
</div>
|
|
<div>
|
|
<a class="xref" href="Discord.IChannel.html#Discord_IChannel_GetUserAsync_System_UInt64_Discord_CacheMode_Discord_RequestOptions_">IChannel.GetUserAsync(UInt64, CacheMode, RequestOptions)</a>
|
|
</div>
|
|
<div>
|
|
<a class="xref" href="Discord.ISnowflakeEntity.html#Discord_ISnowflakeEntity_CreatedAt">ISnowflakeEntity.CreatedAt</a>
|
|
</div>
|
|
<div>
|
|
<a class="xref" href="Discord.IEntity-1.html#Discord_IEntity_1_Id">IEntity<UInt64>.Id</a>
|
|
</div>
|
|
</div>
|
|
<h6><strong>Namespace</strong>: <a class="xref" href="Discord.html">Discord</a></h6>
|
|
<h6><strong>Assembly</strong>: Discord.Net.Core.dll</h6>
|
|
<h5 id="Discord_IMessageChannel_syntax">Syntax</h5>
|
|
<div class="codewrapper">
|
|
<pre><code class="lang-csharp hljs">public interface IMessageChannel : IChannel, ISnowflakeEntity, IEntity<ulong></code></pre>
|
|
</div>
|
|
<h3 id="methods">Methods
|
|
</h3>
|
|
<span class="small pull-right mobile-hide">
|
|
<span class="divider">|</span>
|
|
<a href="https://github.com/goaaats/Discord.Net/new/dev/apiSpec/new?filename=Discord_IMessageChannel_DeleteMessageAsync_Discord_IMessage_Discord_RequestOptions_.md&value=---%0Auid%3A%20Discord.IMessageChannel.DeleteMessageAsync(Discord.IMessage%2CDiscord.RequestOptions)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
|
|
</span>
|
|
<span class="small pull-right mobile-hide">
|
|
<a href="https://github.com/goaaats/Discord.Net/blob/dev/src/Discord.Net.Core/Entities/Channels/IMessageChannel.cs/#L243">View Source</a>
|
|
</span>
|
|
<a id="Discord_IMessageChannel_DeleteMessageAsync_" data-uid="Discord.IMessageChannel.DeleteMessageAsync*"></a>
|
|
<h4 id="Discord_IMessageChannel_DeleteMessageAsync_Discord_IMessage_Discord_RequestOptions_" data-uid="Discord.IMessageChannel.DeleteMessageAsync(Discord.IMessage,Discord.RequestOptions)">DeleteMessageAsync(IMessage, RequestOptions)</h4>
|
|
<div class="markdown level1 summary"><p>Deletes a message based on the provided message in this channel.</p>
|
|
</div>
|
|
<div class="markdown level1 conceptual"></div>
|
|
<h5 class="decalaration">Declaration</h5>
|
|
<div class="codewrapper">
|
|
<pre><code class="lang-csharp hljs">Task DeleteMessageAsync(IMessage message, RequestOptions options = null)</code></pre>
|
|
</div>
|
|
<h5 class="parameters">Parameters</h5>
|
|
<table class="table table-bordered table-striped table-condensed">
|
|
<thead>
|
|
<tr>
|
|
<th>Type</th>
|
|
<th>Name</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><a class="xref" href="Discord.IMessage.html">IMessage</a></td>
|
|
<td><span class="parametername">message</span></td>
|
|
<td><p>The message that would be removed.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><a class="xref" href="Discord.RequestOptions.html">RequestOptions</a></td>
|
|
<td><span class="parametername">options</span></td>
|
|
<td><p>The options to be used when sending the request.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h5 class="returns">Returns</h5>
|
|
<table class="table table-bordered table-striped table-condensed">
|
|
<thead>
|
|
<tr>
|
|
<th>Type</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><span class="xref">System.Threading.Tasks.Task</span></td>
|
|
<td><p>A task that represents the asynchronous removal operation.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<span class="small pull-right mobile-hide">
|
|
<span class="divider">|</span>
|
|
<a href="https://github.com/goaaats/Discord.Net/new/dev/apiSpec/new?filename=Discord_IMessageChannel_DeleteMessageAsync_System_UInt64_Discord_RequestOptions_.md&value=---%0Auid%3A%20Discord.IMessageChannel.DeleteMessageAsync(System.UInt64%2CDiscord.RequestOptions)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
|
|
</span>
|
|
<span class="small pull-right mobile-hide">
|
|
<a href="https://github.com/goaaats/Discord.Net/blob/dev/src/Discord.Net.Core/Entities/Channels/IMessageChannel.cs/#L236">View Source</a>
|
|
</span>
|
|
<a id="Discord_IMessageChannel_DeleteMessageAsync_" data-uid="Discord.IMessageChannel.DeleteMessageAsync*"></a>
|
|
<h4 id="Discord_IMessageChannel_DeleteMessageAsync_System_UInt64_Discord_RequestOptions_" data-uid="Discord.IMessageChannel.DeleteMessageAsync(System.UInt64,Discord.RequestOptions)">DeleteMessageAsync(UInt64, RequestOptions)</h4>
|
|
<div class="markdown level1 summary"><p>Deletes a message.</p>
|
|
</div>
|
|
<div class="markdown level1 conceptual"></div>
|
|
<h5 class="decalaration">Declaration</h5>
|
|
<div class="codewrapper">
|
|
<pre><code class="lang-csharp hljs">Task DeleteMessageAsync(ulong messageId, RequestOptions options = null)</code></pre>
|
|
</div>
|
|
<h5 class="parameters">Parameters</h5>
|
|
<table class="table table-bordered table-striped table-condensed">
|
|
<thead>
|
|
<tr>
|
|
<th>Type</th>
|
|
<th>Name</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><span class="xref">System.UInt64</span></td>
|
|
<td><span class="parametername">messageId</span></td>
|
|
<td><p>The snowflake identifier of the message that would be removed.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><a class="xref" href="Discord.RequestOptions.html">RequestOptions</a></td>
|
|
<td><span class="parametername">options</span></td>
|
|
<td><p>The options to be used when sending the request.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h5 class="returns">Returns</h5>
|
|
<table class="table table-bordered table-striped table-condensed">
|
|
<thead>
|
|
<tr>
|
|
<th>Type</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><span class="xref">System.Threading.Tasks.Task</span></td>
|
|
<td><p>A task that represents the asynchronous removal operation.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<span class="small pull-right mobile-hide">
|
|
<span class="divider">|</span>
|
|
<a href="https://github.com/goaaats/Discord.Net/new/dev/apiSpec/new?filename=Discord_IMessageChannel_EnterTypingState_Discord_RequestOptions_.md&value=---%0Auid%3A%20Discord.IMessageChannel.EnterTypingState(Discord.RequestOptions)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
|
|
</span>
|
|
<span class="small pull-right mobile-hide">
|
|
<a href="https://github.com/goaaats/Discord.Net/blob/dev/src/Discord.Net.Core/Entities/Channels/IMessageChannel.cs/#L267">View Source</a>
|
|
</span>
|
|
<a id="Discord_IMessageChannel_EnterTypingState_" data-uid="Discord.IMessageChannel.EnterTypingState*"></a>
|
|
<h4 id="Discord_IMessageChannel_EnterTypingState_Discord_RequestOptions_" data-uid="Discord.IMessageChannel.EnterTypingState(Discord.RequestOptions)">EnterTypingState(RequestOptions)</h4>
|
|
<div class="markdown level1 summary"><p>Continuously broadcasts the "user is typing" message to all users in this channel until the returned
|
|
object is disposed.</p>
|
|
</div>
|
|
<div class="markdown level1 conceptual"></div>
|
|
<h5 class="decalaration">Declaration</h5>
|
|
<div class="codewrapper">
|
|
<pre><code class="lang-csharp hljs">IDisposable EnterTypingState(RequestOptions options = null)</code></pre>
|
|
</div>
|
|
<h5 class="parameters">Parameters</h5>
|
|
<table class="table table-bordered table-striped table-condensed">
|
|
<thead>
|
|
<tr>
|
|
<th>Type</th>
|
|
<th>Name</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><a class="xref" href="Discord.RequestOptions.html">RequestOptions</a></td>
|
|
<td><span class="parametername">options</span></td>
|
|
<td><p>The options to be used when sending the request.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h5 class="returns">Returns</h5>
|
|
<table class="table table-bordered table-striped table-condensed">
|
|
<thead>
|
|
<tr>
|
|
<th>Type</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><span class="xref">System.IDisposable</span></td>
|
|
<td><p>A disposable object that, upon its disposal, will stop the client from broadcasting its typing state in
|
|
this channel.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h5 id="Discord_IMessageChannel_EnterTypingState_Discord_RequestOptions__examples">Examples</h5>
|
|
<p>The following example keeps the client in the typing state until <code>LongRunningAsync</code> has finished.</p>
|
|
<pre><code class="lang-cs" region="EnterTypingState" source="..\..\..\Discord.Net.Examples\Core\Entities\Channels\IMessageChannel.Examples.cs"> using (channel.EnterTypingState()) await LongRunningAsync();</code></pre>
|
|
|
|
<span class="small pull-right mobile-hide">
|
|
<span class="divider">|</span>
|
|
<a href="https://github.com/goaaats/Discord.Net/new/dev/apiSpec/new?filename=Discord_IMessageChannel_GetMessageAsync_System_UInt64_Discord_CacheMode_Discord_RequestOptions_.md&value=---%0Auid%3A%20Discord.IMessageChannel.GetMessageAsync(System.UInt64%2CDiscord.CacheMode%2CDiscord.RequestOptions)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
|
|
</span>
|
|
<span class="small pull-right mobile-hide">
|
|
<a href="https://github.com/goaaats/Discord.Net/blob/dev/src/Discord.Net.Core/Entities/Channels/IMessageChannel.cs/#L103">View Source</a>
|
|
</span>
|
|
<a id="Discord_IMessageChannel_GetMessageAsync_" data-uid="Discord.IMessageChannel.GetMessageAsync*"></a>
|
|
<h4 id="Discord_IMessageChannel_GetMessageAsync_System_UInt64_Discord_CacheMode_Discord_RequestOptions_" data-uid="Discord.IMessageChannel.GetMessageAsync(System.UInt64,Discord.CacheMode,Discord.RequestOptions)">GetMessageAsync(UInt64, CacheMode, RequestOptions)</h4>
|
|
<div class="markdown level1 summary"><p>Gets a message from this message channel.</p>
|
|
</div>
|
|
<div class="markdown level1 conceptual"></div>
|
|
<h5 class="decalaration">Declaration</h5>
|
|
<div class="codewrapper">
|
|
<pre><code class="lang-csharp hljs">Task<IMessage> GetMessageAsync(ulong id, CacheMode mode = CacheMode.AllowDownload, RequestOptions options = null)</code></pre>
|
|
</div>
|
|
<h5 class="parameters">Parameters</h5>
|
|
<table class="table table-bordered table-striped table-condensed">
|
|
<thead>
|
|
<tr>
|
|
<th>Type</th>
|
|
<th>Name</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><span class="xref">System.UInt64</span></td>
|
|
<td><span class="parametername">id</span></td>
|
|
<td><p>The snowflake identifier of the message.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><a class="xref" href="Discord.CacheMode.html">CacheMode</a></td>
|
|
<td><span class="parametername">mode</span></td>
|
|
<td><p>The <a class="xref" href="Discord.CacheMode.html">CacheMode</a> that determines whether the object should be fetched from cache.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><a class="xref" href="Discord.RequestOptions.html">RequestOptions</a></td>
|
|
<td><span class="parametername">options</span></td>
|
|
<td><p>The options to be used when sending the request.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h5 class="returns">Returns</h5>
|
|
<table class="table table-bordered table-striped table-condensed">
|
|
<thead>
|
|
<tr>
|
|
<th>Type</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><span class="xref">System.Threading.Tasks.Task</span><<a class="xref" href="Discord.IMessage.html">IMessage</a>></td>
|
|
<td><p>A task that represents an asynchronous get operation for retrieving the message. The task result contains
|
|
the retrieved message; <code>null</code> if no message is found with the specified identifier.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<span class="small pull-right mobile-hide">
|
|
<span class="divider">|</span>
|
|
<a href="https://github.com/goaaats/Discord.Net/new/dev/apiSpec/new?filename=Discord_IMessageChannel_GetMessagesAsync_Discord_IMessage_Discord_Direction_System_Int32_Discord_CacheMode_Discord_RequestOptions_.md&value=---%0Auid%3A%20Discord.IMessageChannel.GetMessagesAsync(Discord.IMessage%2CDiscord.Direction%2CSystem.Int32%2CDiscord.CacheMode%2CDiscord.RequestOptions)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
|
|
</span>
|
|
<span class="small pull-right mobile-hide">
|
|
<a href="https://github.com/goaaats/Discord.Net/blob/dev/src/Discord.Net.Core/Entities/Channels/IMessageChannel.cs/#L216">View Source</a>
|
|
</span>
|
|
<a id="Discord_IMessageChannel_GetMessagesAsync_" data-uid="Discord.IMessageChannel.GetMessagesAsync*"></a>
|
|
<h4 id="Discord_IMessageChannel_GetMessagesAsync_Discord_IMessage_Discord_Direction_System_Int32_Discord_CacheMode_Discord_RequestOptions_" data-uid="Discord.IMessageChannel.GetMessagesAsync(Discord.IMessage,Discord.Direction,System.Int32,Discord.CacheMode,Discord.RequestOptions)">GetMessagesAsync(IMessage, Direction, Int32, CacheMode, RequestOptions)</h4>
|
|
<div class="markdown level1 summary"><p>Gets a collection of messages in this channel.</p>
|
|
</div>
|
|
<div class="markdown level1 conceptual"></div>
|
|
<h5 class="decalaration">Declaration</h5>
|
|
<div class="codewrapper">
|
|
<pre><code class="lang-csharp hljs">IAsyncEnumerable<IReadOnlyCollection<IMessage>> GetMessagesAsync(IMessage fromMessage, Direction dir, int limit = 100, CacheMode mode = CacheMode.AllowDownload, RequestOptions options = null)</code></pre>
|
|
</div>
|
|
<h5 class="parameters">Parameters</h5>
|
|
<table class="table table-bordered table-striped table-condensed">
|
|
<thead>
|
|
<tr>
|
|
<th>Type</th>
|
|
<th>Name</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><a class="xref" href="Discord.IMessage.html">IMessage</a></td>
|
|
<td><span class="parametername">fromMessage</span></td>
|
|
<td><p>The starting message to get the messages from.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><a class="xref" href="Discord.Direction.html">Direction</a></td>
|
|
<td><span class="parametername">dir</span></td>
|
|
<td><p>The direction of the messages to be gotten from.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="xref">System.Int32</span></td>
|
|
<td><span class="parametername">limit</span></td>
|
|
<td><p>The numbers of message to be gotten from.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><a class="xref" href="Discord.CacheMode.html">CacheMode</a></td>
|
|
<td><span class="parametername">mode</span></td>
|
|
<td><p>The <a class="xref" href="Discord.CacheMode.html">CacheMode</a> that determines whether the object should be fetched from
|
|
cache.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><a class="xref" href="Discord.RequestOptions.html">RequestOptions</a></td>
|
|
<td><span class="parametername">options</span></td>
|
|
<td><p>The options to be used when sending the request.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h5 class="returns">Returns</h5>
|
|
<table class="table table-bordered table-striped table-condensed">
|
|
<thead>
|
|
<tr>
|
|
<th>Type</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><span class="xref">System.Collections.Generic.IAsyncEnumerable</span><<span class="xref">System.Collections.Generic.IReadOnlyCollection</span><<a class="xref" href="Discord.IMessage.html">IMessage</a>>></td>
|
|
<td><p>Paged collection of messages.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h5 id="Discord_IMessageChannel_GetMessagesAsync_Discord_IMessage_Discord_Direction_System_Int32_Discord_CacheMode_Discord_RequestOptions__remarks">Remarks</h5>
|
|
<div class="markdown level1 remarks"><div class="IMPORTANT"><h5>important</h5><p>
|
|
The returned collection is an asynchronous enumerable object; one must call
|
|
<a class="xref" href="Discord.AsyncEnumerableExtensions.html#Discord_AsyncEnumerableExtensions_FlattenAsync__1_System_Collections_Generic_IAsyncEnumerable_System_Collections_Generic_IEnumerable___0___">FlattenAsync<T>(IAsyncEnumerable<IEnumerable<T>>)</a> to access the individual messages as a
|
|
collection.
|
|
</p></div>
|
|
<div class="WARNING"><h5>warning</h5><p>
|
|
Do not fetch too many messages at once! This may cause unwanted preemptive rate limit or even actual
|
|
rate limit, causing your bot to freeze!
|
|
</p></div>
|
|
This method will attempt to fetch the number of messages specified under <code data-dev-comment-type="paramref" class="paramref">limit</code> around
|
|
the message <code data-dev-comment-type="paramref" class="paramref">fromMessage</code> depending on the <code data-dev-comment-type="paramref" class="paramref">dir</code>. The library will
|
|
attempt to split up the requests according to your <code data-dev-comment-type="paramref" class="paramref">limit</code> and
|
|
<a class="xref" href="Discord.DiscordConfig.html#Discord_DiscordConfig_MaxMessagesPerBatch">MaxMessagesPerBatch</a>. In other words, should the user request 500 messages,
|
|
and the <a class="xref" href="Discord.DiscordConfig.html#Discord_DiscordConfig_MaxMessagesPerBatch">MaxMessagesPerBatch</a> constant is <code>100</code>, the request will
|
|
be split into 5 individual requests; thus returning 5 individual asynchronous responses, hence the need
|
|
of flattening.
|
|
</div>
|
|
<h5 id="Discord_IMessageChannel_GetMessagesAsync_Discord_IMessage_Discord_Direction_System_Int32_Discord_CacheMode_Discord_RequestOptions__examples">Examples</h5>
|
|
<p>The following example gets 5 message prior to a specific message, <code>oldMessage</code>.</p>
|
|
<pre><code class="lang-cs" region="GetMessagesAsync.FromMessage" source="..\..\..\Discord.Net.Examples\Core\Entities\Channels\IMessageChannel.Examples.cs"> var oldMessage = await channel.SendMessageAsync("boi");
|
|
var messagesFromMsg = await channel.GetMessagesAsync(oldMessage, Direction.Before, 5).FlattenAsync();</code></pre>
|
|
|
|
<span class="small pull-right mobile-hide">
|
|
<span class="divider">|</span>
|
|
<a href="https://github.com/goaaats/Discord.Net/new/dev/apiSpec/new?filename=Discord_IMessageChannel_GetMessagesAsync_System_Int32_Discord_CacheMode_Discord_RequestOptions_.md&value=---%0Auid%3A%20Discord.IMessageChannel.GetMessagesAsync(System.Int32%2CDiscord.CacheMode%2CDiscord.RequestOptions)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
|
|
</span>
|
|
<span class="small pull-right mobile-hide">
|
|
<a href="https://github.com/goaaats/Discord.Net/blob/dev/src/Discord.Net.Core/Entities/Channels/IMessageChannel.cs/#L138">View Source</a>
|
|
</span>
|
|
<a id="Discord_IMessageChannel_GetMessagesAsync_" data-uid="Discord.IMessageChannel.GetMessagesAsync*"></a>
|
|
<h4 id="Discord_IMessageChannel_GetMessagesAsync_System_Int32_Discord_CacheMode_Discord_RequestOptions_" data-uid="Discord.IMessageChannel.GetMessagesAsync(System.Int32,Discord.CacheMode,Discord.RequestOptions)">GetMessagesAsync(Int32, CacheMode, RequestOptions)</h4>
|
|
<div class="markdown level1 summary"><p>Gets the last N messages from this message channel.</p>
|
|
</div>
|
|
<div class="markdown level1 conceptual"></div>
|
|
<h5 class="decalaration">Declaration</h5>
|
|
<div class="codewrapper">
|
|
<pre><code class="lang-csharp hljs">IAsyncEnumerable<IReadOnlyCollection<IMessage>> GetMessagesAsync(int limit = 100, CacheMode mode = CacheMode.AllowDownload, RequestOptions options = null)</code></pre>
|
|
</div>
|
|
<h5 class="parameters">Parameters</h5>
|
|
<table class="table table-bordered table-striped table-condensed">
|
|
<thead>
|
|
<tr>
|
|
<th>Type</th>
|
|
<th>Name</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><span class="xref">System.Int32</span></td>
|
|
<td><span class="parametername">limit</span></td>
|
|
<td><p>The numbers of message to be gotten from.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><a class="xref" href="Discord.CacheMode.html">CacheMode</a></td>
|
|
<td><span class="parametername">mode</span></td>
|
|
<td><p>The <a class="xref" href="Discord.CacheMode.html">CacheMode</a> that determines whether the object should be fetched from
|
|
cache.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><a class="xref" href="Discord.RequestOptions.html">RequestOptions</a></td>
|
|
<td><span class="parametername">options</span></td>
|
|
<td><p>The options to be used when sending the request.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h5 class="returns">Returns</h5>
|
|
<table class="table table-bordered table-striped table-condensed">
|
|
<thead>
|
|
<tr>
|
|
<th>Type</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><span class="xref">System.Collections.Generic.IAsyncEnumerable</span><<span class="xref">System.Collections.Generic.IReadOnlyCollection</span><<a class="xref" href="Discord.IMessage.html">IMessage</a>>></td>
|
|
<td><p>Paged collection of messages.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h5 id="Discord_IMessageChannel_GetMessagesAsync_System_Int32_Discord_CacheMode_Discord_RequestOptions__remarks">Remarks</h5>
|
|
<div class="markdown level1 remarks"><div class="IMPORTANT"><h5>important</h5><p>
|
|
The returned collection is an asynchronous enumerable object; one must call
|
|
<a class="xref" href="Discord.AsyncEnumerableExtensions.html#Discord_AsyncEnumerableExtensions_FlattenAsync__1_System_Collections_Generic_IAsyncEnumerable_System_Collections_Generic_IEnumerable___0___">FlattenAsync<T>(IAsyncEnumerable<IEnumerable<T>>)</a> to access the individual messages as a
|
|
collection.
|
|
</p></div>
|
|
<div class="WARNING"><h5>warning</h5><p>
|
|
Do not fetch too many messages at once! This may cause unwanted preemptive rate limit or even actual
|
|
rate limit, causing your bot to freeze!
|
|
</p></div>
|
|
This method will attempt to fetch the number of messages specified under <code data-dev-comment-type="paramref" class="paramref">limit</code>. The
|
|
library will attempt to split up the requests according to your <code data-dev-comment-type="paramref" class="paramref">limit</code> and
|
|
<a class="xref" href="Discord.DiscordConfig.html#Discord_DiscordConfig_MaxMessagesPerBatch">MaxMessagesPerBatch</a>. In other words, should the user request 500 messages,
|
|
and the <a class="xref" href="Discord.DiscordConfig.html#Discord_DiscordConfig_MaxMessagesPerBatch">MaxMessagesPerBatch</a> constant is <code>100</code>, the request will
|
|
be split into 5 individual requests; thus returning 5 individual asynchronous responses, hence the need
|
|
of flattening.
|
|
</div>
|
|
<h5 id="Discord_IMessageChannel_GetMessagesAsync_System_Int32_Discord_CacheMode_Discord_RequestOptions__examples">Examples</h5>
|
|
<p>The following example downloads 300 messages and gets messages that belong to the user
|
|
<code>53905483156684800</code>.</p>
|
|
<pre><code class="lang-cs" region="GetMessagesAsync.FromLimit.Standard" source="..\..\..\Discord.Net.Examples\Core\Entities\Channels\IMessageChannel.Examples.cs"> var messages = await channel.GetMessagesAsync(300).FlattenAsync();
|
|
var userMessages = messages.Where(x => x.Author.Id == 53905483156684800);</code></pre>
|
|
|
|
<span class="small pull-right mobile-hide">
|
|
<span class="divider">|</span>
|
|
<a href="https://github.com/goaaats/Discord.Net/new/dev/apiSpec/new?filename=Discord_IMessageChannel_GetMessagesAsync_System_UInt64_Discord_Direction_System_Int32_Discord_CacheMode_Discord_RequestOptions_.md&value=---%0Auid%3A%20Discord.IMessageChannel.GetMessagesAsync(System.UInt64%2CDiscord.Direction%2CSystem.Int32%2CDiscord.CacheMode%2CDiscord.RequestOptions)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
|
|
</span>
|
|
<span class="small pull-right mobile-hide">
|
|
<a href="https://github.com/goaaats/Discord.Net/blob/dev/src/Discord.Net.Core/Entities/Channels/IMessageChannel.cs/#L179">View Source</a>
|
|
</span>
|
|
<a id="Discord_IMessageChannel_GetMessagesAsync_" data-uid="Discord.IMessageChannel.GetMessagesAsync*"></a>
|
|
<h4 id="Discord_IMessageChannel_GetMessagesAsync_System_UInt64_Discord_Direction_System_Int32_Discord_CacheMode_Discord_RequestOptions_" data-uid="Discord.IMessageChannel.GetMessagesAsync(System.UInt64,Discord.Direction,System.Int32,Discord.CacheMode,Discord.RequestOptions)">GetMessagesAsync(UInt64, Direction, Int32, CacheMode, RequestOptions)</h4>
|
|
<div class="markdown level1 summary"><p>Gets a collection of messages in this channel.</p>
|
|
</div>
|
|
<div class="markdown level1 conceptual"></div>
|
|
<h5 class="decalaration">Declaration</h5>
|
|
<div class="codewrapper">
|
|
<pre><code class="lang-csharp hljs">IAsyncEnumerable<IReadOnlyCollection<IMessage>> GetMessagesAsync(ulong fromMessageId, Direction dir, int limit = 100, CacheMode mode = CacheMode.AllowDownload, RequestOptions options = null)</code></pre>
|
|
</div>
|
|
<h5 class="parameters">Parameters</h5>
|
|
<table class="table table-bordered table-striped table-condensed">
|
|
<thead>
|
|
<tr>
|
|
<th>Type</th>
|
|
<th>Name</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><span class="xref">System.UInt64</span></td>
|
|
<td><span class="parametername">fromMessageId</span></td>
|
|
<td><p>The ID of the starting message to get the messages from.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><a class="xref" href="Discord.Direction.html">Direction</a></td>
|
|
<td><span class="parametername">dir</span></td>
|
|
<td><p>The direction of the messages to be gotten from.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="xref">System.Int32</span></td>
|
|
<td><span class="parametername">limit</span></td>
|
|
<td><p>The numbers of message to be gotten from.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><a class="xref" href="Discord.CacheMode.html">CacheMode</a></td>
|
|
<td><span class="parametername">mode</span></td>
|
|
<td><p>The <a class="xref" href="Discord.CacheMode.html">CacheMode</a> that determines whether the object should be fetched from
|
|
cache.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><a class="xref" href="Discord.RequestOptions.html">RequestOptions</a></td>
|
|
<td><span class="parametername">options</span></td>
|
|
<td><p>The options to be used when sending the request.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h5 class="returns">Returns</h5>
|
|
<table class="table table-bordered table-striped table-condensed">
|
|
<thead>
|
|
<tr>
|
|
<th>Type</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><span class="xref">System.Collections.Generic.IAsyncEnumerable</span><<span class="xref">System.Collections.Generic.IReadOnlyCollection</span><<a class="xref" href="Discord.IMessage.html">IMessage</a>>></td>
|
|
<td><p>Paged collection of messages.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h5 id="Discord_IMessageChannel_GetMessagesAsync_System_UInt64_Discord_Direction_System_Int32_Discord_CacheMode_Discord_RequestOptions__remarks">Remarks</h5>
|
|
<div class="markdown level1 remarks"><div class="IMPORTANT"><h5>important</h5><p>
|
|
The returned collection is an asynchronous enumerable object; one must call
|
|
<a class="xref" href="Discord.AsyncEnumerableExtensions.html#Discord_AsyncEnumerableExtensions_FlattenAsync__1_System_Collections_Generic_IAsyncEnumerable_System_Collections_Generic_IEnumerable___0___">FlattenAsync<T>(IAsyncEnumerable<IEnumerable<T>>)</a> to access the individual messages as a
|
|
collection.
|
|
</p></div>
|
|
<div class="WARNING"><h5>warning</h5><p>
|
|
Do not fetch too many messages at once! This may cause unwanted preemptive rate limit or even actual
|
|
rate limit, causing your bot to freeze!
|
|
</p></div>
|
|
This method will attempt to fetch the number of messages specified under <code data-dev-comment-type="paramref" class="paramref">limit</code> around
|
|
the message <code data-dev-comment-type="paramref" class="paramref">fromMessageId</code> depending on the <code data-dev-comment-type="paramref" class="paramref">dir</code>. The library will
|
|
attempt to split up the requests according to your <code data-dev-comment-type="paramref" class="paramref">limit</code> and
|
|
<a class="xref" href="Discord.DiscordConfig.html#Discord_DiscordConfig_MaxMessagesPerBatch">MaxMessagesPerBatch</a>. In other words, should the user request 500 messages,
|
|
and the <a class="xref" href="Discord.DiscordConfig.html#Discord_DiscordConfig_MaxMessagesPerBatch">MaxMessagesPerBatch</a> constant is <code>100</code>, the request will
|
|
be split into 5 individual requests; thus returning 5 individual asynchronous responses, hence the need
|
|
of flattening.
|
|
</div>
|
|
<h5 id="Discord_IMessageChannel_GetMessagesAsync_System_UInt64_Discord_Direction_System_Int32_Discord_CacheMode_Discord_RequestOptions__examples">Examples</h5>
|
|
<p>The following example gets 5 message prior to the message identifier <code>442012544660537354</code>.</p>
|
|
<pre><code class="lang-cs" region="GetMessagesAsync.FromId.FromMessage" source="..\..\..\Discord.Net.Examples\Core\Entities\Channels\IMessageChannel.Examples.cs"> await channel.GetMessagesAsync(442012544660537354, Direction.Before, 5).FlattenAsync();</code></pre>
|
|
<p>The following example attempts to retrieve <code>messageCount</code> number of messages from the
|
|
beginning of the channel and prints them to the console.</p>
|
|
<pre><code class="lang-cs" region="GetMessagesAsync.FromId.BeginningMessages" source="..\..\..\Discord.Net.Examples\Core\Entities\Channels\IMessageChannel.Examples.cs">public async Task PrintFirstMessages(IMessageChannel channel, int messageCount)
|
|
{
|
|
// Although the library does attempt to divide the messageCount by 100
|
|
// to comply to Discord's maximum message limit per request, sending
|
|
// too many could still cause the queue to clog up.
|
|
// The purpose of this exception is to discourage users from sending
|
|
// too many requests at once.
|
|
if (messageCount > 1000)
|
|
throw new InvalidOperationException("Too many messages requested.");
|
|
<pre><code>// Setting fromMessageId to 0 will make Discord
|
|
// default to the first message in channel.
|
|
var messages = await channel.GetMessagesAsync(
|
|
0, Direction.After, messageCount)
|
|
.FlattenAsync();
|
|
|
|
// Print message content
|
|
foreach (var message in messages)
|
|
Console.WriteLine($&quot;{message.Author} posted &apos;{message.Content}&apos; at {message.CreatedAt}.&quot;);
|
|
</code></pre>
|
|
<p>}</code></pre><p>
|
|
|
|
<span class="small pull-right mobile-hide">
|
|
<span class="divider">|</span>
|
|
<a href="https://github.com/goaaats/Discord.Net/new/dev/apiSpec/new?filename=Discord_IMessageChannel_GetPinnedMessagesAsync_Discord_RequestOptions_.md&value=---%0Auid%3A%20Discord.IMessageChannel.GetPinnedMessagesAsync(Discord.RequestOptions)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
|
|
</span>
|
|
<span class="small pull-right mobile-hide">
|
|
<a href="https://github.com/goaaats/Discord.Net/blob/dev/src/Discord.Net.Core/Entities/Channels/IMessageChannel.cs/#L226">View Source</a>
|
|
</span>
|
|
<a id="Discord_IMessageChannel_GetPinnedMessagesAsync_" data-uid="Discord.IMessageChannel.GetPinnedMessagesAsync*"></a>
|
|
<h4 id="Discord_IMessageChannel_GetPinnedMessagesAsync_Discord_RequestOptions_" data-uid="Discord.IMessageChannel.GetPinnedMessagesAsync(Discord.RequestOptions)">GetPinnedMessagesAsync(RequestOptions)</h4>
|
|
<div class="markdown level1 summary"><p>Gets a collection of pinned messages in this channel.</p>
|
|
</div>
|
|
<div class="markdown level1 conceptual"></div>
|
|
<h5 class="decalaration">Declaration</h5>
|
|
<div class="codewrapper">
|
|
<pre><code class="lang-csharp hljs">Task<IReadOnlyCollection<IMessage>> GetPinnedMessagesAsync(RequestOptions options = null)</code></pre>
|
|
</div>
|
|
<h5 class="parameters">Parameters</h5>
|
|
<table class="table table-bordered table-striped table-condensed">
|
|
<thead>
|
|
<tr>
|
|
<th>Type</th>
|
|
<th>Name</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><a class="xref" href="Discord.RequestOptions.html">RequestOptions</a></td>
|
|
<td><span class="parametername">options</span></td>
|
|
<td><p>The options to be used when sending the request.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h5 class="returns">Returns</h5>
|
|
<table class="table table-bordered table-striped table-condensed">
|
|
<thead>
|
|
<tr>
|
|
<th>Type</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><span class="xref">System.Threading.Tasks.Task</span><<span class="xref">System.Collections.Generic.IReadOnlyCollection</span><<a class="xref" href="Discord.IMessage.html">IMessage</a>>></td>
|
|
<td><p>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.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<span class="small pull-right mobile-hide">
|
|
<span class="divider">|</span>
|
|
<a href="https://github.com/goaaats/Discord.Net/new/dev/apiSpec/new?filename=Discord_IMessageChannel_SendFileAsync_System_IO_Stream_System_String_System_String_System_Boolean_Discord_Embed_Discord_RequestOptions_System_Boolean_.md&value=---%0Auid%3A%20Discord.IMessageChannel.SendFileAsync(System.IO.Stream%2CSystem.String%2CSystem.String%2CSystem.Boolean%2CDiscord.Embed%2CDiscord.RequestOptions%2CSystem.Boolean)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
|
|
</span>
|
|
<span class="small pull-right mobile-hide">
|
|
<a href="https://github.com/goaaats/Discord.Net/blob/dev/src/Discord.Net.Core/Entities/Channels/IMessageChannel.cs/#L91">View Source</a>
|
|
</span>
|
|
<a id="Discord_IMessageChannel_SendFileAsync_" data-uid="Discord.IMessageChannel.SendFileAsync*"></a>
|
|
<h4 id="Discord_IMessageChannel_SendFileAsync_System_IO_Stream_System_String_System_String_System_Boolean_Discord_Embed_Discord_RequestOptions_System_Boolean_" data-uid="Discord.IMessageChannel.SendFileAsync(System.IO.Stream,System.String,System.String,System.Boolean,Discord.Embed,Discord.RequestOptions,System.Boolean)">SendFileAsync(Stream, String, String, Boolean, Embed, RequestOptions, Boolean)</h4>
|
|
<div class="markdown level1 summary"><p>Sends a file to this message channel with an optional caption.</p>
|
|
</div>
|
|
<div class="markdown level1 conceptual"></div>
|
|
<h5 class="decalaration">Declaration</h5>
|
|
<div class="codewrapper">
|
|
<pre><code class="lang-csharp hljs">Task<IUserMessage> SendFileAsync(Stream stream, string filename, string text = null, bool isTTS = false, Embed embed = null, RequestOptions options = null, bool isSpoiler = false)</code></pre>
|
|
</div>
|
|
<h5 class="parameters">Parameters</h5>
|
|
<table class="table table-bordered table-striped table-condensed">
|
|
<thead>
|
|
<tr>
|
|
<th>Type</th>
|
|
<th>Name</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><span class="xref">System.IO.Stream</span></td>
|
|
<td><span class="parametername">stream</span></td>
|
|
<td><p>The <span class="xref">System.IO.Stream</span> of the file to be sent.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="xref">System.String</span></td>
|
|
<td><span class="parametername">filename</span></td>
|
|
<td><p>The name of the attachment.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="xref">System.String</span></td>
|
|
<td><span class="parametername">text</span></td>
|
|
<td><p>The message to be sent.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="xref">System.Boolean</span></td>
|
|
<td><span class="parametername">isTTS</span></td>
|
|
<td><p>Whether the message should be read aloud by Discord or not.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><a class="xref" href="Discord.Embed.html">Embed</a></td>
|
|
<td><span class="parametername">embed</span></td>
|
|
<td><p>The <a class="xref" href="Discord.EmbedType.html#Discord_EmbedType_Rich">Rich</a> <a class="xref" href="Discord.Embed.html">Embed</a> to be sent.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><a class="xref" href="Discord.RequestOptions.html">RequestOptions</a></td>
|
|
<td><span class="parametername">options</span></td>
|
|
<td><p>The options to be used when sending the request.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="xref">System.Boolean</span></td>
|
|
<td><span class="parametername">isSpoiler</span></td>
|
|
<td><p>Whether the message attachment should be hidden as a spoiler.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h5 class="returns">Returns</h5>
|
|
<table class="table table-bordered table-striped table-condensed">
|
|
<thead>
|
|
<tr>
|
|
<th>Type</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><span class="xref">System.Threading.Tasks.Task</span><<a class="xref" href="Discord.IUserMessage.html">IUserMessage</a>></td>
|
|
<td><p>A task that represents an asynchronous send operation for delivering the message. The task result
|
|
contains the sent message.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h5 id="Discord_IMessageChannel_SendFileAsync_System_IO_Stream_System_String_System_String_System_Boolean_Discord_Embed_Discord_RequestOptions_System_Boolean__remarks">Remarks</h5>
|
|
<div class="markdown level1 remarks"><p>This method sends a file as if you are uploading an attachment directly from your Discord client.</p>
|
|
<div class="NOTE"><h5>note</h5><p>
|
|
If you wish to upload an image and have it embedded in a <a class="xref" href="Discord.EmbedType.html#Discord_EmbedType_Rich">Rich</a> embed,
|
|
you may upload the file and refer to the file with "attachment://filename.ext" in the
|
|
<a class="xref" href="Discord.EmbedBuilder.html#Discord_EmbedBuilder_ImageUrl">ImageUrl</a>. See the example section for its usage.
|
|
</p></div>
|
|
</div>
|
|
<h5 id="Discord_IMessageChannel_SendFileAsync_System_IO_Stream_System_String_System_String_System_Boolean_Discord_Embed_Discord_RequestOptions_System_Boolean__examples">Examples</h5>
|
|
<p>The following example uploads a streamed image that will be called <code>b1nzy.jpg</code> embedded inside a
|
|
rich embed to the channel.</p>
|
|
<pre><code class="lang-cs" region="SendFileAsync.FileStream.EmbeddedImage" source="..\..\..\Discord.Net.Examples\Core\Entities\Channels\IMessageChannel.Examples.cs"> using (var b1nzyStream = await httpClient.GetStreamAsync("https://example.com/b1nzy"))
|
|
await channel.SendFileAsync(b1nzyStream, "b1nzy.jpg",
|
|
embed: new EmbedBuilder {ImageUrl = "attachment://b1nzy.jpg"}.Build());</code></pre>
|
|
|
|
<span class="small pull-right mobile-hide">
|
|
<span class="divider">|</span>
|
|
<a href="https://github.com/goaaats/Discord.Net/new/dev/apiSpec/new?filename=Discord_IMessageChannel_SendFileAsync_System_String_System_String_System_Boolean_Discord_Embed_Discord_RequestOptions_System_Boolean_.md&value=---%0Auid%3A%20Discord.IMessageChannel.SendFileAsync(System.String%2CSystem.String%2CSystem.Boolean%2CDiscord.Embed%2CDiscord.RequestOptions%2CSystem.Boolean)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
|
|
</span>
|
|
<span class="small pull-right mobile-hide">
|
|
<a href="https://github.com/goaaats/Discord.Net/blob/dev/src/Discord.Net.Core/Entities/Channels/IMessageChannel.cs/#L62">View Source</a>
|
|
</span>
|
|
<a id="Discord_IMessageChannel_SendFileAsync_" data-uid="Discord.IMessageChannel.SendFileAsync*"></a>
|
|
<h4 id="Discord_IMessageChannel_SendFileAsync_System_String_System_String_System_Boolean_Discord_Embed_Discord_RequestOptions_System_Boolean_" data-uid="Discord.IMessageChannel.SendFileAsync(System.String,System.String,System.Boolean,Discord.Embed,Discord.RequestOptions,System.Boolean)">SendFileAsync(String, String, Boolean, Embed, RequestOptions, Boolean)</h4>
|
|
<div class="markdown level1 summary"><p>Sends a file to this message channel with an optional caption.</p>
|
|
</div>
|
|
<div class="markdown level1 conceptual"></div>
|
|
<h5 class="decalaration">Declaration</h5>
|
|
<div class="codewrapper">
|
|
<pre><code class="lang-csharp hljs">Task<IUserMessage> SendFileAsync(string filePath, string text = null, bool isTTS = false, Embed embed = null, RequestOptions options = null, bool isSpoiler = false)</code></pre>
|
|
</div>
|
|
<h5 class="parameters">Parameters</h5>
|
|
<table class="table table-bordered table-striped table-condensed">
|
|
<thead>
|
|
<tr>
|
|
<th>Type</th>
|
|
<th>Name</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><span class="xref">System.String</span></td>
|
|
<td><span class="parametername">filePath</span></td>
|
|
<td><p>The file path of the file.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="xref">System.String</span></td>
|
|
<td><span class="parametername">text</span></td>
|
|
<td><p>The message to be sent.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="xref">System.Boolean</span></td>
|
|
<td><span class="parametername">isTTS</span></td>
|
|
<td><p>Whether the message should be read aloud by Discord or not.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><a class="xref" href="Discord.Embed.html">Embed</a></td>
|
|
<td><span class="parametername">embed</span></td>
|
|
<td><p>The <a class="xref" href="Discord.EmbedType.html#Discord_EmbedType_Rich">Rich</a> <a class="xref" href="Discord.Embed.html">Embed</a> to be sent.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><a class="xref" href="Discord.RequestOptions.html">RequestOptions</a></td>
|
|
<td><span class="parametername">options</span></td>
|
|
<td><p>The options to be used when sending the request.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="xref">System.Boolean</span></td>
|
|
<td><span class="parametername">isSpoiler</span></td>
|
|
<td><p>Whether the message attachment should be hidden as a spoiler.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h5 class="returns">Returns</h5>
|
|
<table class="table table-bordered table-striped table-condensed">
|
|
<thead>
|
|
<tr>
|
|
<th>Type</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><span class="xref">System.Threading.Tasks.Task</span><<a class="xref" href="Discord.IUserMessage.html">IUserMessage</a>></td>
|
|
<td><p>A task that represents an asynchronous send operation for delivering the message. The task result
|
|
contains the sent message.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h5 id="Discord_IMessageChannel_SendFileAsync_System_String_System_String_System_Boolean_Discord_Embed_Discord_RequestOptions_System_Boolean__remarks">Remarks</h5>
|
|
<div class="markdown level1 remarks"><p>This method sends a file as if you are uploading an attachment directly from your Discord client.</p>
|
|
<div class="NOTE"><h5>note</h5><p>
|
|
If you wish to upload an image and have it embedded in a <a class="xref" href="Discord.EmbedType.html#Discord_EmbedType_Rich">Rich</a> embed,
|
|
you may upload the file and refer to the file with "attachment://filename.ext" in the
|
|
<a class="xref" href="Discord.EmbedBuilder.html#Discord_EmbedBuilder_ImageUrl">ImageUrl</a>. See the example section for its usage.
|
|
</p></div>
|
|
</div>
|
|
<h5 id="Discord_IMessageChannel_SendFileAsync_System_String_System_String_System_Boolean_Discord_Embed_Discord_RequestOptions_System_Boolean__examples">Examples</h5>
|
|
<p>The following example uploads a local file called <code>wumpus.txt</code> along with the text
|
|
<code>good discord boi</code> to the channel.</p>
|
|
<pre><code class="lang-cs" region="SendFileAsync.FilePath" source="..\..\..\Discord.Net.Examples\Core\Entities\Channels\IMessageChannel.Examples.cs"> await channel.SendFileAsync("wumpus.txt", "good discord boi");</code></pre>
|
|
<p>The following example uploads a local image called <code>b1nzy.jpg</code> embedded inside a rich embed to the
|
|
channel.</p>
|
|
<pre><code class="lang-cs" region="SendFileAsync.FilePath.EmbeddedImage" source="..\..\..\Discord.Net.Examples\Core\Entities\Channels\IMessageChannel.Examples.cs"> await channel.SendFileAsync("b1nzy.jpg",
|
|
embed: new EmbedBuilder {ImageUrl = "attachment://b1nzy.jpg"}.Build());</code></pre>
|
|
|
|
<span class="small pull-right mobile-hide">
|
|
<span class="divider">|</span>
|
|
<a href="https://github.com/goaaats/Discord.Net/new/dev/apiSpec/new?filename=Discord_IMessageChannel_SendMessageAsync_System_String_System_Boolean_Discord_Embed_Discord_RequestOptions_.md&value=---%0Auid%3A%20Discord.IMessageChannel.SendMessageAsync(System.String%2CSystem.Boolean%2CDiscord.Embed%2CDiscord.RequestOptions)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
|
|
</span>
|
|
<span class="small pull-right mobile-hide">
|
|
<a href="https://github.com/goaaats/Discord.Net/blob/dev/src/Discord.Net.Core/Entities/Channels/IMessageChannel.cs/#L30">View Source</a>
|
|
</span>
|
|
<a id="Discord_IMessageChannel_SendMessageAsync_" data-uid="Discord.IMessageChannel.SendMessageAsync*"></a>
|
|
<h4 id="Discord_IMessageChannel_SendMessageAsync_System_String_System_Boolean_Discord_Embed_Discord_RequestOptions_" data-uid="Discord.IMessageChannel.SendMessageAsync(System.String,System.Boolean,Discord.Embed,Discord.RequestOptions)">SendMessageAsync(String, Boolean, Embed, RequestOptions)</h4>
|
|
<div class="markdown level1 summary"><p>Sends a message to this message channel.</p>
|
|
</div>
|
|
<div class="markdown level1 conceptual"></div>
|
|
<h5 class="decalaration">Declaration</h5>
|
|
<div class="codewrapper">
|
|
<pre><code class="lang-csharp hljs">Task<IUserMessage> SendMessageAsync(string text = null, bool isTTS = false, Embed embed = null, RequestOptions options = null)</code></pre>
|
|
</div>
|
|
<h5 class="parameters">Parameters</h5>
|
|
<table class="table table-bordered table-striped table-condensed">
|
|
<thead>
|
|
<tr>
|
|
<th>Type</th>
|
|
<th>Name</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><span class="xref">System.String</span></td>
|
|
<td><span class="parametername">text</span></td>
|
|
<td><p>The message to be sent.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="xref">System.Boolean</span></td>
|
|
<td><span class="parametername">isTTS</span></td>
|
|
<td><p>Determines whether the message should be read aloud by Discord or not.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><a class="xref" href="Discord.Embed.html">Embed</a></td>
|
|
<td><span class="parametername">embed</span></td>
|
|
<td><p>The <a class="xref" href="Discord.EmbedType.html#Discord_EmbedType_Rich">Rich</a> <a class="xref" href="Discord.Embed.html">Embed</a> to be sent.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><a class="xref" href="Discord.RequestOptions.html">RequestOptions</a></td>
|
|
<td><span class="parametername">options</span></td>
|
|
<td><p>The options to be used when sending the request.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h5 class="returns">Returns</h5>
|
|
<table class="table table-bordered table-striped table-condensed">
|
|
<thead>
|
|
<tr>
|
|
<th>Type</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><span class="xref">System.Threading.Tasks.Task</span><<a class="xref" href="Discord.IUserMessage.html">IUserMessage</a>></td>
|
|
<td><p>A task that represents an asynchronous send operation for delivering the message. The task result
|
|
contains the sent message.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h5 id="Discord_IMessageChannel_SendMessageAsync_System_String_System_Boolean_Discord_Embed_Discord_RequestOptions__examples">Examples</h5>
|
|
<p>The following example sends a message with the current system time in RFC 1123 format to the channel and
|
|
deletes itself after 5 seconds.</p>
|
|
<pre><code class="lang-cs" region="SendMessageAsync" source="..\..\..\Discord.Net.Examples\Core\Entities\Channels\IMessageChannel.Examples.cs"> var message = await channel.SendMessageAsync(DateTimeOffset.UtcNow.ToString("R"));
|
|
await Task.Delay(TimeSpan.FromSeconds(5))
|
|
.ContinueWith(x => message.DeleteAsync());</code></pre>
|
|
|
|
<span class="small pull-right mobile-hide">
|
|
<span class="divider">|</span>
|
|
<a href="https://github.com/goaaats/Discord.Net/new/dev/apiSpec/new?filename=Discord_IMessageChannel_TriggerTypingAsync_Discord_RequestOptions_.md&value=---%0Auid%3A%20Discord.IMessageChannel.TriggerTypingAsync(Discord.RequestOptions)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
|
|
</span>
|
|
<span class="small pull-right mobile-hide">
|
|
<a href="https://github.com/goaaats/Discord.Net/blob/dev/src/Discord.Net.Core/Entities/Channels/IMessageChannel.cs/#L252">View Source</a>
|
|
</span>
|
|
<a id="Discord_IMessageChannel_TriggerTypingAsync_" data-uid="Discord.IMessageChannel.TriggerTypingAsync*"></a>
|
|
<h4 id="Discord_IMessageChannel_TriggerTypingAsync_Discord_RequestOptions_" data-uid="Discord.IMessageChannel.TriggerTypingAsync(Discord.RequestOptions)">TriggerTypingAsync(RequestOptions)</h4>
|
|
<div class="markdown level1 summary"><p>Broadcasts the "user is typing" message to all users in this channel, lasting 10 seconds.</p>
|
|
</div>
|
|
<div class="markdown level1 conceptual"></div>
|
|
<h5 class="decalaration">Declaration</h5>
|
|
<div class="codewrapper">
|
|
<pre><code class="lang-csharp hljs">Task TriggerTypingAsync(RequestOptions options = null)</code></pre>
|
|
</div>
|
|
<h5 class="parameters">Parameters</h5>
|
|
<table class="table table-bordered table-striped table-condensed">
|
|
<thead>
|
|
<tr>
|
|
<th>Type</th>
|
|
<th>Name</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><a class="xref" href="Discord.RequestOptions.html">RequestOptions</a></td>
|
|
<td><span class="parametername">options</span></td>
|
|
<td><p>The options to be used when sending the request.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h5 class="returns">Returns</h5>
|
|
<table class="table table-bordered table-striped table-condensed">
|
|
<thead>
|
|
<tr>
|
|
<th>Type</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><span class="xref">System.Threading.Tasks.Task</span></td>
|
|
<td><p>A task that represents the asynchronous operation that triggers the broadcast.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</article>
|
|
</div>
|
|
|
|
<div class="hidden-sm col-md-2" role="complementary">
|
|
<div class="sideaffix">
|
|
<div class="contribution">
|
|
<ul class="nav">
|
|
<li>
|
|
<a href="https://github.com/goaaats/Discord.Net/new/dev/apiSpec/new?filename=Discord_IMessageChannel.md&value=---%0Auid%3A%20Discord.IMessageChannel%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A" class="contribution-link">Improve this Doc</a>
|
|
</li>
|
|
<li>
|
|
<a href="https://github.com/goaaats/Discord.Net/blob/dev/src/Discord.Net.Core/Entities/Channels/IMessageChannel.cs/#L11" class="contribution-link">View Source</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
|
|
<!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
|
|
</nav>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<footer>
|
|
<div class="grad-bottom"></div>
|
|
<div class="footer">
|
|
<div class="container">
|
|
<span class="pull-right">
|
|
<a href="#top">Back to top</a>
|
|
</span>
|
|
|
|
<span>Generated by <strong>DocFX</strong></span>
|
|
</div>
|
|
</div>
|
|
</footer>
|
|
</div>
|
|
|
|
<script type="text/javascript" src="../styles/docfx.vendor.js"></script>
|
|
<script type="text/javascript" src="../styles/docfx.js"></script>
|
|
<script type="text/javascript" src="../styles/main.js"></script>
|
|
</body>
|
|
</html>
|