Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge Labs 3.X into dev #1923

Merged
merged 569 commits into from
Nov 23, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
569 commits
Select commit Hold shift + click to select a range
d85c5e3
meta: bump version
quinchs Sep 21, 2021
96af3cc
Null or empty fix (#176)
killerfrienddk Sep 22, 2021
77b8e78
More regions (#177)
killerfrienddk Sep 22, 2021
3b99ce5
Discord.net.core.xml fix (#178)
killerfrienddk Sep 22, 2021
0bff21f
Remove references to labs
quinchs Sep 22, 2021
a92c6ea
Update Discord.Net.sln
quinchs Sep 22, 2021
7a276fb
Merge branch 'release/3.x' of https://github.com/Discord-Net-Labs/Dis…
quinchs Sep 22, 2021
5987af7
Added SendMessagesInThreads and StartEmbeddedActivities. (#175)
drobbins329 Sep 22, 2021
016c1dc
Squashed commit of the following:
quinchs Sep 23, 2021
884c15c
meta: xml. closes #171
quinchs Sep 23, 2021
959df2d
Revert user agent and $device to dnet
quinchs Sep 23, 2021
6a66440
Merge branch 'refactor/3.x' into release/3.x
quinchs Sep 23, 2021
9c9b7fb
meta: bump version
quinchs Sep 23, 2021
091e7e2
meta: bump vers
quinchs Sep 23, 2021
fa851fb
Fix sticker args
quinchs Sep 23, 2021
7e53fe5
Grammer fix (#179)
killerfrienddk Sep 23, 2021
d0738d6
Made IVoiceChannel mentionable
quinchs Sep 24, 2021
cfac5d5
Embeds array for send message async (#181)
killerfrienddk Sep 24, 2021
ad78542
Fix thread permissions (#183)
MrCakeSlayer Sep 24, 2021
ab8e566
Use compound assignment (#186)
killerfrienddk Sep 24, 2021
d897ba1
Remove unnecessary suppression (#188)
killerfrienddk Sep 24, 2021
dba3962
Inlined variable declarations (#185)
killerfrienddk Sep 24, 2021
c997ac2
Fixed some warnings (#184)
killerfrienddk Sep 24, 2021
0b47c71
Object initialization can be simplified fixed (#189)
killerfrienddk Sep 24, 2021
a8ffa5d
Conditional-expression-simplification (#193)
killerfrienddk Sep 24, 2021
ad34d8b
Capitlazation fixes (#192)
killerfrienddk Sep 24, 2021
0136dec
Removed-this. (#191)
killerfrienddk Sep 24, 2021
a4c024a
Use 'switch' expression (#187)
killerfrienddk Sep 24, 2021
788d654
Fixed-compiler-error (#194)
killerfrienddk Sep 24, 2021
6457add
Submitting updates to include new permissions. (#195)
drobbins329 Sep 25, 2021
bdcc508
Update azure-pipelines.yml
quinchs Sep 25, 2021
b1e9c73
Update azure-pipelines.yml
quinchs Sep 25, 2021
3ba6916
Update azure-pipelines.yml
quinchs Sep 25, 2021
98845b9
Add support for long in autocomplete option
quinchs Sep 25, 2021
bc8c960
Add support for sending files with multiple embeds (#196)
d4n3436 Sep 25, 2021
17b5da2
Merge branch 'release/3.x' of https://github.com/Discord-Net-Labs/Dis…
quinchs Sep 25, 2021
afcd179
Consistency for embeds endpoints (#197)
killerfrienddk Sep 25, 2021
d838de9
Revert pipeline
quinchs Sep 25, 2021
4fedeee
Fix duplicate merge conflicts
quinchs Sep 25, 2021
7cabcc7
Changed minimum slash command name length to 1 per Discord API docs (…
WilliamWelsh Sep 26, 2021
d21d83b
Channel endpoints requirements correction (#199)
killerfrienddk Sep 26, 2021
94ff2e6
Added restriction for description not being null (#200)
killerfrienddk Sep 26, 2021
a4550c8
Update azure-pipelines.yml
quinchs Sep 26, 2021
e452a88
Update deploy.yml
quinchs Sep 26, 2021
3babf8f
Remove version tag from proj
quinchs Sep 26, 2021
c28ceeb
Update deploy.yml
quinchs Sep 26, 2021
9c91441
Removed versions from project files
quinchs Sep 26, 2021
d5805a0
Removed style of the nuget badge and added logo (#201)
killerfrienddk Sep 26, 2021
f63e2dd
Fix Type not being set in SocketApplicationCommand
quinchs Sep 27, 2021
ddf7624
Merge branch 'release/3.x' of https://github.com/Discord-Net-Labs/Dis…
quinchs Sep 27, 2021
78879da
Remove useless GuildId property
quinchs Sep 27, 2021
7079749
meta: update XML
quinchs Sep 27, 2021
cd87664
Add Autocomplete to SlashCommandOptionBuilder
quinchs Sep 30, 2021
e7cec95
Added autocomplete in SlashCommandOptionBuilder. (#206)
Sep 30, 2021
3fda003
Fix duplicate autocomplete
quinchs Sep 30, 2021
efc4cb4
Fix #208
quinchs Sep 30, 2021
4b1f875
Fix sub commands being interpreted as a parameter for autocomplete
quinchs Sep 30, 2021
cdbebb4
Fix exposed optional
quinchs Sep 30, 2021
7de13bb
Support the discord:// protocol in buttons (#207)
CottageDwellingCat Oct 1, 2021
9b7e3da
Add competing activity status type (#205)
MrCakeSlayer Oct 1, 2021
42b693c
Add Icons to IRole (#204)
WilliamWelsh Oct 1, 2021
2cf9896
Added Clean Content Function (#174)
emillly-b Oct 1, 2021
c073db1
Clean Content Expanded (#212)
emillly-b Oct 2, 2021
34748c8
Add event for autocomplete interaction (#214)
marens101 Oct 2, 2021
90986e9
Spelling corrections (#215)
killerfrienddk Oct 3, 2021
5b9203f
Remove null collections
quinchs Oct 4, 2021
dc7e02f
Followup with file async warnings (#216)
killerfrienddk Oct 4, 2021
3559c27
Add channel types in application command options. (#217)
CottageDwellingCat Oct 4, 2021
a20b2b6
Stage instance audit logs as well as thread audit log type
quinchs Oct 4, 2021
6112bc2
Merge branch 'release/3.x' of https://github.com/Discord-Net-Labs/Dis…
quinchs Oct 4, 2021
4f9b1b2
Update azure-pipelines.yml
quinchs Oct 4, 2021
4c70cda
Update azure-pipelines.yml
quinchs Oct 4, 2021
b828dd6
Fix system messages not including mentioned users. Added ContextMenuC…
quinchs Oct 5, 2021
190e9eb
Remove file extension check (#218)
d4n3436 Oct 5, 2021
447ab1e
Fix NRE in modify guild channel
quinchs Oct 5, 2021
a8619ec
Merge branch 'release/3.x' of https://github.com/Discord-Net-Labs/Dis…
quinchs Oct 5, 2021
169010e
Fix 429's not being accounted for in ratelimit updates
quinchs Oct 5, 2021
87af121
meta: add net5 framework
quinchs Oct 6, 2021
b898df9
Proper doc logos (#221)
MrCakeSlayer Oct 7, 2021
4282d41
Update package logo and favicon
quinchs Oct 7, 2021
07fe2c2
Merge branch 'release/3.x' of https://github.com/Discord-Net-Labs/Dis…
quinchs Oct 7, 2021
e8faa00
Update docfx references
quinchs Oct 7, 2021
1354954
Remove XML files and use original pipeline format
quinchs Oct 7, 2021
3cd842b
Remove console writeline
quinchs Oct 7, 2021
0f681ca
Remove Console.WriteLine
quinchs Oct 7, 2021
baca5f8
Remove useless log
quinchs Oct 7, 2021
fbf2bb9
Rename Available sticker field to IsAvailable
quinchs Oct 7, 2021
96b816e
Rename Available to IsAvailable in stickers
quinchs Oct 7, 2021
2f19d57
Merge branch 'release/3.x' of https://github.com/Discord-Net-Labs/Dis…
quinchs Oct 7, 2021
7ae1ba6
Add summary indent for role members
quinchs Oct 7, 2021
a4edfba
Add summary indent to SocketInvite
quinchs Oct 7, 2021
4f6b1ca
Rename DefaultPermission to IsDefaultPermission
quinchs Oct 7, 2021
c0fb006
Rename Default to IsDefault and Required to IsRequired in IApplicatio…
quinchs Oct 7, 2021
596ac74
Rename Default and Required to IsDefault and IsRequired in IApplicati…
quinchs Oct 7, 2021
b3c503b
Remove extra white spaces
quinchs Oct 7, 2021
a4bfe6e
Renamed Joined, Archived, and Locked to HasJoined, IsArchived, and Is…
quinchs Oct 7, 2021
18856a3
Rename Live and DiscoverableDisabled to IsDiscoverableDisabled and Is…
quinchs Oct 7, 2021
08af731
Remove newline
quinchs Oct 7, 2021
4e75dfb
Add indent to summaries
quinchs Oct 7, 2021
9734829
Remove unnecessary json serializer field
quinchs Oct 7, 2021
67a8725
Fix ToEntity for roletags incorrectly using IsPremiumSubscriber
quinchs Oct 7, 2021
622d352
Update RestChannel for new channel types
quinchs Oct 7, 2021
19d1c41
Fix different rest channels not deserializing properly
quinchs Oct 7, 2021
6aa1014
fully qualify internal for UrlValidation and add indent to summary
quinchs Oct 7, 2021
c44d740
Add missing periods to InteractionResponseType
quinchs Oct 7, 2021
e8edd2a
Fix summary in IApplicationCommandOptionChoice
quinchs Oct 7, 2021
e4842b8
Update IApplicationCommandOption summaries
quinchs Oct 7, 2021
2e9e7bf
Update IApplicationCommandInteractionDataOption summaries
quinchs Oct 7, 2021
8178188
Update IApplicationCommandInteractionData summaries
quinchs Oct 7, 2021
7255fd5
Update IApplicationCommand summaries
quinchs Oct 7, 2021
35fe57b
Update ApplicationCommandType summaries
quinchs Oct 7, 2021
68126f2
rename DefaultPermission to IsDefaultPermission in ApplicationCommand…
quinchs Oct 7, 2021
d374042
update ApplicationCommandOptionChoiceProperties summaries
quinchs Oct 7, 2021
ebc3674
Rename Default, Required, and Autocomplete to IsDefault, IsRequired, …
quinchs Oct 7, 2021
7a3da6b
Update SlashCommandProperties summaries
quinchs Oct 7, 2021
5ae3f09
update SlashCommandBuilder boolean field names, summaries, and choice…
quinchs Oct 7, 2021
6cd4730
Update SelectMenuOption summaries, Rename Default to IsDefault in Sel…
quinchs Oct 7, 2021
46c8365
update SelectMenuComponent summaries. Rename Disabled to IsDisabled i…
quinchs Oct 7, 2021
92da434
update ComponentBuilder summaries and boolean fields.
quinchs Oct 7, 2021
28f8ac8
Update ButtonComponent summaries and boolean fields
quinchs Oct 7, 2021
c1b076b
update ActionRowComponent summaries
quinchs Oct 7, 2021
d818edd
Update UserCommandBuilder
quinchs Oct 7, 2021
a4c4731
Update MessageCommandBuilder summaries and boolean properties
quinchs Oct 7, 2021
08134d8
Update IGuild summary
quinchs Oct 7, 2021
b44ba49
Update IGuild summaries
quinchs Oct 7, 2021
ae729ef
Update StagePrivacyLevel summary
quinchs Oct 7, 2021
504cbe4
update IThreadChannel summaries
quinchs Oct 7, 2021
537629c
Update IStageChannel summaries
quinchs Oct 7, 2021
06eefa7
Refactor summaries and boolean property names
quinchs Oct 9, 2021
1cf5c8f
General cleanup (#223)
d4n3436 Oct 9, 2021
266a9c8
Ephemeral attachments
quinchs Oct 12, 2021
1adadf1
Add missing jsonproperty attribute
quinchs Oct 12, 2021
6533a2a
Add IMessage.Interaction
quinchs Oct 12, 2021
f2a8429
Update attachment checks for embed urls
quinchs Oct 12, 2021
e2927f2
meta: bump version
quinchs Oct 12, 2021
799fa91
Remove old package configs and update image
quinchs Oct 12, 2021
d4ee375
Update package logos
quinchs Oct 12, 2021
6cfbb59
Fix logo reference for azure
quinchs Oct 12, 2021
dabed49
Deprecate old package definitions in favor for target file
quinchs Oct 12, 2021
81d31ca
Deprecate old package definitions in favor for target file
quinchs Oct 12, 2021
0b4e364
Merge branch 'release/3.x' of https://github.com/Discord-Net-Labs/Dis…
quinchs Oct 12, 2021
978b3cd
Update package ids
quinchs Oct 12, 2021
9a7e925
Fix url validation
quinchs Oct 12, 2021
136b5c1
meta: bump version
quinchs Oct 12, 2021
fda95c7
Fix assignment of UserMentions (#233)
emillly-b Oct 12, 2021
33a96ab
Fix CleanContent (#231)
emillly-b Oct 12, 2021
ae3f60b
Fix SocketSlashCommandData access modifier. (#237)
emillly-b Oct 12, 2021
03209c4
Update README with better header (#232)
csmir Oct 12, 2021
4c9b396
Implement checks for interaction respond times and multiple interacti…
quinchs Oct 12, 2021
2417c85
Merge branch 'release/3.x' of https://github.com/Discord-Net-Labs/Dis…
quinchs Oct 12, 2021
a862507
Add response check to socket auto complete
quinchs Oct 12, 2021
edba12a
meta: bump versions
quinchs Oct 13, 2021
62e38c9
Fix #239
quinchs Oct 15, 2021
1211b85
meta: bump version
quinchs Oct 15, 2021
0e16088
meta: update logo
quinchs Oct 15, 2021
0f18e5b
meta: bump versions
quinchs Oct 15, 2021
830399f
Revert received at time, confirmed by discord staff to be accurate
quinchs Oct 17, 2021
097d284
Merge branch 'release/3.x' of https://github.com/Discord-Net-Labs/Dis…
quinchs Oct 17, 2021
4ea9978
Update docs
quinchs Oct 17, 2021
fa6a0a8
Update CHANGELOG.md
quinchs Oct 17, 2021
516cfaf
meta: docs building
quinchs Oct 17, 2021
06711c4
Update docs.yml
quinchs Oct 17, 2021
aec47dd
Update docs.yml
quinchs Oct 17, 2021
b8c0085
Fix docfx version
quinchs Oct 17, 2021
81678ea
Update docs.yml
quinchs Oct 17, 2021
ad09833
Update docs.bat
quinchs Oct 17, 2021
ec0c3e2
Rename docs repo for clone
quinchs Oct 17, 2021
31118d2
update docfx version
quinchs Oct 17, 2021
14a6ad9
Update docs.bat
quinchs Oct 17, 2021
a794c7a
Update docfx version
quinchs Oct 17, 2021
785b4b6
Remove docs from pipeline
quinchs Oct 17, 2021
15a160e
FAQ revamped, metadata updated (#241)
csmir Oct 17, 2021
830bc3d
Fix InvalidOperationException in modify channel
quinchs Oct 20, 2021
10a9ef2
Merge branch 'release/3.x' of https://github.com/Discord-Net-Labs/Dis…
quinchs Oct 20, 2021
796d94d
feature: guild avatars, closes #238
quinchs Oct 20, 2021
6cc4e65
feature: modify role icons
quinchs Oct 20, 2021
c9cba02
meta: changelog
quinchs Oct 20, 2021
7e27a63
meta: bump version
quinchs Oct 20, 2021
89ba558
Update README.md
quinchs Oct 20, 2021
8f9eb07
Fix non value type options not being included in autocomplete
quinchs Oct 21, 2021
ab213af
Merge branch 'release/3.x' of https://github.com/Discord-Net-Labs/Dis…
quinchs Oct 21, 2021
a20118a
Add new activity flags (#254)
BillChirico Oct 23, 2021
dd3214d
Added support for GUILD_JOIN_REQUEST_DELETE event (#253)
WilliamWelsh Oct 23, 2021
55794d5
Adding BotHTTPInteraction user flag (#252)
drobbins329 Oct 23, 2021
501ff9d
animated guild banner support (#255)
MrCakeSlayer Oct 23, 2021
1393868
Docs work (WIP) (#242)
csmir Oct 23, 2021
a9216f1
Add student hub guild directory channel (#256)
MrCakeSlayer Oct 24, 2021
6092c42
Fix followup with file overwrite having incorrect parameter locations
quinchs Oct 24, 2021
969e882
Merge labs 3.x
quinchs Oct 25, 2021
01718fa
Update GUILD_JOIN_REQUEST_DELETE event
quinchs Oct 25, 2021
d0e3744
Update head.tmpl.partial
quinchs Oct 26, 2021
244fcb9
Removed BannerId and AccentColor (#260)
Liege72 Oct 27, 2021
caaad5e
Support Guild Boost Progress Bars (#262)
CottageDwellingCat Oct 27, 2021
9e4b085
Remove log for reconnect
quinchs Oct 28, 2021
146859a
Merge branch 'release/3.x' of https://github.com/Discord-Net-Labs/Dis…
quinchs Oct 28, 2021
650dd94
Add missing flags to SystemChannelMessageDeny (#267)
CottageDwellingCat Oct 29, 2021
3b57e1d
Fix labs reference in analyzer project and provider project
quinchs Nov 1, 2021
4a4f1bc
Rename new activity flags
quinchs Nov 1, 2021
bceeab2
Guild feature revamp and smart gateway intent checks
quinchs Nov 1, 2021
4ceccbe
Get thread user implementation
quinchs Nov 1, 2021
ef4aa62
Amend creating slash command guide (#269)
drobbins329 Nov 3, 2021
8439019
Fix numeric type check for options
quinchs Nov 7, 2021
8abc9b4
Add state checking to ConnectionManager.StartAsync (#272)
CottageDwellingCat Nov 8, 2021
c349643
initial interface changes
quinchs Nov 8, 2021
fd28b61
Multi file upload + attachment editing
quinchs Nov 9, 2021
69a6b4d
meta: bump versions
quinchs Nov 9, 2021
a7896e0
Update CHANGELOG.md
quinchs Nov 9, 2021
85b9f4f
Update CHANGELOG.md
quinchs Nov 9, 2021
8e5e360
Support Min and Max values on ApplicationCommandOptions (#273)
CottageDwellingCat Nov 10, 2021
14672e1
Logomark, doc settings edit (#258)
csmir Nov 15, 2021
a094be5
Change default sticker behavior and add AlwaysResolveSticker to the c…
quinchs Nov 15, 2021
3299cb7
Merge branch 'release/3.x' of https://github.com/Discord-Net-Labs/Dis…
quinchs Nov 15, 2021
32f5661
Implement rest based interactions. Added ED25519 checks. Updated summ…
quinchs Nov 15, 2021
1a97d4f
Update package logo
quinchs Nov 17, 2021
37d9bb3
Automatically fix ordering of optional command options (#276)
CottageDwellingCat Nov 18, 2021
de404b2
Fix maximum number of Select Menu Options (#282)
Floowey Nov 18, 2021
cee64e0
Add voice region to modify voice channels
quinchs Nov 18, 2021
de59f5a
Update summaries on rest interactions
quinchs Nov 18, 2021
2cb0a01
Interaction Specific Interfaces (#283)
Cenngo Nov 19, 2021
9dd4ed2
Update application
quinchs Nov 19, 2021
c0c253e
Merge branch 'release/3.x' of https://github.com/Discord-Net-Labs/Dis…
quinchs Nov 19, 2021
e41e1a1
Add Guild Scheduled Events (#279)
quinchs Nov 19, 2021
7c615cb
meta: bump version
quinchs Nov 19, 2021
f7a0311
Increment meta version (#285)
csmir Nov 19, 2021
e596312
Fix #289 and add configureawaits to rest based interactions
quinchs Nov 21, 2021
a01a025
Merge branch 'release/3.x' of https://github.com/Discord-Net-Labs/Dis…
quinchs Nov 21, 2021
89e783f
meta: bump version
quinchs Nov 21, 2021
7901877
Add GUILD_SCHEDULED_EVENT_USER_ADD and GUILD_SCHEDULED_EVENT_USER_REM…
quinchs Nov 21, 2021
dea7ba9
Remove newline
quinchs Nov 21, 2021
b8218a0
Fix autocomplete result value
quinchs Nov 21, 2021
6088859
meta: bump versions
quinchs Nov 21, 2021
3c96381
Add `GuildScheduledEventUserAdd` and `GuildScheduledEventUserRemove` …
quinchs Nov 21, 2021
b5baa95
Make RestUserCommand public (#292)
d4n3436 Nov 21, 2021
614a96b
Fix Components not showing on FUWF (#288) (#293)
exsersewo Nov 21, 2021
1cfa704
Implement smarter rest resolvable interaction data. Fixes #294
quinchs Nov 22, 2021
c908f14
Merge branch 'release/3.x' of https://github.com/Discord-Net-Labs/Dis…
quinchs Nov 22, 2021
c5b8d07
Add UseInteractionSnowflakeDate to config #286
quinchs Nov 22, 2021
9cc7d2d
Implement Better Discord Errors (#291)
quinchs Nov 22, 2021
7581757
Change the minimum length of slash commands to 1 (#284)
pdelvo Nov 22, 2021
f629633
Add new thread creation properties
quinchs Nov 23, 2021
cd993a6
Add role emoji. Fixes #295
quinchs Nov 23, 2021
319ae50
Fix mocked text channel
quinchs Nov 23, 2021
fd9b37d
Fix precondition checks. Closes #281
quinchs Nov 23, 2021
71e03ac
Initial fix (#297)
quinchs Nov 23, 2021
2d20a84
meta: bump version
quinchs Nov 23, 2021
6927914
Merge branch 'release/3.x' of https://github.com/Discord-Net-Labs/Dis…
quinchs Nov 23, 2021
b293c3c
Merge branch 'release/3.x' of https://github.com/Discord-Net-Labs/Dis…
quinchs Nov 23, 2021
db201df
Update from release/3.x
quinchs Nov 23, 2021
fb31484
Remove more labs references
quinchs Nov 23, 2021
5010e47
Remove doc file for Discord.Net.Analyzers
quinchs Nov 23, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion Discord.Net.sln
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Discord.Net.Analyzers.Tests
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Discord.Net.Examples", "src\Discord.Net.Examples\Discord.Net.Examples.csproj", "{47820065-3CFB-401C-ACEA-862BD564A404}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "idn", "samples\idn\idn.csproj", "{4A03840B-9EBE-47E3-89AB-E0914DF21AFB}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "idn", "samples\idn\idn.csproj", "{4A03840B-9EBE-47E3-89AB-E0914DF21AFB}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
The MIT License (MIT)

Copyright (c) 2015-2019 Discord.Net Contributors
Copyright (c) 2015-2021 Discord.Net Contributors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
10 changes: 10 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# Discord.Net

[![NuGet](https://img.shields.io/nuget/vpre/Discord.Net.svg?maxAge=2592000?style=plastic)](https://www.nuget.org/packages/Discord.Net)
[![MyGet](https://img.shields.io/myget/discord-net/vpre/Discord.Net.svg)](https://www.myget.org/feed/Packages/discord-net)
[![Build Status](https://dev.azure.com/discord-net/Discord.Net/_apis/build/status/discord-net.Discord.Net?branchName=dev)](https://dev.azure.com/discord-net/Discord.Net/_build/latest?definitionId=1&branchName=dev)
Expand All @@ -12,34 +13,43 @@ An unofficial .NET API Wrapper for the Discord client (https://discord.com).
- [Latest CI repo](https://github.com/discord-net/docs-static)

## Installation

### Stable (NuGet)

Our stable builds available from NuGet through the Discord.Net metapackage:

- [Discord.Net](https://www.nuget.org/packages/Discord.Net/)

The individual components may also be installed from NuGet:

- [Discord.Net.Commands](https://www.nuget.org/packages/Discord.Net.Commands/)
- [Discord.Net.Rest](https://www.nuget.org/packages/Discord.Net.Rest/)
- [Discord.Net.WebSocket](https://www.nuget.org/packages/Discord.Net.WebSocket/)
- [Discord.Net.Webhook](https://www.nuget.org/packages/Discord.Net.Webhook/)

### Unstable (MyGet)

Nightly builds are available through our MyGet feed (`https://www.myget.org/F/discord-net/api/v3/index.json`).

## Compiling

In order to compile Discord.Net, you require the following:

### Using Visual Studio

- [Visual Studio 2017](https://www.microsoft.com/net/core#windowsvs2017)
- [.NET Core SDK](https://www.microsoft.com/net/download/core)

The .NET Core workload must be selected during Visual Studio installation.

### Using Command Line

- [.NET Core SDK](https://www.microsoft.com/net/download/core)

## Known Issues

### WebSockets (Win7 and earlier)

.NET Core 1.1 does not support WebSockets on Win7 and earlier. This issue has been fixed since the release of .NET Core 2.1. It is recommended to target .NET Core 2.1 or above for your project if you wish to run your bot on legacy platforms; alternatively, you may choose to install the [Discord.Net.Providers.WS4Net](https://www.nuget.org/packages/Discord.Net.Providers.WS4Net/) package.

## Versioning Guarantees
Expand Down
49 changes: 49 additions & 0 deletions docs/guides/concepts/ratelimits.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# Ratelimits

Ratelimits are a core concept of any API - Discords API is no exception. each verified library must follow the ratelimit guidelines.

### Using the ratelimit callback

There is a new property within `RequestOptions` called RatelimitCallback. This callback is called when a request is made via the rest api. The callback is called with a `IRateLimitInfo` parameter:

| Name | Type | Description |
| ---------- | --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| IsGlobal | bool | Whether or not this ratelimit info is global. |
| Limit | int? | The number of requests that can be made. |
| Remaining | int? | The number of remaining requests that can be made. |
| RetryAfter | int? | The total time (in seconds) of when the current rate limit bucket will reset. Can have decimals to match previous millisecond ratelimit precision. |
| Reset | DateTimeOffset? | The time at which the rate limit resets. |
| ResetAfter | TimeSpan? | The absolute time when this ratelimit resets. |
| Bucket | string | A unique string denoting the rate limit being encountered (non-inclusive of major parameters in the route path). |
| Lag | TimeSpan? | The amount of lag for the request. This is used to denote the precise time of when the ratelimit expires. |
| Endpoint | string | The endpoint that this ratelimit info came from. |

Let's set up a ratelimit callback that will print out the ratelimit info to the console.

```cs
public async Task MyRatelimitCallback(IRateLimitInfo info)
{
Console.WriteLine($"{info.IsGlobal} {info.Limit} {info.Remaining} {info.RetryAfter} {info.Reset} {info.ResetAfter} {info.Bucket} {info.Lag} {info.Endpoint}");
}
```

Let's use this callback in a send message function

```cs
[Command("ping")]
public async Task ping()
{
var options = new RequestOptions()
{
RatelimitCallback = MyRatelimitCallback
};

await Context.Channel.SendMessageAsync("Pong!", options: options);
}
```

Running this produces the following output:

```
False 5 4 2021-09-09 3:48:14 AM +00:00 00:00:05 a06de0de4a08126315431cc0c55ee3dc 00:00:00.9891364 channels/848511736872828929/messages
```
8 changes: 5 additions & 3 deletions docs/guides/emoji/emoji.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,14 +46,16 @@ form; this can be obtained in several different ways.
### Emoji Declaration

After obtaining the Unicode representation of the emoji, you may
create the @Discord.Emoji object by passing the string into its
create the @Discord.Emoji object by passing the string with unicode into its
constructor (e.g. `new Emoji("👌");` or `new Emoji("\uD83D\uDC4C");`).

Your method of declaring an @Discord.Emoji should look similar to
this:

[!code-csharp[Emoji Sample](samples/emoji-sample.cs)]

Also you can use `Emoji.Parse()` or `Emoji.TryParse()` methods
for parsing emojis from strings like `:heart:`, `<3` or `❤`.

[FileFormat.Info]: https://www.fileformat.info/info/emoji/list.htm

## Emote
Expand Down Expand Up @@ -97,4 +99,4 @@ this:
## Additional Information

To learn more about emote and emojis and how they could be used,
see the documentation of @Discord.IEmote.
see the documentation of @Discord.IEmote.
31 changes: 31 additions & 0 deletions docs/guides/guild_events/creating-guild-events.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
uid: Guides.GuildEvents.Creating
title: Creating Guild Events
---

# Creating guild events

You can create new guild events by using the `CreateEventAsync` function on a guild.

### Parameters

| Name | Type | Summary |
| ------------- | --------------------------------- | ---------------------------------------------------------------------------- |
| name | `string` | Sets the name of the event. |
| startTime | `DateTimeOffset` | Sets the start time of the event. |
| type | `GuildScheduledEventType` | Sets the type of the event. |
| privacyLevel? | `GuildScheduledEventPrivacyLevel` | Sets the privacy level of the event |
| description? | `string` | Sets the description of the event. |
| endTime? | `DateTimeOffset?` | Sets the end time of the event. |
| channelId? | `ulong?` | Sets the channel id of the event, only valid on stage or voice channel types |
| location? | `string` | Sets the location of the event, only valid on external types |

Lets create a basic test event.

```cs
var guild = client.GetGuild(guildId);

var guildEvent = await guild.CreateEventAsync("test event", DateTimeOffset.UtcNow.AddDays(1), GuildScheduledEventType.External, endTime: DateTimeOffset.UtcNow.AddDays(2), location: "Space");
```

This code will create an event that lasts a day and starts tomorrow. It will be an external event thats in space.
16 changes: 16 additions & 0 deletions docs/guides/guild_events/getting-event-users.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
uid: Guides.GuildEvents.GettingUsers
title: Getting Guild Event Users
---

# Getting Event Users

You can get a collection of users who are currently interested in the event by calling `GetUsersAsync`. This method works like any other get users method as in it returns an async enumerable. This method also supports pagination by user id.

```cs
// get all users and flatten the result into one collection.
var users = await event.GetUsersAsync().FlattenAsync();

// get users around the 613425648685547541 id.
var aroundUsers = await event.GetUsersAsync(613425648685547541, Direction.Around).FlattenAsync();
```
41 changes: 41 additions & 0 deletions docs/guides/guild_events/intro.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
---
uid: Guides.GuildEvents.Intro
title: Introduction to Guild Events
---

# Guild Events

Guild events are a way to host events within a guild. They offer alot of features and flexibility.

## Getting started with guild events

You can access any events within a guild by calling `GetEventsAsync` on a guild.

```cs
var guildEvents = await guild.GetEventsAsync();
```

If your working with socket guilds you can just use the `Events` property:

```cs
var guildEvents = guild.Events;
```

There are also new gateway events that you can hook to receive guild scheduled events on.

```cs
// Fired when a guild event is cancelled.
client.GuildScheduledEventCancelled += ...

// Fired when a guild event is completed.
client.GuildScheduledEventCompleted += ...

// Fired when a guild event is started.
client.GuildScheduledEventStarted += ...

// Fired when a guild event is created.
client.GuildScheduledEventCreated += ...

// Fired when a guild event is updated.
client.GuildScheduledEventUpdated += ...
```
23 changes: 23 additions & 0 deletions docs/guides/guild_events/modifying-events.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
uid: Guides.GuildEvents.Modifying
title: Modifying Guild Events
---

# Modifying Events

You can modify events using the `ModifyAsync` method to modify the event, heres the properties you can modify:

| Name | Type | Description |
| ------------ | --------------------------------- | -------------------------------------------- |
| ChannelId | `ulong?` | Gets or sets the channel id of the event. |
| string | `string` | Gets or sets the location of this event. |
| Name | `string` | Gets or sets the name of the event. |
| PrivacyLevel | `GuildScheduledEventPrivacyLevel` | Gets or sets the privacy level of the event. |
| StartTime | `DateTimeOffset` | Gets or sets the start time of the event. |
| EndTime | `DateTimeOffset` | Gets or sets the end time of the event. |
| Description | `string` | Gets or sets the description of the event. |
| Type | `GuildScheduledEventType` | Gets or sets the type of the event. |
| Status | `GuildScheduledEventStatus` | Gets or sets the status of the event. |

> [!NOTE]
> All of these properties are optional.
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
uid: Guides.SlashCommands.Intro
title: Introduction to slash commands
---


# Getting started with application commands.

Welcome! This guide will show you how to use application commands.

## What is an application command?

Application commands consist of three different types. Slash commands, context menu User commands and context menu Message commands.
Slash commands are made up of a name, description, and a block of options, which you can think of like arguments to a function. The name and description help users find your command among many others, and the options validate user input as they fill out your command.
Message and User commands are only a name, to the user. So try to make the name descriptive. They're accessed by right clicking (or long press, on mobile) a user or a message, respectively.

All three varieties of application commands have both Global and Guild variants. Your global commands are available in every guild that adds your application. You can also make commands for a specific guild; they're only available in that guild. The User and Message commands are more limited in quantity than the slash commands. For specifics, check out their respective guide pages.

An Interaction is the message that your application receives when a user uses a command. It includes the values that the user submitted, as well as some metadata about this particular instance of the command being used: the guild_id, channel_id, member and other fields. You can find all the values in our data models.

## Authorizing your bot for application commands

There is a new special OAuth2 scope for applications called `applications.commands`. In order to make Application Commands work within a guild, the guild must authorize your application with the `applications.commands` scope. The bot scope is not enough.

Head over to your discord applications OAuth2 screen and make sure to select the `application.commands` scope.

![OAuth2 scoping](slash-commands/images/oauth.png)

From there you can then use the link to add your bot to a server.

> [!NOTE]
> In order for users in your guild to use your slash commands, they need to have the "Use Slash Command" permission on the guild.
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
---
uid: Guides.ContextCommands.Creating
title: Creating Context Commands
---

# Creating context menu commands.

There are two kinds of Context Menu Commands: User Commands and Message Commands.
Each of these have a Global and Guild variant.
Global menu commands are available for every guild that adds your app. An individual app's global commands are also available in DMs if that app has a bot that shares a mutual guild with the user.

Guild commands are specific to the guild you specify when making them. Guild commands are not available in DMs. Command names are unique per application within each scope (global and guild). That means:

- Your app cannot have two global commands with the same name
- Your app cannot have two guild commands within the same name on the same guild
- Your app can have a global and guild command with the same name
- Multiple apps can have commands with the same names

**Note**: Apps can have a maximum of 5 global context menu commands, and an additional 5 guild-specific context menu commands per guild.

If you don't have the code for a bot ready yet please follow [this guide](https://docs.stillu.cc/guides/getting_started/first-bot.html).

## UserCommandBuilder

The context menu user command builder will help you create user commands. The builder has these available fields and methods:

| Name | Type | Description |
| -------- | -------- | ------------------------------------------------------------------------------------------------ |
| Name | string | The name of this context menu command. |
| WithName | Function | Sets the field name. |
| Build | Function | Builds the builder into the appropriate `UserCommandProperties` class used to make Menu commands |

## MessageCommandBuilder

The context menu message command builder will help you create message commands. The builder has these available fields and methods:

| Name | Type | Description |
| -------- | -------- | --------------------------------------------------------------------------------------------------- |
| Name | string | The name of this context menu command. |
| WithName | Function | Sets the field name. |
| Build | Function | Builds the builder into the appropriate `MessageCommandProperties` class used to make Menu commands |

**Note**: Context Menu command names can be upper and lowercase, and use spaces.

Let's use the user command builder to make a global and guild command.

```cs
// Let's hook the ready event for creating our commands in.
client.Ready += Client_Ready;

...

public async Task Client_Ready()
{
// Let's build a guild command! We're going to need a guild so lets just put that in a variable.
var guild = client.GetGuild(guildId);

// Next, lets create our user and message command builder. This is like the embed builder but for context menu commands.
var guildUserCommand = new UserCommandBuilder();
var guildMessageCommand = new MessageCommandBuilder();

// Note: Names have to be all lowercase and match the regular expression ^[\w -]{3,32}$
guildUserCommand.WithName("Guild User Command");
guildMessageCommand.WithName("Guild Message Command");

// Descriptions are not used with User and Message commands
//guildCommand.WithDescription("");

// Let's do our global commands
var globalUserCommand = new UserCommandBuilder();
globalCommand.WithName("Global User Command");
var globalMessageCommand = new MessageCommandBuilder();
globalMessageCommand.WithName("Global Message Command");


try
{
// Now that we have our builder, we can call the BulkOverwriteApplicationCommandAsync to make our context commands. Note: this will overwrite all your previous commands with this array.
await guild.BulkOverwriteApplicationCommandAsync(new ApplicationCommandProperties[]
{
guildUserCommand.Build(),
guildMessageCommand.Build()
});

// With global commands we dont need the guild.
await client.BulkOverwriteGlobalApplicationCommandsAsync(new ApplicationCommandProperties[]
{
globalUserCommand.Build(),
globalMessageCommand.Build()
})
}
catch(ApplicationCommandException exception)
{
// If our command was invalid, we should catch an ApplicationCommandException. This exception contains the path of the error as well as the error message. You can serialize the Error field in the exception to get a visual of where your error is.
var json = JsonConvert.SerializeObject(exception.Error, Formatting.Indented);

// You can send this error somewhere or just print it to the console, for this example we're just going to print it.
Console.WriteLine(json);
}
}

```

> [!NOTE]
> Application commands only need to be created once. They do _not_ have to be 'created' on every startup or connection. The example simple shows creating them in the ready event as it's simpler than creating normal bot commands to register application commands.
Loading