docs: September 2019 Documentation Update (#1379)
* docs: adjust wording of ActivityType.Watching enum Adjusts the xmldoc summary wording of the ActivityType.Watching enum to fix a wording issue. * Add D.NET Logo to Open Graph meta tags * Update DescriptionGenerator ...And update color to suit the logo better * Disable smooth scrolling due to user complaints * Remove unnecessary spacing in sideaffix * Update footer version * Remove featherlight plugin As it is unnecessary and can break image tags * Adjust wordings regarding safe-handling of secrets * Fix formatting for first bot token sample * Add badges to homepage * Minor wording fixes on terminal * Update to higher quality PNG * Add Discord.Net.Example in sln for build validation * Clarify all instances of IAsnycEnumerable * Clarify overridden props in SocketNewsChannel * Add returns and params docs for SyncPermissionsAsync * Remove/fix invalid XMLdoc strings * Remove AppVeyor and add GitHub badge
This commit is contained in:
@@ -36,7 +36,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Discord.Net.Tests.Integrati
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{C7CF5621-7D36-433B-B337-5A2E3C101A71}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Discord.Net.Analyzers.Tests", "test\Discord.Net.Analyzers.Tests\Discord.Net.Analyzers.Tests.csproj", "{FC67057C-E92F-4E1C-98BE-46F839C8AD71}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Discord.Net.Analyzers.Tests", "test\Discord.Net.Analyzers.Tests\Discord.Net.Analyzers.Tests.csproj", "{FC67057C-E92F-4E1C-98BE-46F839C8AD71}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Discord.Net.Examples", "src\Discord.Net.Examples\Discord.Net.Examples.csproj", "{47820065-3CFB-401C-ACEA-862BD564A404}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
@@ -204,6 +206,18 @@ Global
|
||||
{FC67057C-E92F-4E1C-98BE-46F839C8AD71}.Release|x64.Build.0 = Release|Any CPU
|
||||
{FC67057C-E92F-4E1C-98BE-46F839C8AD71}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{FC67057C-E92F-4E1C-98BE-46F839C8AD71}.Release|x86.Build.0 = Release|Any CPU
|
||||
{47820065-3CFB-401C-ACEA-862BD564A404}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{47820065-3CFB-401C-ACEA-862BD564A404}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{47820065-3CFB-401C-ACEA-862BD564A404}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{47820065-3CFB-401C-ACEA-862BD564A404}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{47820065-3CFB-401C-ACEA-862BD564A404}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{47820065-3CFB-401C-ACEA-862BD564A404}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{47820065-3CFB-401C-ACEA-862BD564A404}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{47820065-3CFB-401C-ACEA-862BD564A404}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{47820065-3CFB-401C-ACEA-862BD564A404}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{47820065-3CFB-401C-ACEA-862BD564A404}.Release|x64.Build.0 = Release|Any CPU
|
||||
{47820065-3CFB-401C-ACEA-862BD564A404}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{47820065-3CFB-401C-ACEA-862BD564A404}.Release|x86.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
@@ -221,6 +235,7 @@ Global
|
||||
{DBF8B16E-5967-4480-8EDE-15D98A0DF0C4} = {C7CF5621-7D36-433B-B337-5A2E3C101A71}
|
||||
{E169E15A-E82C-45BF-8C24-C2CADB7093AA} = {C7CF5621-7D36-433B-B337-5A2E3C101A71}
|
||||
{FC67057C-E92F-4E1C-98BE-46F839C8AD71} = {C7CF5621-7D36-433B-B337-5A2E3C101A71}
|
||||
{47820065-3CFB-401C-ACEA-862BD564A404} = {BB59D5B5-E7B0-4BF4-8F82-D14431B2799B}
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {D2404771-EEC8-45F2-9D71-F3373F6C1495}
|
||||
|
||||
Binary file not shown.
@@ -5,9 +5,18 @@
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<title>{{#title}}{{title}}{{/title}}{{^title}}{{>partials/title}}{{/title}} {{#_appTitle}}| {{_appTitle}} {{/_appTitle}}</title>
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<meta name="title" content="{{#title}}{{title}}{{/title}}{{^title}}{{>partials/title}}{{/title}} {{#_appTitle}}| {{_appTitle}} {{/_appTitle}}">
|
||||
<meta property="og:title" content="{{#title}}{{title}}{{/title}}{{^title}}{{>partials/title}}{{/title}} {{#_appTitle}}| {{_appTitle}} {{/_appTitle}}">
|
||||
{{#_description}}<meta property="og:description" content="{{_description}}">{{/_description}}
|
||||
<meta property="og:locale" content="en-us">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:site_name" content="Discord.Net Docs">
|
||||
<meta property="og:image" content="https://cdn.jsdelivr.net/gh/discord-net/Discord.Net/docs/marketing/logo/PackageLogo.png">
|
||||
<meta property="og:image:alt" content="Discord.Net Logo">
|
||||
<meta name="theme-color" content="#995EA7"/>
|
||||
<meta name="generator" content="docfx {{_docfxVersion}}">
|
||||
{{#_description}}<meta name="description" content="{{_description}}">{{/_description}}
|
||||
<meta property="docfx:navrel" content="{{_navRel}}">
|
||||
<meta property="docfx:tocrel" content="{{_tocRel}}">
|
||||
<meta id="docfx-style:rel" content="{{_rel}}">
|
||||
<link rel="preload" href="{{_rel}}styles/search-worker.js" as="script">
|
||||
<link rel="preload" href="{{_rel}}fonts/glyphicons-halflings-regular.woff2" as="font" type="font/woff2" crossorigin="anonymous">
|
||||
<link rel="shortcut icon" href="{{_rel}}{{{_appFaviconPath}}}{{^_appFaviconPath}}favicon.ico{{/_appFaviconPath}}">
|
||||
@@ -18,10 +27,6 @@
|
||||
<link rel="stylesheet" href="{{_rel}}styles/material.css">
|
||||
<link rel="stylesheet" href="{{_rel}}styles/theme-switcher.css">
|
||||
<link href="https://cdn.rawgit.com/noelboss/featherlight/1.7.6/release/featherlight.min.css" type="text/css" rel="stylesheet" />
|
||||
<meta name="theme-color" content="#99AAB5"/>
|
||||
<meta property="docfx:navrel" content="{{_navRel}}">
|
||||
<meta property="docfx:tocrel" content="{{_tocRel}}">
|
||||
<meta id="docfx-style:rel" content="{{_rel}}">
|
||||
{{#_noindex}}<meta name="searchOption" content="noindex">{{/_noindex}}
|
||||
{{#_enableSearch}}<meta property="docfx:rel" content="{{_rel}}">{{/_enableSearch}}
|
||||
{{#_enableNewTab}}<meta property="docfx:newtab" content="true">{{/_enableNewTab}}
|
||||
|
||||
@@ -3,8 +3,6 @@
|
||||
<script type="text/javascript" src="{{_rel}}styles/docfx.vendor.js"></script>
|
||||
<script type="text/javascript" src="{{_rel}}styles/docfx.js"></script>
|
||||
<script type="text/javascript" src="{{_rel}}styles/main.js"></script>
|
||||
<script type="text/javascript" src="https://cdn.rawgit.com/noelboss/featherlight/master/release/featherlight.min.js" charset="utf-8"></script>
|
||||
<script type="text/javascript" src="{{_rel}}styles/plugin-featherlight.js"></script>
|
||||
<script type="text/javascript" src="{{_rel}}styles/styleswitcher.js"></script>
|
||||
<script type="text/javascript" src="https://malsup.github.io/jquery.corner.js"></script>
|
||||
<script type="text/javascript" src="{{_rel}}styles/cornerify.js"></script>
|
||||
@@ -6,7 +6,6 @@ body {
|
||||
font-display: optional;
|
||||
height: 100%;
|
||||
font-size: 15px;
|
||||
scroll-behavior: smooth;
|
||||
}
|
||||
|
||||
code{
|
||||
@@ -92,6 +91,10 @@ article.content h6{
|
||||
line-height: 140%;
|
||||
}
|
||||
|
||||
.sideaffix > div.contribution {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
header .navbar {
|
||||
border-width: 0 0 0px;
|
||||
border-radius: 0;
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
// MIT License
|
||||
|
||||
// Copyright (c) 2017 Roel Fauconnier
|
||||
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
|
||||
// The above copyright notice and this permission notice shall be included in all
|
||||
// copies or substantial portions of the Software.
|
||||
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
// SOFTWARE.
|
||||
|
||||
$(document).ready(function() {
|
||||
//find all images, but not the logo, and add the lightbox
|
||||
$('img').not('#logo').each(function(){
|
||||
var $img = $(this);
|
||||
var filename = $img.attr('src')
|
||||
//add cursor
|
||||
$img.css('cursor','zoom-in');
|
||||
$img.css('cursor','-moz-zoom-in');
|
||||
$img.css('cursor','-webkit-zoom-in');
|
||||
|
||||
//add featherlight
|
||||
$img.attr('alt', filename);
|
||||
$img.featherlight(filename);
|
||||
});
|
||||
});
|
||||
@@ -35,7 +35,8 @@
|
||||
"**/images/**",
|
||||
"**/samples/**",
|
||||
"langwordMapping.yml",
|
||||
"marketing/logo/SVG/**.svg",
|
||||
"marketing/logo/**.svg",
|
||||
"marketing/logo/**.png",
|
||||
"favicon.ico"
|
||||
]
|
||||
}],
|
||||
@@ -50,7 +51,7 @@
|
||||
"overwrite": "_overwrites/**/**.md",
|
||||
"globalMetadata": {
|
||||
"_appTitle": "Discord.Net Documentation",
|
||||
"_appFooter": "Discord.Net (c) 2015-2019 2.0.1",
|
||||
"_appFooter": "Discord.Net (c) 2015-2019 2.1.1",
|
||||
"_enableSearch": true,
|
||||
"_appLogoPath": "marketing/logo/SVG/Logomark Purple.svg",
|
||||
"_appFaviconPath": "favicon.ico"
|
||||
|
||||
@@ -146,23 +146,6 @@ method with the application's "token."
|
||||
> Pay attention to what you are copying from the developer portal!
|
||||
> A token is not the same as the application's "client secret."
|
||||
|
||||
> [!IMPORTANT]
|
||||
> Your bot's token can be used to gain total access to your bot, so
|
||||
> **do not** share this token with anyone else! You should store this
|
||||
> token in an external source if you plan on distributing
|
||||
> the source code for your bot.
|
||||
>
|
||||
> In the following example, we retrieve the token from the environment
|
||||
> variable `DiscordToken`. Please note that this is *not* designed to
|
||||
> be used in a production environment, as the secrets are stored in
|
||||
> plain-text.
|
||||
>
|
||||
> For information on how to set an environment variable, please see
|
||||
> instructions below,
|
||||
>
|
||||
> * Windows: [How to Create Environment Variables Shortcut in Windows](https://www.tenforums.com/tutorials/121742-create-environment-variables-shortcut-windows.html)
|
||||
> * Linux: [How To Read and Set Environmental and Shell Variables on a Linux VPS](https://www.digitalocean.com/community/tutorials/how-to-read-and-set-environmental-and-shell-variables-on-a-linux-vps)
|
||||
> * macOS: [How do I set environment variables on OS X?](https://apple.stackexchange.com/questions/106778/how-do-i-set-environment-variables-on-os-x)
|
||||
|
||||
We may now invoke the client's [StartAsync] method, which will
|
||||
start connection/reconnection logic. It is important to note that
|
||||
@@ -175,6 +158,22 @@ Finally, we will want to block the async main method from returning
|
||||
when running the application. To do this, we can await an infinite delay
|
||||
or any other blocking method, such as reading from the console.
|
||||
|
||||
> [!IMPORTANT]
|
||||
> Your bot's token can be used to gain total access to your bot, so
|
||||
> **do not** share this token with anyone else! You should store this
|
||||
> token in an external source if you plan on distributing
|
||||
> the source code for your bot.
|
||||
>
|
||||
> In the following example, we retrieve the token from a pre-defined
|
||||
> variable, which is **NOT** secure, especially if you plan on
|
||||
> distributing the application in any shape or form.
|
||||
>
|
||||
> We recommend alternative storage such as
|
||||
> [Environment Variables], an external configuration file, or a
|
||||
> secrets manager for safe-handling of secrets.
|
||||
>
|
||||
> [Environment Variables]: https://en.wikipedia.org/wiki/Environment_variable
|
||||
|
||||
The following lines can now be added:
|
||||
|
||||
[!code-csharp[Create client](samples/first-bot/client.cs)]
|
||||
|
||||
@@ -78,7 +78,7 @@ published to our [MyGet feed]. See
|
||||
|
||||
### [Using dotnet CLI](#tab/dotnet-cli)
|
||||
|
||||
1. Launch your terminal
|
||||
1. Launch a terminal of your choice
|
||||
2. Navigate to where your `*.csproj` is located
|
||||
3. Enter `dotnet add package Discord.Net`
|
||||
|
||||
@@ -90,7 +90,7 @@ In order to compile Discord.Net, you will need the following:
|
||||
|
||||
### Using Visual Studio
|
||||
|
||||
* [Visual Studio 2017](https://www.visualstudio.com/)
|
||||
* [Visual Studio 2019](https://visualstudio.microsoft.com/)
|
||||
* [.NET Core SDK]
|
||||
|
||||
The .NET Core and Docker workload is required during Visual Studio
|
||||
@@ -109,7 +109,7 @@ When running any Discord.Net-powered bot on an older operating system
|
||||
you may encounter a @System.PlatformNotSupportedException upon
|
||||
connecting.
|
||||
|
||||
You may resolve this by either targeting .NET Core 2.1 or later, or
|
||||
You may resolve this by either targeting .NET Core 2.1 or higher, or
|
||||
by installing one or more custom packages as listed below.
|
||||
|
||||
#### [Targeting .NET Core 2.1](#tab/core2-1)
|
||||
@@ -141,4 +141,4 @@ over the default ones.
|
||||
|
||||
***
|
||||
|
||||
[.NET Core SDK]: https://www.microsoft.com/net/download/
|
||||
[.NET Core SDK]: https://dotnet.microsoft.com/download
|
||||
@@ -53,7 +53,7 @@ adding the feed to your package source.
|
||||
|
||||
### [Using dotnet CLI](#tab/cli)
|
||||
|
||||
1. Launch your terminal
|
||||
1. Launch a terminal of your choice
|
||||
2. Navigate to where your `*.csproj` is located
|
||||
3. Type `dotnet add package Discord.Net --source https://www.myget.org/F/discord-net/api/v3/index.json`
|
||||
|
||||
|
||||
@@ -2,22 +2,22 @@ private DiscordSocketClient _client;
|
||||
|
||||
public async Task MainAsync()
|
||||
{
|
||||
_client = new DiscordSocketClient();
|
||||
_client = new DiscordSocketClient();
|
||||
|
||||
_client.Log += Log;
|
||||
|
||||
// You can assign your bot token to a string, and pass that in to connect.
|
||||
// This however is insecure, particularly if you plan to have your code hosted in a repository.
|
||||
_client.Log += Log;
|
||||
|
||||
// You can assign your bot token to a string, and pass that in to connect.
|
||||
// This is, however, insecure, particularly if you plan to have your code hosted in a public repository.
|
||||
var token = "token";
|
||||
|
||||
// Some alternative options would be to keep your token in an Environment Variable or a standalone file.
|
||||
|
||||
// Some alternative options would be to keep your token in an Environment Variable or a standalone file.
|
||||
// var token = Environment.GetEnvironmentVariable("NameOfYourEnvironmentVariable");
|
||||
// var token = File.ReadAllText("token.txt");
|
||||
// var token = JsonConvert.DeserializeObject<AConfigurationClass>(File.ReadAllText("config.json")).Token;
|
||||
|
||||
await _client.LoginAsync(TokenType.Bot, token);
|
||||
await _client.StartAsync();
|
||||
await _client.LoginAsync(TokenType.Bot, token);
|
||||
await _client.StartAsync();
|
||||
|
||||
// Block this task until the program is closed.
|
||||
await Task.Delay(-1);
|
||||
}
|
||||
// Block this task until the program is closed.
|
||||
await Task.Delay(-1);
|
||||
}
|
||||
@@ -5,7 +5,13 @@ title: Home
|
||||
|
||||
# Discord.Net Documentation
|
||||
|
||||
<div class="big-logo logo-switcher" />
|
||||
<div class="big-logo logo-switcher"></div>
|
||||
|
||||
[](https://github.com/discord-net/Discord.Net)
|
||||
[](https://www.nuget.org/packages/Discord.Net)
|
||||
[](https://www.myget.org/feed/Packages/discord-net)
|
||||
[](https://dev.azure.com/discord-net/Discord.Net/_build/latest?definitionId=1&branchName=dev)
|
||||
[](https://discord.gg/jkrBmQR)
|
||||
|
||||
## What is Discord.Net?
|
||||
|
||||
@@ -20,11 +26,3 @@ If this is your first time using Discord.Net, you should refer to the
|
||||
More experienced users might want to refer to the
|
||||
[API Documentation](xref:API.Docs) for a breakdown of the individual
|
||||
objects in the library.
|
||||
|
||||
## Additional Resources
|
||||
|
||||
- [Discord API Guild](https://discord.gg/discord-api) - Look for `#dotnet_discord-net`
|
||||
- [GitHub](https://github.com/RogueException/Discord.Net/)
|
||||
- [NuGet](https://www.nuget.org/packages/Discord.Net/)
|
||||
- [MyGet Feed](https://www.myget.org/feed/Packages/discord-net) - Add-ons and nightly builds
|
||||
- [AppVeyor CI](https://ci.appveyor.com/project/RogueException/discord-net) - Nightly builds via Continuous Integration
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 11 KiB |
@@ -18,7 +18,7 @@ namespace Discord
|
||||
/// </summary>
|
||||
Listening = 2,
|
||||
/// <summary>
|
||||
/// The user is watching a media.
|
||||
/// The user is watching some form of media.
|
||||
/// </summary>
|
||||
Watching = 3
|
||||
}
|
||||
|
||||
@@ -1,14 +1,15 @@
|
||||
namespace Discord
|
||||
{
|
||||
/// <summary>
|
||||
/// Specifies the direction of where message(s) should be retrieved from.
|
||||
/// Specifies the direction of where message(s) should be retrieved from.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// This enum is used to specify the direction for retrieving messages.
|
||||
/// <note type="important">
|
||||
/// At the time of writing, <see cref="Around"/> is not yet implemented into
|
||||
/// <see cref="IMessageChannel.GetMessagesAsync"/>. Attempting to use the method with <see cref="Around"/>
|
||||
/// as its direction will throw a <see cref="System.NotImplementedException"/>.
|
||||
/// <see cref="IMessageChannel.GetMessagesAsync(int, CacheMode, RequestOptions)"/>.
|
||||
/// Attempting to use the method with <see cref="Around"/> will throw
|
||||
/// a <see cref="System.NotImplementedException"/>.
|
||||
/// </note>
|
||||
/// </remarks>
|
||||
public enum Direction
|
||||
|
||||
@@ -17,14 +17,24 @@ namespace Discord
|
||||
string Name { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets a collection of all users in this channel.
|
||||
/// Gets a collection of users that are able to view the channel or are currently in this channel.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// <note type="important">
|
||||
/// The returned collection is an asynchronous enumerable object; one must call
|
||||
/// <see cref="AsyncEnumerableExtensions.FlattenAsync{T}"/> to access the individual messages as a
|
||||
/// collection.
|
||||
/// </note>
|
||||
/// This method will attempt to fetch all users that is able to view this channel or is currently in this channel.
|
||||
/// The library will attempt to split up the requests according to and <see cref="DiscordConfig.MaxUsersPerBatch"/>.
|
||||
/// In other words, if there are 3000 users, and the <see cref="Discord.DiscordConfig.MaxUsersPerBatch"/> constant
|
||||
/// is <c>1000</c>, the request will be split into 3 individual requests; thus returning 53individual asynchronous
|
||||
/// responses, hence the need of flattening.
|
||||
/// </remarks>
|
||||
/// <param name="mode">The <see cref="CacheMode"/> that determines whether the object should be fetched from cache.</param>
|
||||
/// <param name="options">The options to be used when sending the request.</param>
|
||||
/// <returns>
|
||||
/// A paged collection containing a collection of users that can access this channel. Flattening the
|
||||
/// paginated response into a collection of users with
|
||||
/// <see cref="AsyncEnumerableExtensions.FlattenAsync{T}"/> is required if you wish to access the users.
|
||||
/// Paged collection of users.
|
||||
/// </returns>
|
||||
IAsyncEnumerable<IReadOnlyCollection<IUser>> GetUsersAsync(CacheMode mode = CacheMode.AllowDownload, RequestOptions options = null);
|
||||
|
||||
|
||||
@@ -132,14 +132,16 @@ namespace Discord
|
||||
Task AddPermissionOverwriteAsync(IUser user, OverwritePermissions permissions, RequestOptions options = null);
|
||||
|
||||
/// <summary>
|
||||
/// Gets a collection of users that are able to view the channel.
|
||||
/// Gets a collection of users that are able to view the channel or are currently in this channel.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// This method follows the same behavior as described in <see cref="IChannel.GetUsersAsync"/>.
|
||||
/// Please visit its documentation for more details on this method.
|
||||
/// </remarks>
|
||||
/// <param name="mode">The <see cref="CacheMode" /> that determines whether the object should be fetched from cache.</param>
|
||||
/// <param name="options">The options to be used when sending the request.</param>
|
||||
/// <returns>
|
||||
/// A paged collection containing a collection of guild users that can access this channel. Flattening the
|
||||
/// paginated response into a collection of users with
|
||||
/// <see cref="AsyncEnumerableExtensions.FlattenAsync{T}"/> is required if you wish to access the users.
|
||||
/// Paged collection of users.
|
||||
/// </returns>
|
||||
new IAsyncEnumerable<IReadOnlyCollection<IGuildUser>> GetUsersAsync(CacheMode mode = CacheMode.AllowDownload, RequestOptions options = null);
|
||||
/// <summary>
|
||||
|
||||
@@ -26,10 +26,14 @@ namespace Discord
|
||||
/// representing the parent of this channel; <c>null</c> if none is set.
|
||||
/// </returns>
|
||||
Task<ICategoryChannel> GetCategoryAsync(CacheMode mode = CacheMode.AllowDownload, RequestOptions options = null);
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Syncs the permissions of this nested channel with its parent's.
|
||||
/// </summary>
|
||||
/// <param name="options">The options to be used when sending the request.</param>
|
||||
/// <returns>
|
||||
/// A task that represents the asynchronous operation for syncing channel permissions with its parent's.
|
||||
/// </returns>
|
||||
Task SyncPermissionsAsync(RequestOptions options = null);
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -586,11 +586,11 @@ namespace Discord
|
||||
/// <remarks>
|
||||
/// This method requires you have an OAuth2 access token for the user, requested with the guilds.join scope, and that the bot have the MANAGE_INVITES permission in the guild.
|
||||
/// </remarks>
|
||||
/// <param name="id">The snowflake identifier of the user.</param>
|
||||
/// <param name="userId">The snowflake identifier of the user.</param>
|
||||
/// <param name="accessToken">The OAuth2 access token for the user, requested with the guilds.join scope.</param>
|
||||
/// <param name="func">The delegate containing the properties to be applied to the user upon being added to the guild.</param>
|
||||
/// <param name="options">The options to be used when sending the request.</param>
|
||||
/// <returns>A guild user associated with the specified <paramref name="id" />; <c>null</c> if the user is already in the guild.</returns>
|
||||
/// <returns>A guild user associated with the specified <paramref name="userId" />; <c>null</c> if the user is already in the guild.</returns>
|
||||
Task<IGuildUser> AddGuildUserAsync(ulong userId, string accessToken, Action<AddGuildUserProperties> func = null, RequestOptions options = null);
|
||||
/// <summary>
|
||||
/// Gets a collection of all users in this guild.
|
||||
|
||||
@@ -73,7 +73,7 @@ namespace Discord
|
||||
/// </summary>
|
||||
/// <example>
|
||||
/// The following example checks if the current user has the ability to send a message with attachment in
|
||||
/// this channel; if so, uploads a file via <see cref="IMessageChannel.SendFileAsync"/>.
|
||||
/// this channel; if so, uploads a file via <see cref="IMessageChannel.SendFileAsync(string, string, bool, Embed, RequestOptions, bool)"/>.
|
||||
/// <code language="cs">
|
||||
/// if (currentUser?.GetPermissions(targetChannel)?.AttachFiles)
|
||||
/// await targetChannel.SendFileAsync("fortnite.png");
|
||||
|
||||
@@ -5,6 +5,11 @@ using System.Threading.Tasks;
|
||||
namespace Discord
|
||||
{
|
||||
/// <summary> An extension class for squashing <see cref="IAsyncEnumerable{T}"/>. </summary>
|
||||
/// <remarks>
|
||||
/// This set of extension methods will squash an <see cref="IAsyncEnumerable{T}"/> into a
|
||||
/// single <see cref="IEnumerable{T}"/>. This is often associated with requests that has a
|
||||
/// set limit when requesting.
|
||||
/// </remarks>
|
||||
public static class AsyncEnumerableExtensions
|
||||
{
|
||||
/// <summary> Flattens the specified pages into one <see cref="IEnumerable{T}"/> asynchronously. </summary>
|
||||
|
||||
@@ -294,7 +294,6 @@ namespace Discord.Rest
|
||||
/// <summary>
|
||||
/// Gets a collection of all text channels in this guild.
|
||||
/// </summary>
|
||||
/// <param name="mode">The <see cref="CacheMode"/> that determines whether the object should be fetched from cache.</param>
|
||||
/// <param name="options">The options to be used when sending the request.</param>
|
||||
/// <returns>
|
||||
/// A task that represents the asynchronous get operation. The task result contains a read-only collection of
|
||||
|
||||
@@ -9,6 +9,11 @@ namespace Discord.WebSocket
|
||||
/// <summary>
|
||||
/// Represents a WebSocket-based news channel in a guild that has the same properties as a <see cref="SocketTextChannel"/>.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// <note type="warning">
|
||||
/// Most of the properties and methods featured may not be supported due to the nature of the channel.
|
||||
/// </note>
|
||||
/// </remarks>
|
||||
[DebuggerDisplay(@"{DebuggerDisplay,nq}")]
|
||||
public class SocketNewsChannel : SocketTextChannel
|
||||
{
|
||||
@@ -22,31 +27,61 @@ namespace Discord.WebSocket
|
||||
entity.Update(state, model);
|
||||
return entity;
|
||||
}
|
||||
/// <inheritdoc />
|
||||
/// <remarks>
|
||||
/// <note type="important">
|
||||
/// This property is not supported by this type. Attempting to use this property will result in a <see cref="NotSupportedException"/>.
|
||||
/// </note>
|
||||
/// </remarks>
|
||||
public override int SlowModeInterval
|
||||
{
|
||||
get { throw new NotSupportedException("News channels do not support Slow Mode."); }
|
||||
}
|
||||
=> throw new NotSupportedException("News channels do not support Slow Mode.");
|
||||
/// <inheritdoc />
|
||||
/// <remarks>
|
||||
/// <note type="important">
|
||||
/// This method is not supported by this type. Attempting to use this method will result in a <see cref="NotSupportedException"/>.
|
||||
/// </note>
|
||||
/// </remarks>
|
||||
public override Task AddPermissionOverwriteAsync(IRole role, OverwritePermissions permissions, RequestOptions options = null)
|
||||
{
|
||||
throw new NotSupportedException("News channels do not support Overwrite Permissions.");
|
||||
}
|
||||
=> throw new NotSupportedException("News channels do not support Overwrite Permissions.");
|
||||
/// <inheritdoc />
|
||||
/// <remarks>
|
||||
/// <note type="important">
|
||||
/// This method is not supported by this type. Attempting to use this method will result in a <see cref="NotSupportedException"/>.
|
||||
/// </note>
|
||||
/// </remarks>
|
||||
public override Task AddPermissionOverwriteAsync(IUser user, OverwritePermissions permissions, RequestOptions options = null)
|
||||
{
|
||||
throw new NotSupportedException("News channels do not support Overwrite Permissions.");
|
||||
}
|
||||
=> throw new NotSupportedException("News channels do not support Overwrite Permissions.");
|
||||
/// <inheritdoc />
|
||||
/// <remarks>
|
||||
/// <note type="important">
|
||||
/// This property is not supported by this type. Attempting to use this property will result in a <see cref="NotSupportedException"/>.
|
||||
/// </note>
|
||||
/// </remarks>
|
||||
public override IReadOnlyCollection<Overwrite> PermissionOverwrites
|
||||
=> throw new NotSupportedException("News channels do not support Overwrite Permissions.");
|
||||
/// <inheritdoc />
|
||||
/// <remarks>
|
||||
/// <note type="important">
|
||||
/// This method is not supported by this type. Attempting to use this method will result in a <see cref="NotSupportedException"/>.
|
||||
/// </note>
|
||||
/// </remarks>
|
||||
public override Task SyncPermissionsAsync(RequestOptions options = null)
|
||||
{
|
||||
throw new NotSupportedException("News channels do not support Overwrite Permissions.");
|
||||
}
|
||||
=> throw new NotSupportedException("News channels do not support Overwrite Permissions.");
|
||||
/// <inheritdoc />
|
||||
/// <remarks>
|
||||
/// <note type="important">
|
||||
/// This method is not supported by this type. Attempting to use this method will result in a <see cref="NotSupportedException"/>.
|
||||
/// </note>
|
||||
/// </remarks>
|
||||
public override Task RemovePermissionOverwriteAsync(IRole role, RequestOptions options = null)
|
||||
{
|
||||
throw new NotSupportedException("News channels do not support Overwrite Permissions.");
|
||||
}
|
||||
=> throw new NotSupportedException("News channels do not support Overwrite Permissions.");
|
||||
/// <inheritdoc />
|
||||
/// <remarks>
|
||||
/// <note type="important">
|
||||
/// This method is not supported by this type. Attempting to use this method will result in a <see cref="NotSupportedException"/>.
|
||||
/// </note>
|
||||
/// </remarks>
|
||||
public override Task RemovePermissionOverwriteAsync(IUser user, RequestOptions options = null)
|
||||
{
|
||||
throw new NotSupportedException("News channels do not support Overwrite Permissions.");
|
||||
}
|
||||
=> throw new NotSupportedException("News channels do not support Overwrite Permissions.");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user