* Update client-basics.md * Update v2_to_v3_guide.mdtags/3.1.0
@@ -9,6 +9,58 @@ In the following section, you will find commonly asked questions and | |||||
answers about common issues that you may face when utilizing the | answers about common issues that you may face when utilizing the | ||||
various clients offered by the library. | various clients offered by the library. | ||||
## I keep having trouble with intents! | |||||
As Discord.NET has upgraded from Discord API v6 to API v9, | |||||
`GatewayIntents` must now be specified in the socket config, as well as on the [developer portal]. | |||||
```cs | |||||
// Where ever you declared your websocket client. | |||||
DiscordSocketClient _client; | |||||
... | |||||
var config = new DiscordSocketConfig() | |||||
{ | |||||
.. // Other config options can be presented here. | |||||
GatewayIntents = GatewayIntents.All | |||||
} | |||||
_client = new DiscordSocketClient(config); | |||||
``` | |||||
### Common intents: | |||||
- AllUnprivileged: This is a group of most common intents, that do NOT require any [developer portal] intents to be enabled. | |||||
This includes intents that receive messages such as: `GatewayIntents.GuildMessages, GatewayIntents.DirectMessages` | |||||
- GuildMembers: An intent disabled by default, as you need to enable it in the [developer portal]. | |||||
- GuildPresences: Also disabled by default, this intent together with `GuildMembers` are the only intents not included in `AllUnprivileged`. | |||||
- All: All intents, it is ill adviced to use this without care, as it *can* cause a memory leak from presence. | |||||
The library will give responsive warnings if you specify unnecessary intents. | |||||
> [!NOTE] | |||||
> All gateway intents, their Discord API counterpart and their enum value are listed | |||||
> [HERE](xref:Discord.GatewayIntents) | |||||
### Stacking intents: | |||||
It is common that you require several intents together. | |||||
The example below shows how this can be done. | |||||
```cs | |||||
GatewayIntents = GatewayIntents.AllUnprivileged | GatewayIntents.GuildMembers | .. | |||||
``` | |||||
> [!NOTE] | |||||
> Further documentation on the ` | ` operator can be found | |||||
> [HERE](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/bitwise-and-shift-operators) | |||||
[developer portal]: https://discord.com/developers/ | |||||
## My client keeps returning 401 upon logging in! | ## My client keeps returning 401 upon logging in! | ||||
> [!WARNING] | > [!WARNING] | ||||
@@ -10,6 +10,58 @@ and more flexible library than any previous version. | |||||
Below are the most notable breaking changes that you would need to update your code to work with V3. | Below are the most notable breaking changes that you would need to update your code to work with V3. | ||||
### GatewayIntents | |||||
As Discord.NET has upgraded from Discord API v6 to API v9, | |||||
`GatewayIntents` must now be specified in the socket config, as well as on the [developer portal]. | |||||
```cs | |||||
// Where ever you declared your websocket client. | |||||
DiscordSocketClient _client; | |||||
... | |||||
var config = new DiscordSocketConfig() | |||||
{ | |||||
.. // Other config options can be presented here. | |||||
GatewayIntents = GatewayIntents.All | |||||
} | |||||
_client = new DiscordSocketClient(config); | |||||
``` | |||||
#### Common intents: | |||||
- AllUnprivileged: This is a group of most common intents, that do NOT require any [developer portal] intents to be enabled. | |||||
This includes intents that receive messages such as: `GatewayIntents.GuildMessages, GatewayIntents.DirectMessages` | |||||
- GuildMembers: An intent disabled by default, as you need to enable it in the [developer portal]. | |||||
- GuildPresences: Also disabled by default, this intent together with `GuildMembers` are the only intents not included in `AllUnprivileged`. | |||||
- All: All intents, it is ill adviced to use this without care, as it *can* cause a memory leak from presence. | |||||
The library will give responsive warnings if you specify unnecessary intents. | |||||
> [!NOTE] | |||||
> All gateway intents, their Discord API counterpart and their enum value are listed | |||||
> [HERE](xref:Discord.GatewayIntents) | |||||
#### Stacking intents: | |||||
It is common that you require several intents together. | |||||
The example below shows how this can be done. | |||||
```cs | |||||
GatewayIntents = GatewayIntents.AllUnprivileged | GatewayIntents.GuildMembers | .. | |||||
``` | |||||
> [!NOTE] | |||||
> Further documentation on the ` | ` operator can be found | |||||
> [HERE](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/bitwise-and-shift-operators) | |||||
[developer portal]: https://discord.com/developers/ | |||||
### ReactionAdded Event | ### ReactionAdded Event | ||||
The reaction added event has been changed to have both parameters cacheable. | The reaction added event has been changed to have both parameters cacheable. | ||||