├── .editorconfig
├── .gitattributes
├── .github
├── FUNDING.yml
├── ISSUE_TEMPLATE
│ ├── bug_report.yml
│ └── enhancement.yml
└── workflows
│ ├── build-and-publish.yml
│ ├── build.yml
│ ├── cleanup-documentation-preview.yml
│ └── documentation-preview.yml
├── .gitignore
├── Directory.Build.props
├── Directory.Build.targets
├── Documentation
├── .editorconfig
├── .eslintrc.cjs
├── .gitignore
├── .stylelintrc.json
├── Directory.Build.props
├── Directory.Build.targets
├── README.md
├── build-templates.js
├── build.js
├── docfx.json
├── docs
│ ├── .gitignore
│ └── index.md
├── favicon.ico
├── guides
│ ├── basic-concepts
│ │ ├── HttpInteractions
│ │ │ ├── HttpInteractionHandler.cs
│ │ │ ├── HttpInteractions.csproj
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── launchSettings.json
│ │ │ └── appsettings.json
│ │ ├── RespondingToInteractions
│ │ │ ├── Program.cs
│ │ │ └── RespondingToInteractions.csproj
│ │ ├── SendingMessages
│ │ │ ├── Program.cs
│ │ │ └── SendingMessages.csproj
│ │ ├── Sharding
│ │ │ ├── Program.cs
│ │ │ ├── RegisteringHandlers.cs
│ │ │ └── Sharding.csproj
│ │ ├── ShardingHosting
│ │ │ ├── MessageUpdateHandler.cs
│ │ │ ├── Program.cs
│ │ │ ├── RegisteringHandlers.cs
│ │ │ └── ShardingHosting.csproj
│ │ ├── Voice
│ │ │ ├── Program.cs
│ │ │ ├── Voice.csproj
│ │ │ └── VoiceModule.cs
│ │ ├── http-interactions.md
│ │ ├── installing-native-dependencies.md
│ │ ├── responding-to-interactions.md
│ │ ├── sending-messages.md
│ │ ├── sharding.md
│ │ └── voice.md
│ ├── events
│ │ ├── FirstEvents
│ │ │ ├── FirstEvents.csproj
│ │ │ └── Program.cs
│ │ ├── FirstEventsHosting
│ │ │ ├── FirstEventsHosting.csproj
│ │ │ ├── MessageCreateHandler.cs
│ │ │ ├── MessageReactionAddHandler.cs
│ │ │ └── Program.cs
│ │ ├── Intents
│ │ │ ├── Intents.csproj
│ │ │ └── Program.cs
│ │ ├── IntentsHosting
│ │ │ ├── IntentsHosting.csproj
│ │ │ └── Program.cs
│ │ ├── first-events.md
│ │ └── intents.md
│ ├── getting-started
│ │ ├── Coding
│ │ │ ├── Coding.csproj
│ │ │ └── Program.cs
│ │ ├── CodingHosting
│ │ │ ├── CodingHosting.csproj
│ │ │ ├── Program.cs
│ │ │ └── appsettings.json
│ │ ├── installation.md
│ │ └── making-a-bot.md
│ ├── services
│ │ ├── CustomModuleBasesAndContexts
│ │ │ ├── CustomContexts
│ │ │ │ ├── CustomCommandContext.cs
│ │ │ │ ├── CustomContexts.csproj
│ │ │ │ └── ExampleModule.cs
│ │ │ └── CustomModuleBases
│ │ │ │ ├── CustomCommandModule.cs
│ │ │ │ ├── CustomModuleBases.csproj
│ │ │ │ └── ExampleModule.cs
│ │ ├── DependencyInjection
│ │ │ ├── DataAutocompleteProvider.cs
│ │ │ ├── DataModule.cs
│ │ │ ├── DependencyInjection.csproj
│ │ │ ├── ISomeService.cs
│ │ │ └── Program.cs
│ │ ├── Preconditions
│ │ │ ├── ParameterPreconditions
│ │ │ │ ├── HelloModule.cs
│ │ │ │ ├── MustContainAttribute.cs
│ │ │ │ ├── ParameterPreconditions.csproj
│ │ │ │ └── Program.cs
│ │ │ └── Preconditions
│ │ │ │ ├── AvatarModule.cs
│ │ │ │ ├── ButtonModule.cs
│ │ │ │ ├── Preconditions.csproj
│ │ │ │ ├── Program.cs
│ │ │ │ └── RequireAnimatedAvatarAttribute.cs
│ │ ├── application-commands
│ │ │ ├── Introduction
│ │ │ │ ├── ExampleModule.cs
│ │ │ │ ├── Introduction.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── IntroductionHosting
│ │ │ │ ├── IntroductionHosting.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── Localizations
│ │ │ │ ├── AnimalModule.cs
│ │ │ │ ├── Localizations.csproj
│ │ │ │ ├── Localizations
│ │ │ │ │ └── pl.json
│ │ │ │ ├── PermissionsModule.cs
│ │ │ │ └── Program.cs
│ │ │ ├── LocalizationsHosting
│ │ │ │ ├── LocalizationsHosting.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── MultipleServices
│ │ │ │ ├── MultipleServices.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── Parameters
│ │ │ │ ├── Animal.cs
│ │ │ │ ├── ExampleModule.cs
│ │ │ │ ├── Parameters.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── Permissions
│ │ │ │ ├── ExampleModule.cs
│ │ │ │ ├── Permissions.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── Subcommands
│ │ │ │ ├── GuildCommandsModule.cs
│ │ │ │ ├── Program.cs
│ │ │ │ └── Subcommands.csproj
│ │ │ ├── introduction.md
│ │ │ ├── localizations.md
│ │ │ ├── multiple-services.md
│ │ │ ├── parameters.md
│ │ │ ├── permissions.md
│ │ │ └── subcommands.md
│ │ ├── component-interactions
│ │ │ ├── Introduction
│ │ │ │ ├── ButtonModule.cs
│ │ │ │ ├── ChannelMenuModule.cs
│ │ │ │ ├── Introduction.csproj
│ │ │ │ ├── MentionableMenuModule.cs
│ │ │ │ ├── ModalModule.cs
│ │ │ │ ├── Program.cs
│ │ │ │ ├── RoleMenuModule.cs
│ │ │ │ ├── StringMenuModule.cs
│ │ │ │ └── UserMenuModule.cs
│ │ │ ├── IntroductionHosting
│ │ │ │ ├── IntroductionHosting.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── Parameters
│ │ │ │ ├── ExampleModule.cs
│ │ │ │ └── Parameters.csproj
│ │ │ ├── introduction.md
│ │ │ └── parameters.md
│ │ ├── custom-module-bases-and-contexts.md
│ │ ├── dependency-injection.md
│ │ ├── introduction.md
│ │ ├── preconditions.md
│ │ ├── text-commands
│ │ │ ├── Aliases
│ │ │ │ ├── Aliases.csproj
│ │ │ │ ├── ExampleModule.cs
│ │ │ │ └── Program.cs
│ │ │ ├── Introduction
│ │ │ │ ├── ExampleModule.cs
│ │ │ │ ├── Introduction.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── IntroductionHosting
│ │ │ │ ├── IntroductionHosting.csproj
│ │ │ │ ├── Program.cs
│ │ │ │ └── appsettings.json
│ │ │ ├── Parameters
│ │ │ │ ├── ExampleModule.cs
│ │ │ │ ├── Parameters.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── aliases.md
│ │ │ ├── introduction.md
│ │ │ └── parameters.md
│ │ └── type-readers.md
│ └── toc.yml
├── image_sources
│ ├── http-interactions_FindingPublicKeyAndSpecifyingInteractionEndpointUrl.pdn
│ ├── installation_JetBrainsRider_1.pdn
│ ├── installation_JetBrainsRider_2.pdn
│ ├── installation_VisualStudio_1.pdn
│ ├── installation_VisualStudio_2.pdn
│ ├── intents_Privileged.pdn
│ ├── making-a-bot_AddBotToServer_1.pdn
│ ├── making-a-bot_AddBotToServer_2.pdn
│ ├── making-a-bot_BotOnline.pdn
│ ├── making-a-bot_CreateApplication_1.pdn
│ ├── making-a-bot_CreateApplication_2.pdn
│ ├── making-a-bot_Token_1.pdn
│ └── making-a-bot_Token_2.pdn
├── images
│ ├── BigOutline.png
│ ├── BigOutline.webp
│ ├── SmallSquare.png
│ ├── SmallSquare.webp
│ ├── http-interactions_FindingPublicKeyAndSpecifyingInteractionEndpointUrl.webp
│ ├── installation_JetBrainsRider_1.webp
│ ├── installation_JetBrainsRider_2.webp
│ ├── installation_VisualStudio_1.webp
│ ├── installation_VisualStudio_2.webp
│ ├── intents_Privileged.webp
│ ├── logo.png
│ ├── logo.webp
│ ├── making-a-bot_AddBotToServer_1.webp
│ ├── making-a-bot_AddBotToServer_2.webp
│ ├── making-a-bot_BotOnline.webp
│ ├── making-a-bot_CreateApplication_1.webp
│ ├── making-a-bot_CreateApplication_2.webp
│ ├── making-a-bot_Token_1.webp
│ └── making-a-bot_Token_2.webp
├── index.md
├── logo.svg
├── package-lock.json
├── package.json
├── robots.txt
├── templates-src
│ ├── .editorconfig
│ ├── .gitignore
│ └── NetCord
│ │ ├── ApiPage.html.primary.js
│ │ ├── ApiPage.html.primary.tmpl
│ │ ├── fonts
│ │ ├── cascadia-code.woff2
│ │ └── franklin-gothic-heavy.woff2
│ │ ├── layout
│ │ └── _master.tmpl
│ │ ├── partials
│ │ ├── class.header.tmpl.partial
│ │ ├── class.memberpage.tmpl.partial
│ │ ├── class.tmpl.partial
│ │ ├── collection.tmpl.partial
│ │ ├── customMREFContent.tmpl.partial
│ │ ├── enum.tmpl.partial
│ │ ├── example.tmpl.partial
│ │ ├── item.tmpl.partial
│ │ ├── namespace.tmpl.partial
│ │ └── root.tmpl.partial
│ │ └── src
│ │ ├── docfx.scss
│ │ ├── docfx.ts
│ │ ├── dotnet.scss
│ │ ├── helper.test.ts
│ │ ├── helper.ts
│ │ ├── highlight.scss
│ │ ├── highlight.ts
│ │ ├── layout.scss
│ │ ├── main.css
│ │ ├── main.js
│ │ ├── markdown.scss
│ │ ├── markdown.ts
│ │ ├── mixins.scss
│ │ ├── nav.scss
│ │ ├── nav.ts
│ │ ├── options.d.ts
│ │ ├── search-worker.ts
│ │ ├── search.scss
│ │ ├── search.ts
│ │ ├── theme.ts
│ │ ├── toc.scss
│ │ └── toc.ts
├── toc.yml
└── tsconfig.json
├── Hosting
├── NetCord.Hosting.AspNetCore
│ ├── EndpointRouteBuilderExtensions.cs
│ ├── NetCord.Hosting.AspNetCore.csproj
│ └── RoutePatternHelper.cs
├── NetCord.Hosting.Services
│ ├── ApplicationCommands
│ │ ├── ApplicationCommandInteractionHandler.cs
│ │ ├── ApplicationCommandResultHandler.cs
│ │ ├── ApplicationCommandServiceHostBuilderExtensions.cs
│ │ ├── ApplicationCommandServiceHostExtensions.cs
│ │ ├── ApplicationCommandServiceHostedService.cs
│ │ ├── ApplicationCommandServiceOptions.cs
│ │ ├── ApplicationCommandServiceServiceCollectionExtensions.cs
│ │ ├── AutocompleteInteractionHandler.cs
│ │ ├── AutocompleteInteractionResultHandler.cs
│ │ ├── IApplicationCommandResultHandler.cs
│ │ └── IAutocompleteInteractionResultHandler.cs
│ ├── Commands
│ │ ├── CommandHandler.cs
│ │ ├── CommandResultHandler.cs
│ │ ├── CommandServiceHostBuilderExtensions.cs
│ │ ├── CommandServiceHostExtensions.cs
│ │ ├── CommandServiceOptions.cs
│ │ ├── CommandServiceServiceCollectionExtensions.cs
│ │ └── ICommandResultHandler.cs
│ ├── ComponentInteractions
│ │ ├── ComponentInteractionHandler.cs
│ │ ├── ComponentInteractionResultHandler.cs
│ │ ├── ComponentInteractionServiceHostBuilderExtensions.cs
│ │ ├── ComponentInteractionServiceHostExtensions.cs
│ │ ├── ComponentInteractionServiceOptions.cs
│ │ ├── ComponentInteractionServiceServiceCollectionExtensions.cs
│ │ └── IComponentInteractionResultHandler.cs
│ ├── ContextHelper.cs
│ ├── KeyedServiceResolverProvider.cs
│ ├── NetCord.Hosting.Services.csproj
│ ├── ServiceProviderServiceHelper.cs
│ └── ServicesHostExtensions.cs
└── NetCord.Hosting
│ ├── ConfigurationHelper.cs
│ ├── DelegateHandlerHelper.cs
│ ├── Gateway
│ ├── GatewayClientHostBuilderExtensions.cs
│ ├── GatewayClientHostedService.cs
│ ├── GatewayClientOptions.cs
│ ├── GatewayClientServiceCollectionExtensions.cs
│ ├── GatewayEventAttribute.cs
│ ├── GatewayEventHandlerHostExtensions.cs
│ ├── GatewayEventHandlerServiceCollectionExtensions.cs
│ ├── GatewayEventHandlers.cs
│ ├── GatewayMicrosoftExtensionsLogger.cs
│ ├── ShardedGatewayClientHostBuilderExtensions.cs
│ ├── ShardedGatewayClientHostedService.cs
│ ├── ShardedGatewayClientOptions.cs
│ ├── ShardedGatewayClientServiceCollectionExtensions.cs
│ └── ShardedGatewayMicrosoftExtensionsLogger.cs
│ ├── GlobalUsings.cs
│ ├── HttpInteractionHandlerServiceCollectionExtensions.cs
│ ├── HttpInteractionHandlers.cs
│ ├── IDiscordOptions.cs
│ ├── ITokenFactory.cs
│ ├── NetCord.Hosting.csproj
│ └── Rest
│ ├── RestClientHostBuilderExtensions.cs
│ ├── RestClientOptions.cs
│ ├── RestClientServiceCollectionExtensions.cs
│ └── RestMicrosoftExtensionsLogger.cs
├── LICENSE.md
├── NetCord.Services
├── ApplicationCommands
│ ├── ApplicationCommandAttribute.cs
│ ├── ApplicationCommandContexts.cs
│ ├── ApplicationCommandInfo.cs
│ ├── ApplicationCommandModule.cs
│ ├── ApplicationCommandResultResolverProvider.cs
│ ├── ApplicationCommandService.cs
│ ├── ApplicationCommandServiceConfiguration.cs
│ ├── ApplicationCommandServiceManager.cs
│ ├── AutoTranscodingStream.cs
│ ├── AutocompleteInteractionContexts.cs
│ ├── BaseApplicationCommandModule.cs
│ ├── GuildCommands.cs
│ ├── IApplicationCommandContext.cs
│ ├── IApplicationCommandInfo.cs
│ ├── IApplicationCommandService.cs
│ ├── IAutocompleteInfo.cs
│ ├── IAutocompleteInteractionContext.cs
│ ├── IAutocompleteProvider.cs
│ ├── IChoicesProvider.cs
│ ├── ILocalizationsProvider.cs
│ ├── ISlashCommandParameterNameProcessor.cs
│ ├── ISubSlashCommandInfo.cs
│ ├── JsonLocalizationsProvider.cs
│ ├── LocalizationPathSegment.cs
│ ├── MessageCommandAttribute.cs
│ ├── MessageCommandInfo.cs
│ ├── SlashCommandAttribute.cs
│ ├── SlashCommandBuilder.cs
│ ├── SlashCommandChoiceAttribute.cs
│ ├── SlashCommandGroupInfo.cs
│ ├── SlashCommandInfo.cs
│ ├── SlashCommandParameter.cs
│ ├── SlashCommandParameterAttribute.cs
│ ├── SlashCommandParametersHelper.cs
│ ├── SlashCommandTypeReader.cs
│ ├── SubSlashCommandAttribute.cs
│ ├── SubSlashCommandGroupInfo.cs
│ ├── SubSlashCommandInfo.cs
│ ├── TypeReaders
│ │ ├── AttachmentTypeReader.cs
│ │ ├── BooleanTypeReader.cs
│ │ ├── ByteTypeReader.cs
│ │ ├── Channels
│ │ │ ├── CategoryGuildChannelTypeReader.cs
│ │ │ ├── ChannelTypeReader.cs
│ │ │ ├── IGuildChannelTypeReader.cs
│ │ │ ├── INamedChannelTypeReader.cs
│ │ │ ├── TextChannels
│ │ │ │ ├── DMChannelTypeReader.cs
│ │ │ │ ├── GroupDMChannelTypeReader.cs
│ │ │ │ ├── Guild
│ │ │ │ │ ├── AnnouncementGuildChannelTypeReader.cs
│ │ │ │ │ ├── DirectoryGuildChannelTypeReader.cs
│ │ │ │ │ ├── ForumGuildChannelTypeReader.cs
│ │ │ │ │ ├── MediaForumGuildChannelTypeReader.cs
│ │ │ │ │ ├── TextGuildChannelTypeReader.cs
│ │ │ │ │ └── Threads
│ │ │ │ │ │ ├── AnnouncementGuildThreadTypeReader.cs
│ │ │ │ │ │ ├── GuildThreadTypeReader.cs
│ │ │ │ │ │ ├── PrivateGuildThreadTypeReader.cs
│ │ │ │ │ │ └── PublicGuildThreadTypeReader.cs
│ │ │ │ └── TextChannelTypeReader.cs
│ │ │ └── VoiceChannels
│ │ │ │ └── Guild
│ │ │ │ ├── IVoiceGuildChannelTypeReader.cs
│ │ │ │ ├── StageGuildChannelTypeReader.cs
│ │ │ │ └── VoiceGuildChannelTypeReader.cs
│ │ ├── DecimalTypeReader.cs
│ │ ├── DoubleTypeReader.cs
│ │ ├── EnumTypeReader.cs
│ │ ├── GuildUserTypeReader.cs
│ │ ├── HalfTypeReader.cs
│ │ ├── Int128TypeReader.cs
│ │ ├── Int16TypeReader.cs
│ │ ├── Int32TypeReader.cs
│ │ ├── Int64TypeReader.cs
│ │ ├── IntPtrTypeReader.cs
│ │ ├── MentionableTypeReader.cs
│ │ ├── RoleTypeReader.cs
│ │ ├── SByteTypeReader.cs
│ │ ├── SingleTypeReader.cs
│ │ ├── StringTypeReader.cs
│ │ ├── UInt128TypeReader.cs
│ │ ├── UInt16TypeReader.cs
│ │ ├── UInt32TypeReader.cs
│ │ ├── UInt64TypeReader.cs
│ │ ├── UIntPtrTypeReader.cs
│ │ └── UserTypeReader.cs
│ ├── UserCommandAttribute.cs
│ └── UserCommandInfo.cs
├── AssemblyInfo.cs
├── Commands
│ ├── AllowByValueAttribute.cs
│ ├── BaseCommandModule.cs
│ ├── CommandAttribute.cs
│ ├── CommandContexts.cs
│ ├── CommandInfo.cs
│ ├── CommandModule.cs
│ ├── CommandParameter.cs
│ ├── CommandParameterAttribute.cs
│ ├── CommandResultResolverProvider.cs
│ ├── CommandService.cs
│ ├── CommandServiceConfiguration.cs
│ ├── CommandTypeReader.cs
│ ├── ICommandContext.cs
│ ├── ICommandService.cs
│ ├── SortedList.cs
│ └── TypeReaders
│ │ ├── BigIntegerTypeReader.cs
│ │ ├── BooleanTypeReader.cs
│ │ ├── ByteTypeReader.cs
│ │ ├── Channels
│ │ ├── CategoryGuildChannelTypeReader.cs
│ │ ├── ChannelTypeReader.cs
│ │ ├── IGuildChannelTypeReader.cs
│ │ ├── INamedChannelTypeReader.cs
│ │ ├── TextChannels
│ │ │ ├── DMChannelTypeReader.cs
│ │ │ ├── GroupDMChannelTypeReader.cs
│ │ │ ├── Guild
│ │ │ │ ├── AnnouncementGuildChannelTypeReader.cs
│ │ │ │ ├── DirectoryGuildChannelTypeReader.cs
│ │ │ │ ├── ForumGuildChannelTypeReader.cs
│ │ │ │ ├── MediaForumGuildChannelTypeReader.cs
│ │ │ │ ├── TextGuildChannelTypeReader.cs
│ │ │ │ └── Threads
│ │ │ │ │ ├── AnnouncementGuildThreadTypeReader.cs
│ │ │ │ │ ├── GuildThreadTypeReader.cs
│ │ │ │ │ ├── PrivateGuildThreadTypeReader.cs
│ │ │ │ │ └── PublicGuildThreadTypeReader.cs
│ │ │ └── TextChannelTypeReader.cs
│ │ └── VoiceChannels
│ │ │ └── Guild
│ │ │ ├── IVoiceGuildChannelTypeReader.cs
│ │ │ ├── StageGuildChannelTypeReader.cs
│ │ │ └── VoiceGuildChannelTypeReader.cs
│ │ ├── CharTypeReader.cs
│ │ ├── CodeBlockTypeReader.cs
│ │ ├── DateOnlyTypeReader.cs
│ │ ├── DateTimeOffsetTypeReader.cs
│ │ ├── DateTimeTypeReader.cs
│ │ ├── DecimalTypeReader.cs
│ │ ├── DoubleTypeReader.cs
│ │ ├── EnumTypeReader.cs
│ │ ├── GuildUserTypeReader.cs
│ │ ├── HalfTypeReader.cs
│ │ ├── Int128TypeReader.cs
│ │ ├── Int16TypeReader.cs
│ │ ├── Int32TypeReader.cs
│ │ ├── Int64TypeReader.cs
│ │ ├── IntPtrTypeReader.cs
│ │ ├── ReadOnlyMemoryOfCharTypeReader.cs
│ │ ├── SByteTypeReader.cs
│ │ ├── SingleTypeReader.cs
│ │ ├── StringTypeReader.cs
│ │ ├── TimeOnlyTypeReader.cs
│ │ ├── TimeSpanTypeReader.cs
│ │ ├── TimestampTypeReader.cs
│ │ ├── UInt128TypeReader.cs
│ │ ├── UInt16TypeReader.cs
│ │ ├── UInt32TypeReader.cs
│ │ ├── UInt64TypeReader.cs
│ │ ├── UIntPtrTypeReader.cs
│ │ ├── UriTypeReader.cs
│ │ ├── UserIdTypeReader.cs
│ │ └── UserTypeReader.cs
├── ComponentInteractions
│ ├── BaseComponentInteractionModule.cs
│ ├── ComponentInteractionAttribute.cs
│ ├── ComponentInteractionContexts.cs
│ ├── ComponentInteractionInfo.cs
│ ├── ComponentInteractionModule.cs
│ ├── ComponentInteractionParameter.cs
│ ├── ComponentInteractionParameterAttribute.cs
│ ├── ComponentInteractionResultResolverProvider.cs
│ ├── ComponentInteractionService.cs
│ ├── ComponentInteractionServiceConfiguration.cs
│ ├── ComponentInteractionTypeReader.cs
│ ├── IComponentInteractionContext.cs
│ ├── IComponentInteractionService.cs
│ └── TypeReaders
│ │ ├── BigIntegerTypeReader.cs
│ │ ├── BooleanTypeReader.cs
│ │ ├── ByteTypeReader.cs
│ │ ├── CharTypeReader.cs
│ │ ├── CodeBlockTypeReader.cs
│ │ ├── DateOnlyTypeReader.cs
│ │ ├── DateTimeOffsetTypeReader.cs
│ │ ├── DateTimeTypeReader.cs
│ │ ├── DecimalTypeReader.cs
│ │ ├── DoubleTypeReader.cs
│ │ ├── EnumTypeReader.cs
│ │ ├── GuildUserTypeReader.cs
│ │ ├── HalfTypeReader.cs
│ │ ├── Int128TypeReader.cs
│ │ ├── Int16TypeReader.cs
│ │ ├── Int32TypeReader.cs
│ │ ├── Int64TypeReader.cs
│ │ ├── IntPtrTypeReader.cs
│ │ ├── ReadOnlyMemoryOfCharTypeReader.cs
│ │ ├── SByteTypeReader.cs
│ │ ├── SingleTypeReader.cs
│ │ ├── StringTypeReader.cs
│ │ ├── TimeOnlyTypeReader.cs
│ │ ├── TimeSpanTypeReader.cs
│ │ ├── TimestampTypeReader.cs
│ │ ├── UInt128TypeReader.cs
│ │ ├── UInt16TypeReader.cs
│ │ ├── UInt32TypeReader.cs
│ │ ├── UInt64TypeReader.cs
│ │ ├── UIntPtrTypeReader.cs
│ │ ├── UriTypeReader.cs
│ │ └── UserIdTypeReader.cs
├── Contexts
│ ├── IChannelContext.cs
│ ├── IContext.cs
│ ├── IGatewayClientContext.cs
│ ├── IGuildContext.cs
│ ├── IInteractionContext.cs
│ ├── IRestClientContext.cs
│ ├── IRestMessageContext.cs
│ └── IUserContext.cs
├── EnumTypeReaders
│ ├── EnumHelper.cs
│ ├── EnumNameOrValueTypeReader.cs
│ ├── EnumNameTypeReader.cs
│ ├── EnumTypeReaderManager.cs
│ ├── EnumValueTypeReader.cs
│ ├── IEnumTypeReader.cs
│ ├── SlashCommandEnumTypeReader.cs
│ └── TryParseDelegate.cs
├── ExecutionExceptionResult.cs
├── Helpers
│ ├── InvocationHelper.cs
│ ├── MethodHelper.cs
│ ├── ParameterHelper.cs
│ ├── ParametersHelper.cs
│ ├── PreconditionsHelper.cs
│ ├── ServiceHelpers.cs
│ ├── ServiceProviderHelper.cs
│ ├── TimeSpanTypeReaderHelper.cs
│ └── TypeHelper.cs
├── IBaseModule.cs
├── IExecutionResult.cs
├── IResultResolverProvider.cs
├── IService.cs
├── IServiceResolverProvider.cs
├── InvalidDefinitionException.cs
├── Mentionable.cs
├── NetCord.Services.csproj
├── NotFoundResult.cs
├── ParameterCountMismatchResult.cs
├── ParameterCountMismatchType.cs
├── ParameterPreconditionAttributes
│ └── ParameterPreconditionAttribute.cs
├── PreconditionAttributes
│ ├── MissingPermissionsResult.cs
│ ├── PermissionsType.cs
│ ├── PreconditionAttribute.cs
│ ├── PreconditionResult.cs
│ ├── RequireBotPermissionsAttribute.cs
│ ├── RequireContextAttribute.cs
│ ├── RequireNsfwAttribute.cs
│ └── RequireUserPermissionsAttribute.cs
├── ReadOnlyMemoryCharComparer.cs
├── ServiceResolverProvider.cs
├── SuccessResult.cs
├── TypeReaderNotFoundException.cs
├── TypeReaderResult.cs
├── UserId.cs
└── Utils
│ └── CollectionsUtils.cs
├── NetCord.slnx
├── NetCord
├── Account.cs
├── ApiVersion.cs
├── Application.cs
├── ApplicationCommandInteraction.cs
├── ApplicationCommandInteractionData.cs
├── ApplicationCommandInteractionDataOption.cs
├── ApplicationCommandOptionType.cs
├── ApplicationCommandPermission.cs
├── ApplicationCommandPermissionType.cs
├── ApplicationCommandType.cs
├── ApplicationEmoji.cs
├── ApplicationFlags.cs
├── ApplicationInstallParams.cs
├── ApplicationIntegrationType.cs
├── ApplicationIntegrationTypeConfiguration.cs
├── Attachment.cs
├── AttachmentExpirationInfo.cs
├── AttachmentFlags.cs
├── AuditLogChange.cs
├── AuditLogEntryInfo.cs
├── AuditLogEvent.cs
├── AutoModerationAction.cs
├── AutoModerationActionMetadata.cs
├── AutoModerationActionMetadataProperties.cs
├── AutoModerationActionProperties.cs
├── AutoModerationActionType.cs
├── AutoModerationRule.cs
├── AutoModerationRuleEventType.cs
├── AutoModerationRuleKeywordPresetType.cs
├── AutoModerationRuleOptions.cs
├── AutoModerationRuleProperties.cs
├── AutoModerationRuleTriggerMetadata.cs
├── AutoModerationRuleTriggerMetadataProperties.cs
├── AutoModerationRuleTriggerType.cs
├── AutocompleteInteraction.cs
├── AutocompleteInteractionData.cs
├── AvatarDecorationData.cs
├── ButtonInteraction.cs
├── ButtonInteractionData.cs
├── ButtonStyle.cs
├── ChannelFlags.cs
├── ChannelMenuInteraction.cs
├── ChannelType.cs
├── Channels
│ ├── CategoryGuildChannel.cs
│ ├── Channel.cs
│ ├── IGuildChannel.cs
│ ├── IInteractionChannel.cs
│ ├── INamedChannel.cs
│ ├── IUnknownChannel.cs
│ ├── IUnknownGuildChannel.cs
│ ├── TextChannels
│ │ ├── DMChannel.cs
│ │ ├── GroupDMChannel.cs
│ │ ├── Guild
│ │ │ ├── AnnouncementGuildChannel.cs
│ │ │ ├── DirectoryGuildChannel.cs
│ │ │ ├── ForumGuildChannel.cs
│ │ │ ├── MediaForumGuildChannel.cs
│ │ │ ├── TextGuildChannel.cs
│ │ │ └── Threads
│ │ │ │ ├── AnnouncementGuildThread.cs
│ │ │ │ ├── ForumGuildThread.cs
│ │ │ │ ├── GuildThread.cs
│ │ │ │ ├── GuildThreadMetadata.cs
│ │ │ │ ├── IUnknownGuildThread.cs
│ │ │ │ ├── PrivateGuildThread.cs
│ │ │ │ ├── PublicGuildThread.cs
│ │ │ │ └── UnknownGuildThread.cs
│ │ ├── IUnknownDMChannel.cs
│ │ ├── IUnknownTextChannel.cs
│ │ ├── TextChannel.cs
│ │ ├── UnknownDMChannel.cs
│ │ └── UnknownTextChannel.cs
│ ├── UnknownChannel.cs
│ ├── UnknownGuildChannel.cs
│ └── VoiceChannels
│ │ └── Guild
│ │ ├── IVoiceGuildChannel.cs
│ │ ├── StageGuildChannel.cs
│ │ └── VoiceGuildChannel.cs
├── ClientEntity.cs
├── CodeBlock.cs
├── Color.cs
├── ComponentInteraction.cs
├── ComponentInteractionData.cs
├── Components
│ ├── ActionRow.cs
│ ├── Button.cs
│ ├── ChannelMenu.cs
│ ├── ComponentContainer.cs
│ ├── ComponentMedia.cs
│ ├── ComponentMediaLoadingState.cs
│ ├── ComponentSection.cs
│ ├── ComponentSectionThumbnail.cs
│ ├── ComponentSeparator.cs
│ ├── ComponentSeparatorSpacingSize.cs
│ ├── ComponentType.cs
│ ├── EntityMenu.cs
│ ├── FileDisplay.cs
│ ├── IButton.cs
│ ├── IComponent.cs
│ ├── IComponentSectionAccessory.cs
│ ├── ICustomizableButton.cs
│ ├── IUnknownComponent.cs
│ ├── LinkButton.cs
│ ├── MediaGallery.cs
│ ├── MentionableMenu.cs
│ ├── MentionableMenuDefaultValue.cs
│ ├── MentionableMenuDefaultValueType.cs
│ ├── Menu.cs
│ ├── PremiumButton.cs
│ ├── RoleMenu.cs
│ ├── StringMenu.cs
│ ├── StringMenuSelectOption.cs
│ ├── TextDisplay.cs
│ ├── TextInput.cs
│ └── UserMenu.cs
├── ContentFilter.cs
├── CurrentApplication.cs
├── CurrentUser.cs
├── CustomEmoji.cs
├── DefaultMessageNotificationLevel.cs
├── Discord.cs
├── Embed.cs
├── EmbedAuthor.cs
├── EmbedField.cs
├── EmbedFooter.cs
├── EmbedImage.cs
├── EmbedProvider.cs
├── EmbedThumbnail.cs
├── EmbedType.cs
├── EmbedVideo.cs
├── Emoji.cs
├── EmojiProperties.cs
├── EmojiReference.cs
├── Entitlement.cs
├── EntitlementType.cs
├── Entity.cs
├── EntityMenuInteraction.cs
├── EntityMenuInteractionData.cs
├── EntityNotFoundException.cs
├── Format.cs
├── ForumGuildChannelDefaultReaction.cs
├── ForumLayoutType.cs
├── ForumTag.cs
├── Gateway
│ ├── AddedThreadUser.cs
│ ├── AuditLogEntry.cs
│ ├── CancellationTokenProvider.cs
│ ├── Compression
│ │ ├── IGatewayCompression.cs
│ │ ├── UncompressedGatewayCompression.cs
│ │ ├── ZLibGatewayCompression.cs
│ │ ├── Zstandard.cs
│ │ ├── ZstandardException.cs
│ │ └── ZstandardGatewayCompression.cs
│ ├── ConnectionPropertiesProperties.cs
│ ├── EventArgs
│ │ ├── AutoModerationActionExecutionEventArgs.cs
│ │ ├── ChannelPinsUpdateEventArgs.cs
│ │ ├── DisconnectEventArgs.cs
│ │ ├── GuildBanEventArgs.cs
│ │ ├── GuildCreateEventArgs.cs
│ │ ├── GuildDeleteEventArgs.cs
│ │ ├── GuildEmojisUpdateEventArgs.cs
│ │ ├── GuildIntegrationDeleteEventArgs.cs
│ │ ├── GuildIntegrationEventArgs.cs
│ │ ├── GuildIntegrationsUpdateEventArgs.cs
│ │ ├── GuildJoinRequestDeleteEventArgs.cs
│ │ ├── GuildJoinRequestUpdateEventArgs.cs
│ │ ├── GuildScheduledEventUserEventArgs.cs
│ │ ├── GuildStickersUpdateEventArgs.cs
│ │ ├── GuildThreadCreateEventArgs.cs
│ │ ├── GuildThreadDeleteEventArgs.cs
│ │ ├── GuildThreadListSyncEventArgs.cs
│ │ ├── GuildThreadUserUpdateEventArgs.cs
│ │ ├── GuildThreadUsersUpdateEventArgs.cs
│ │ ├── GuildUserChunkEventArgs.cs
│ │ ├── GuildUserRemoveEventArgs.cs
│ │ ├── InviteDeleteEventArgs.cs
│ │ ├── MessageDeleteBulkEventArgs.cs
│ │ ├── MessageDeleteEventArgs.cs
│ │ ├── MessagePollVoteEventArgs.cs
│ │ ├── MessageReactionAddEventArgs.cs
│ │ ├── MessageReactionRemoveAllEventArgs.cs
│ │ ├── MessageReactionRemoveEmojiEventArgs.cs
│ │ ├── MessageReactionRemoveEventArgs.cs
│ │ ├── ReadyEventArgs.cs
│ │ ├── RoleDeleteEventArgs.cs
│ │ ├── TypingStartEventArgs.cs
│ │ ├── UnknownEventEventArgs.cs
│ │ ├── VoiceChannelEffectSendEventArgs.cs
│ │ ├── VoiceServerUpdateEventArgs.cs
│ │ └── WebhooksUpdateEventArgs.cs
│ ├── GatewayClient.cs
│ ├── GatewayClientCache.cs
│ ├── GatewayClientConfiguration.cs
│ ├── GatewayClientConfigurationFactory.cs
│ ├── GatewayIdentifyProperties.cs
│ ├── GatewayIntents.cs
│ ├── GatewayOpcode.cs
│ ├── GatewayPayloadProperties.cs
│ ├── GatewayRateLimiterProvider.cs
│ ├── GatewayResumeProperties.cs
│ ├── Guild.cs
│ ├── GuildJoinRequest.cs
│ ├── GuildJoinRequestFormResponse.cs
│ ├── GuildJoinRequestFormResponseFieldType.cs
│ ├── GuildJoinRequestStatus.cs
│ ├── GuildUsersRequestProperties.cs
│ ├── IGatewayClientCache.cs
│ ├── IRateLimiter.cs
│ ├── IRateLimiterProvider.cs
│ ├── IRestClientOwnerConfiguration.cs
│ ├── IWebSocketClientConfiguration.cs
│ ├── Invite.cs
│ ├── JsonModels
│ │ ├── EventArgs
│ │ │ ├── JsonAutoModerationActionExecutionEventArgs.cs
│ │ │ ├── JsonChannelPinsUpdateEventArgs.cs
│ │ │ ├── JsonGuildBanEventArgs.cs
│ │ │ ├── JsonGuildEmojisUpdateEventArgs.cs
│ │ │ ├── JsonGuildIntegrationDeleteEventArgs.cs
│ │ │ ├── JsonGuildIntegrationsUpdateEventArgs.cs
│ │ │ ├── JsonGuildJoinRequestDeleteEventArgs.cs
│ │ │ ├── JsonGuildJoinRequestUpdateEventArgs.cs
│ │ │ ├── JsonGuildScheduledEventUserEventArgs.cs
│ │ │ ├── JsonGuildStickersUpdateEventArgs.cs
│ │ │ ├── JsonGuildThreadListSyncEventArgs.cs
│ │ │ ├── JsonGuildThreadUsersUpdateEventArgs.cs
│ │ │ ├── JsonGuildUserChunkEventArgs.cs
│ │ │ ├── JsonGuildUserRemoveEventArgs.cs
│ │ │ ├── JsonInviteDeleteEventArgs.cs
│ │ │ ├── JsonMessageDeleteBulkEventArgs.cs
│ │ │ ├── JsonMessageDeleteEventArgs.cs
│ │ │ ├── JsonMessagePollVoteEventArgs.cs
│ │ │ ├── JsonMessageReactionAddEventArgs.cs
│ │ │ ├── JsonMessageReactionRemoveAllEventArgs.cs
│ │ │ ├── JsonMessageReactionRemoveEmojiEventArgs.cs
│ │ │ ├── JsonMessageReactionRemoveEventArgs.cs
│ │ │ ├── JsonReadyEventArgs.cs
│ │ │ ├── JsonRoleDeleteEventArgs.cs
│ │ │ ├── JsonRoleEventArgs.cs
│ │ │ ├── JsonTypingStartEventArgs.cs
│ │ │ ├── JsonVoiceChannelEffectSendEventArgs.cs
│ │ │ ├── JsonVoiceServerUpdateEventArgs.cs
│ │ │ └── JsonWebhooksUpdateEventArgs.cs
│ │ ├── JsonGatewayClientCache.cs
│ │ ├── JsonGatewayPayload.cs
│ │ ├── JsonGuildJoinRequest.cs
│ │ ├── JsonGuildJoinRequestFormResponse.cs
│ │ ├── JsonHello.cs
│ │ ├── JsonInvite.cs
│ │ ├── JsonParty.cs
│ │ ├── JsonPresence.cs
│ │ ├── JsonUserActivity.cs
│ │ ├── JsonUserActivityAssets.cs
│ │ ├── JsonUserActivitySecrets.cs
│ │ ├── JsonUserActivityTimestamps.cs
│ │ └── JsonVoiceState.cs
│ ├── LatencyTimers
│ │ ├── ILatencyTimer.cs
│ │ └── LatencyTimer.cs
│ ├── Message.cs
│ ├── NullRateLimiterProvider.cs
│ ├── Party.cs
│ ├── PartyProperties.cs
│ ├── PartySizeProperties.cs
│ ├── Platform.cs
│ ├── Presence.cs
│ ├── PresenceProperties.cs
│ ├── RateLimitAcquisitionResult.cs
│ ├── ReconnectStrategies
│ │ ├── IReconnectStrategy.cs
│ │ └── ReconnectStrategy.cs
│ ├── RentedArrayBufferWriter.cs
│ ├── Shard.cs
│ ├── ShardedGatewayClient.cs
│ ├── ShardedGatewayClientConfiguration.cs
│ ├── ShardedGatewayClientConfigurationFactory.cs
│ ├── ShardedGatewayClientEventManager.cs
│ ├── UserActivity.cs
│ ├── UserActivityAssets.cs
│ ├── UserActivityAssetsProperties.cs
│ ├── UserActivityButton.cs
│ ├── UserActivityButtonProperties.cs
│ ├── UserActivityFlags.cs
│ ├── UserActivityProperties.cs
│ ├── UserActivitySecrets.cs
│ ├── UserActivitySecretsProperties.cs
│ ├── UserActivityTimestamps.cs
│ ├── UserActivityTimestampsProperties.cs
│ ├── UserActivityType.cs
│ ├── Voice
│ │ ├── Channels.cs
│ │ ├── Encryption
│ │ │ ├── Aes256GcmEncryption.cs
│ │ │ ├── Aes256GcmRtpSizeEncryption.cs
│ │ │ ├── IVoiceEncryption.cs
│ │ │ ├── Libsodium.cs
│ │ │ ├── LibsodiumException.cs
│ │ │ ├── XChaCha20Poly1305RtpSizeEncryption.cs
│ │ │ ├── XSalsa20Poly1305Encryption.cs
│ │ │ ├── XSalsa20Poly1305LiteEncryption.cs
│ │ │ ├── XSalsa20Poly1305LiteRtpSizeEncryption.cs
│ │ │ └── XSalsa20Poly1305SuffixEncryption.cs
│ │ ├── EventArgs
│ │ │ ├── SpeakingEventArgs.cs
│ │ │ ├── UserConnectEventArgs.cs
│ │ │ ├── UserDisconnectEventArgs.cs
│ │ │ ├── VoicePacketHandlingResult.cs
│ │ │ └── VoiceReceiveEventArgs.cs
│ │ ├── GatewayClientExtensions.cs
│ │ ├── IVoiceClientCache.cs
│ │ ├── IVoiceEncryptionProvider.cs
│ │ ├── IVoiceReceiveHandler.cs
│ │ ├── JsonModels
│ │ │ ├── JsonClientConnect.cs
│ │ │ ├── JsonClientDisconnect.cs
│ │ │ ├── JsonReady.cs
│ │ │ ├── JsonSessionDescription.cs
│ │ │ ├── JsonSpeaking.cs
│ │ │ ├── JsonVoiceClientCache.cs
│ │ │ └── JsonVoicePayload.cs
│ │ ├── NullVoiceReceiveHandler.cs
│ │ ├── Opus.cs
│ │ ├── OpusApplication.cs
│ │ ├── OpusDecoder.cs
│ │ ├── OpusDecoderHandle.cs
│ │ ├── OpusEncoder.cs
│ │ ├── OpusEncoderHandle.cs
│ │ ├── OpusError.cs
│ │ ├── OpusException.cs
│ │ ├── PcmFormat.cs
│ │ ├── ProtocolDataProperties.cs
│ │ ├── ProtocolProperties.cs
│ │ ├── ResumeProperties.cs
│ │ ├── RtpPacket.cs
│ │ ├── RtpPacketStorage.cs
│ │ ├── RtpPacketWriter.cs
│ │ ├── SpeakingFlags.cs
│ │ ├── SpeakingProperties.cs
│ │ ├── Streams
│ │ │ ├── OpusDecodeStream.cs
│ │ │ ├── OpusEncodeStream.cs
│ │ │ ├── RewritingStream.cs
│ │ │ ├── SpeedNormalizingStream.cs
│ │ │ └── VoiceOutStream.cs
│ │ ├── UdpSockets
│ │ │ ├── IUdpConnection.cs
│ │ │ ├── IUdpConnectionProvider.cs
│ │ │ ├── UdpConnection.cs
│ │ │ └── UdpConnectionProvider.cs
│ │ ├── VoiceApiVersion.cs
│ │ ├── VoiceClient.cs
│ │ ├── VoiceClientCache.cs
│ │ ├── VoiceClientConfiguration.cs
│ │ ├── VoiceEncryptionProvider.cs
│ │ ├── VoiceHeartbeatProperties.cs
│ │ ├── VoiceIdentifyProperties.cs
│ │ ├── VoiceOpcode.cs
│ │ ├── VoicePayloadProperties.cs
│ │ └── VoiceReceiveHandler.cs
│ ├── VoiceState.cs
│ ├── VoiceStateProperties.cs
│ ├── WebSocketClient.cs
│ ├── WebSocketPayloadProperties.cs
│ ├── WebSocketRateLimitedException.cs
│ ├── WebSocketRetryHandling.cs
│ └── WebSockets
│ │ ├── IWebSocketConnection.cs
│ │ ├── IWebSocketConnectionProvider.cs
│ │ ├── WebSocketConnection.cs
│ │ ├── WebSocketConnectionProvider.cs
│ │ ├── WebSocketConnectionReceiveResult.cs
│ │ ├── WebSocketMessageFlags.cs
│ │ └── WebSocketMessageType.cs
├── GuildChannelMention.cs
├── GuildEmoji.cs
├── GuildFromGuildTemplateProperties.cs
├── GuildInteractionUser.cs
├── GuildNavigation.cs
├── GuildNavigationType.cs
├── GuildScheduledEvent.cs
├── GuildScheduledEventEntityType.cs
├── GuildScheduledEventPrivacyLevel.cs
├── GuildScheduledEventRecurrenceRule.cs
├── GuildScheduledEventRecurrenceRuleFrequency.cs
├── GuildScheduledEventRecurrenceRuleMonth.cs
├── GuildScheduledEventRecurrenceRuleNWeekday.cs
├── GuildScheduledEventRecurrenceRuleWeekday.cs
├── GuildScheduledEventStatus.cs
├── GuildSticker.cs
├── GuildUser.cs
├── GuildUserFlags.cs
├── GuildWelcomeScreen.cs
├── GuildWelcomeScreenChannel.cs
├── GuildWidgetStyle.cs
├── IEntity.cs
├── IHttpSerializable.cs
├── IInteraction.cs
├── IInvite.cs
├── IJsonModel.cs
├── IToken.cs
├── ImageAttachment.cs
├── ImageFormat.cs
├── ImageUrl.cs
├── Integration.cs
├── IntegrationApplication.cs
├── IntegrationExpireBehavior.cs
├── IntegrationType.cs
├── Interaction.cs
├── InteractionContextType.cs
├── InteractionData.cs
├── InteractionGuildReference.cs
├── InteractionResolvedData.cs
├── InteractionType.cs
├── InviteTargetType.cs
├── InviteType.cs
├── JsonConverters
│ ├── AnyValueToStringConverter.cs
│ ├── ArrayToImmutableDictionaryConverters.cs
│ ├── AttachmentPropertiesIEnumerableConverter.cs
│ ├── MenuPropertiesDefaultValuesConverter.cs
│ ├── NullConverter.cs
│ ├── NullableDateTimeOffsetConverter.cs
│ ├── NullableInt64Converter.cs
│ ├── PermissionsConverter.cs
│ ├── SafeStringEnumConverter.cs
│ ├── UInt64Converter.cs
│ └── UnixDateTimeOffsetConverters.cs
├── JsonModels
│ ├── JsonAccount.cs
│ ├── JsonApplication.cs
│ ├── JsonApplicationCommandGuildPermission.cs
│ ├── JsonApplicationCommandInteractionDataOption.cs
│ ├── JsonApplicationInstallParams.cs
│ ├── JsonApplicationIntegrationTypeConfiguration.cs
│ ├── JsonAttachment.cs
│ ├── JsonAuditLogChange.cs
│ ├── JsonAuditLogEntry.cs
│ ├── JsonAuditLogEntryInfo.cs
│ ├── JsonAutoModerationAction.cs
│ ├── JsonAutoModerationActionMetadata.cs
│ ├── JsonAutoModerationRule.cs
│ ├── JsonAutoModerationRuleTriggerMetadata.cs
│ ├── JsonAvatarDecorationData.cs
│ ├── JsonChannel.cs
│ ├── JsonComponent.cs
│ ├── JsonComponentMedia.cs
│ ├── JsonEmbed.cs
│ ├── JsonEmbedAuthor.cs
│ ├── JsonEmbedField.cs
│ ├── JsonEmbedFooter.cs
│ ├── JsonEmbedImage.cs
│ ├── JsonEmbedProvider.cs
│ ├── JsonEmbedThumbnail.cs
│ ├── JsonEmbedVideo.cs
│ ├── JsonEmoji.cs
│ ├── JsonEntitlement.cs
│ ├── JsonEntity.cs
│ ├── JsonForumGuildChannelDefaultReaction.cs
│ ├── JsonForumTag.cs
│ ├── JsonGuild.cs
│ ├── JsonGuildChannelMention.cs
│ ├── JsonGuildScheduledEvent.cs
│ ├── JsonGuildScheduledEventMetadata.cs
│ ├── JsonGuildScheduledEventRecurrenceRule.cs
│ ├── JsonGuildScheduledEventRecurrenceRuleNWeekday.cs
│ ├── JsonGuildThreadMetadata.cs
│ ├── JsonGuildUser.cs
│ ├── JsonIntegration.cs
│ ├── JsonIntegrationApplication.cs
│ ├── JsonInteraction.cs
│ ├── JsonInteractionData.cs
│ ├── JsonInteractionGuildReference.cs
│ ├── JsonInteractionResolvedData.cs
│ ├── JsonMenuSelectOption.cs
│ ├── JsonMessage.cs
│ ├── JsonMessageActivity.cs
│ ├── JsonMessageCall.cs
│ ├── JsonMessageInteraction.cs
│ ├── JsonMessageInteractionMetadata.cs
│ ├── JsonMessagePoll.cs
│ ├── JsonMessagePollAnswer.cs
│ ├── JsonMessagePollAnswerCount.cs
│ ├── JsonMessagePollMedia.cs
│ ├── JsonMessagePollResults.cs
│ ├── JsonMessageReaction.cs
│ ├── JsonMessageReactionCountDetails.cs
│ ├── JsonMessageReference.cs
│ ├── JsonMessageSnapshot.cs
│ ├── JsonMessageSnapshotMessage.cs
│ ├── JsonMessageSticker.cs
│ ├── JsonPermissionOverwrite.cs
│ ├── JsonRole.cs
│ ├── JsonRoleSubscriptionData.cs
│ ├── JsonRoleTags.cs
│ ├── JsonSelectMenuDefaultValue.cs
│ ├── JsonSelectMenuDefaultValueType.cs
│ ├── JsonStageInstance.cs
│ ├── JsonSticker.cs
│ ├── JsonSubscription.cs
│ ├── JsonTeam.cs
│ ├── JsonTeamUser.cs
│ ├── JsonThreadCurrentUser.cs
│ ├── JsonThreadUser.cs
│ ├── JsonUser.cs
│ ├── JsonWebhook.cs
│ ├── JsonWelcomeScreen.cs
│ └── JsonWelcomeScreenChannel.cs
├── Logging
│ ├── ConsoleLogger.cs
│ ├── GatewayWebSocketLogger.cs
│ ├── IGatewayLogger.cs
│ ├── IRestLogger.cs
│ ├── IVoiceLogger.cs
│ ├── IWebSocketLogger.cs
│ ├── LogLevel.cs
│ ├── LoggerHelpers.cs
│ ├── NullLogger.cs
│ ├── TextWriterLogger.cs
│ └── VoiceWebSocketLogger.cs
├── MembershipState.cs
├── Mention.cs
├── MentionableMenuInteraction.cs
├── MessageActivity.cs
├── MessageActivityType.cs
├── MessageCommandInteraction.cs
├── MessageCommandInteractionData.cs
├── MessageComponentInteraction.cs
├── MessageComponentInteractionData.cs
├── MessageFlags.cs
├── MessageInteraction.cs
├── MessageInteractionMetadata.cs
├── MessagePoll.cs
├── MessagePollAnswer.cs
├── MessagePollAnswerCount.cs
├── MessagePollAnswerProperties.cs
├── MessagePollLayoutType.cs
├── MessagePollMedia.cs
├── MessagePollMediaProperties.cs
├── MessagePollProperties.cs
├── MessagePollResults.cs
├── MessageReaction.cs
├── MessageReactionCountDetails.cs
├── MessageReactionEmoji.cs
├── MessageReference.cs
├── MessageReferenceType.cs
├── MessageSnapshot.cs
├── MessageSnapshotMessage.cs
├── MessageSticker.cs
├── MessageType.cs
├── MfaLevel.cs
├── ModalInteraction.cs
├── ModalInteractionData.cs
├── NetCord.csproj
├── NsfwLevel.cs
├── PartialGuildUser.cs
├── PartialGuildUserExtensions.cs
├── PermissionOverwrite.cs
├── PermissionOverwriteType.cs
├── Permissions.cs
├── PingInteraction.cs
├── PremiumType.cs
├── ReactionType.cs
├── Rest
│ ├── AllowedMentionsProperties.cs
│ ├── ApplicationCommand.cs
│ ├── ApplicationCommandGuildPermissionProperties.cs
│ ├── ApplicationCommandGuildPermissions.cs
│ ├── ApplicationCommandGuildPermissionsProperties.cs
│ ├── ApplicationCommandOption.cs
│ ├── ApplicationCommandOptionChoice.cs
│ ├── ApplicationCommandOptionChoiceProperties.cs
│ ├── ApplicationCommandOptionChoiceValueType.cs
│ ├── ApplicationCommandOptionProperties.cs
│ ├── ApplicationCommandOptions.cs
│ ├── ApplicationCommandProperties.cs
│ ├── ApplicationEmojiOptions.cs
│ ├── ApplicationEmojiProperties.cs
│ ├── ApplicationInstallParamsProperties.cs
│ ├── ApplicationIntegrationTypeConfigurationProperties.cs
│ ├── ApplicationRoleConnection.cs
│ ├── ApplicationRoleConnectionMetadata.cs
│ ├── ApplicationRoleConnectionMetadataProperties.cs
│ ├── ApplicationRoleConnectionMetadataType.cs
│ ├── ApplicationRoleConnectionProperties.cs
│ ├── AttachmentProperties.cs
│ ├── AuthorizationInformation.cs
│ ├── BulkDeleteMessagesProperties.cs
│ ├── ChannelPositionProperties.cs
│ ├── ComponentProperties
│ │ ├── ActionRowProperties.cs
│ │ ├── ButtonProperties.cs
│ │ ├── ChannelMenuProperties.cs
│ │ ├── ComponentContainerProperties.cs
│ │ ├── ComponentMediaProperties.cs
│ │ ├── ComponentSectionProperties.cs
│ │ ├── ComponentSectionThumbnailProperties.cs
│ │ ├── ComponentSeparatorProperties.cs
│ │ ├── EntityMenuProperties.cs
│ │ ├── FileDisplayProperties.cs
│ │ ├── IButtonProperties.cs
│ │ ├── IComponentProperties.cs
│ │ ├── IComponentSectionAccessoryProperties.cs
│ │ ├── ICustomizableButtonProperties.cs
│ │ ├── LinkButtonProperties.cs
│ │ ├── MediaGalleryProperties.cs
│ │ ├── MentionableMenuProperties.cs
│ │ ├── MenuProperties.cs
│ │ ├── PremiumButtonProperties.cs
│ │ ├── RoleMenuProperties.cs
│ │ ├── StringMenuProperties.cs
│ │ ├── TextDisplayProperties.cs
│ │ ├── TextInputProperties.cs
│ │ └── UserMenuProperties.cs
│ ├── Connection.cs
│ ├── ConnectionType.cs
│ ├── ConnectionVisibility.cs
│ ├── ContentPaginationAsyncEnumerable.cs
│ ├── CurrentApplicationOptions.cs
│ ├── CurrentGuildUserOptions.cs
│ ├── CurrentUserOptions.cs
│ ├── CurrentUserVoiceStateOptions.cs
│ ├── DMChannelProperties.cs
│ ├── EmbedAuthorProperties.cs
│ ├── EmbedFieldProperties.cs
│ ├── EmbedFooterProperties.cs
│ ├── EmbedImageProperties.cs
│ ├── EmbedProperties.cs
│ ├── EmbedThumbnailProperties.cs
│ ├── EntitlementsPaginationProperties.cs
│ ├── FollowAnnouncementGuildChannelProperties.cs
│ ├── FollowedChannel.cs
│ ├── ForumGuildChannelDefaultReactionProperties.cs
│ ├── ForumGuildThreadMessageProperties.cs
│ ├── ForumGuildThreadProperties.cs
│ ├── ForumTagProperties.cs
│ ├── GatewayBot.cs
│ ├── GatewaySessionStartLimit.cs
│ ├── GoogleCloudPlatformStorageBucket.cs
│ ├── GoogleCloudPlatformStorageBucketProperties.cs
│ ├── GoogleCloudPlatformStorageBucketsProperties.cs
│ ├── GroupDMChannelOptions.cs
│ ├── GroupDMChannelProperties.cs
│ ├── GroupDMUserAddProperties.cs
│ ├── GuildApplicationCommand.cs
│ ├── GuildApplicationCommandPermissionsProperties.cs
│ ├── GuildAuditLogPaginationProperties.cs
│ ├── GuildBan.cs
│ ├── GuildBanProperties.cs
│ ├── GuildBulkBan.cs
│ ├── GuildBulkBanProperties.cs
│ ├── GuildChannelOptions.cs
│ ├── GuildChannelProperties.cs
│ ├── GuildEmojiOptions.cs
│ ├── GuildEmojiProperties.cs
│ ├── GuildMfaLevelProperties.cs
│ ├── GuildOnboarding.cs
│ ├── GuildOnboardingMode.cs
│ ├── GuildOnboardingOptions.cs
│ ├── GuildOnboardingPrompt.cs
│ ├── GuildOnboardingPromptOption.cs
│ ├── GuildOnboardingPromptOptionProperties.cs
│ ├── GuildOnboardingPromptProperties.cs
│ ├── GuildOnboardingPromptType.cs
│ ├── GuildOptions.cs
│ ├── GuildPreview.cs
│ ├── GuildProperties.cs
│ ├── GuildPruneProperties.cs
│ ├── GuildScheduledEventMetadataProperties.cs
│ ├── GuildScheduledEventOptions.cs
│ ├── GuildScheduledEventProperties.cs
│ ├── GuildScheduledEventUser.cs
│ ├── GuildStickerOptions.cs
│ ├── GuildStickerProperties.cs
│ ├── GuildTemplate.cs
│ ├── GuildTemplateOptions.cs
│ ├── GuildTemplatePreview.cs
│ ├── GuildTemplateProperties.cs
│ ├── GuildThreadFromMessageProperties.cs
│ ├── GuildThreadGenerator.cs
│ ├── GuildThreadProperties.cs
│ ├── GuildThreadUser.cs
│ ├── GuildUserInfo.cs
│ ├── GuildUserJoinSourceType.cs
│ ├── GuildUserOptions.cs
│ ├── GuildUserProperties.cs
│ ├── GuildUsersSearchPaginationProperties.cs
│ ├── GuildUsersSearchTimestamp.cs
│ ├── GuildVanityInvite.cs
│ ├── GuildWelcomeScreenChannelProperties.cs
│ ├── GuildWelcomeScreenOptions.cs
│ ├── GuildWidget.cs
│ ├── GuildWidgetChannel.cs
│ ├── GuildWidgetSettings.cs
│ ├── GuildWidgetSettingsOptions.cs
│ ├── GuildsPaginationProperties.cs
│ ├── HttpInteractionFactory.cs
│ ├── HttpInteractionValidator.cs
│ ├── IGuildUsersSearchQuery.cs
│ ├── IMessageProperties.cs
│ ├── IPaginationProperties.cs
│ ├── IRestRequestHandler.cs
│ ├── ImageProperties.cs
│ ├── IncomingWebhook.cs
│ ├── InteractionCallback.cs
│ ├── InteractionCallbackChoicesDataProperties.cs
│ ├── InteractionCallbackType.cs
│ ├── InteractionMessageProperties.cs
│ ├── InviteProperties.cs
│ ├── JsonContent.cs
│ ├── JsonModels
│ │ ├── JsonApplicationCommand.cs
│ │ ├── JsonApplicationCommandOption.cs
│ │ ├── JsonApplicationCommandOptionChoice.cs
│ │ ├── JsonApplicationEmojisResult.cs
│ │ ├── JsonApplicationRoleConnection.cs
│ │ ├── JsonApplicationRoleConnectionMetadata.cs
│ │ ├── JsonAuditLog.cs
│ │ ├── JsonAuthorizationInformation.cs
│ │ ├── JsonConnection.cs
│ │ ├── JsonCreateGoogleCloudPlatformStorageBucketResult.cs
│ │ ├── JsonFollowedChannel.cs
│ │ ├── JsonGateway.cs
│ │ ├── JsonGatewayBot.cs
│ │ ├── JsonGatewaySessionStartLimit.cs
│ │ ├── JsonGoogleCloudPlatformStorageBucket.cs
│ │ ├── JsonGuildApplicationCommandPermissions.cs
│ │ ├── JsonGuildBan.cs
│ │ ├── JsonGuildBulkBan.cs
│ │ ├── JsonGuildMfaLevel.cs
│ │ ├── JsonGuildOnboarding.cs
│ │ ├── JsonGuildOnboardingPrompt.cs
│ │ ├── JsonGuildOnboardingPromptOption.cs
│ │ ├── JsonGuildPruneCountResult.cs
│ │ ├── JsonGuildPruneResult.cs
│ │ ├── JsonGuildScheduledEventUser.cs
│ │ ├── JsonGuildTemplate.cs
│ │ ├── JsonGuildUserInfo.cs
│ │ ├── JsonGuildUserSearchResult.cs
│ │ ├── JsonGuildVanityInvite.cs
│ │ ├── JsonGuildWidget.cs
│ │ ├── JsonGuildWidgetChannel.cs
│ │ ├── JsonGuildWidgetSettings.cs
│ │ ├── JsonMessagePollAnswerVotersResult.cs
│ │ ├── JsonRestGuildThreadPartialResult.cs
│ │ ├── JsonRestGuildThreadResult.cs
│ │ ├── JsonRestInvite.cs
│ │ ├── JsonSku.cs
│ │ ├── JsonStickerPack.cs
│ │ ├── JsonStickerPacks.cs
│ │ └── JsonVoiceRegion.cs
│ ├── MentionableValueProperties.cs
│ ├── MentionableValueType.cs
│ ├── MenuSelectOptionProperties.cs
│ ├── MessageCall.cs
│ ├── MessageCommandProperties.cs
│ ├── MessageOptions.cs
│ ├── MessageProperties.cs
│ ├── MessageReactionsPaginationProperties.cs
│ ├── MessageReferenceProperties.cs
│ ├── ModalProperties.cs
│ ├── NonceProperties.cs
│ ├── OptimizedQueryPaginationAsyncEnumerable.cs
│ ├── OptionalGuildUsersPaginationProperties.cs
│ ├── PaginationContentBuilder.cs
│ ├── PaginationDirection.cs
│ ├── PaginationProperties.cs
│ ├── PaginationQueryBuilder.cs
│ ├── PermissionOverwriteProperties.cs
│ ├── QueryPaginationAsyncEnumerable.cs
│ ├── RateLimitScope.cs
│ ├── RateLimits
│ │ ├── BucketInfo.cs
│ │ ├── GlobalRateLimiter.cs
│ │ ├── IGlobalRateLimiter.cs
│ │ ├── IRateLimitManager.cs
│ │ ├── IRateLimiter.cs
│ │ ├── IRouteRateLimiter.cs
│ │ ├── ITrackingRouteRateLimiter.cs
│ │ ├── NoRateLimitRouteRateLimiter.cs
│ │ ├── RateLimitAcquisitionResult.cs
│ │ ├── RateLimitInfo.cs
│ │ ├── RateLimitManager.cs
│ │ ├── RateLimitManagerConfiguration.cs
│ │ ├── Route.cs
│ │ ├── RouteRateLimiter.cs
│ │ └── UnknownRouteRateLimiter.cs
│ ├── ReactionEmojiProperties.cs
│ ├── ReplyMessageProperties.cs
│ ├── RestAuditLogEntry.cs
│ ├── RestAuditLogEntryData.cs
│ ├── RestClient.Application.cs
│ ├── RestClient.ApplicationRoleConnectionMetadata.cs
│ ├── RestClient.AuditLog.cs
│ ├── RestClient.AutoModeration.cs
│ ├── RestClient.Channel.cs
│ ├── RestClient.Emoji.cs
│ ├── RestClient.Gateway.cs
│ ├── RestClient.Guild.cs
│ ├── RestClient.GuildScheduledEvent.cs
│ ├── RestClient.GuildTemplate.cs
│ ├── RestClient.Interactions.ApplicationCommands.cs
│ ├── RestClient.Interactions.ReceivingAndResponding.cs
│ ├── RestClient.Invite.cs
│ ├── RestClient.Monetization.Entitlements.cs
│ ├── RestClient.Monetization.Skus.cs
│ ├── RestClient.OAuth2.cs
│ ├── RestClient.Poll.cs
│ ├── RestClient.StageInstance.cs
│ ├── RestClient.Sticker.cs
│ ├── RestClient.Subscription.cs
│ ├── RestClient.Undocumented.cs
│ ├── RestClient.User.cs
│ ├── RestClient.Voice.cs
│ ├── RestClient.Webhook.cs
│ ├── RestClient.cs
│ ├── RestClientConfiguration.cs
│ ├── RestError.cs
│ ├── RestException.cs
│ ├── RestGuild.cs
│ ├── RestGuildInvite.cs
│ ├── RestMessage.cs
│ ├── RestRateLimitHandling.cs
│ ├── RestRateLimitedException.cs
│ ├── RestRequestHandler.cs
│ ├── RestRequestProperties.cs
│ ├── RoleOptions.cs
│ ├── RolePositionProperties.cs
│ ├── RoleProperties.cs
│ ├── SafetySignalsGuildUsersSearchQuery.cs
│ ├── Sku.cs
│ ├── SkuFlags.cs
│ ├── SkuType.cs
│ ├── SlashCommandProperties.cs
│ ├── StageInstanceOptions.cs
│ ├── StageInstanceProperties.cs
│ ├── StickerPack.cs
│ ├── SubscriptionPaginationProperties.cs
│ ├── SystemChannelFlags.cs
│ ├── TestEntitlementOwnerType.cs
│ ├── TestEntitlementProperties.cs
│ ├── TextInputStyle.cs
│ ├── TopLevelResourceInfo.cs
│ ├── TypingReminder.cs
│ ├── UserCommandProperties.cs
│ ├── UserIdsGuildUsersSearchQuery.cs
│ ├── UsernamesGuildUsersSearchQuery.cs
│ ├── VoiceRegion.cs
│ ├── VoiceStateOptions.cs
│ ├── Webhook.cs
│ ├── WebhookClient.cs
│ ├── WebhookClientConfiguration.cs
│ ├── WebhookMessageProperties.cs
│ ├── WebhookOptions.cs
│ ├── WebhookProperties.cs
│ └── WebhookType.cs
├── Role.cs
├── RoleFlags.cs
├── RoleMenuInteraction.cs
├── RoleSubscriptionData.cs
├── Serialization.cs
├── SlashCommandInteraction.cs
├── SlashCommandInteractionData.cs
├── SlashCommandMention.cs
├── Snowflake.cs
├── SortOrderType.cs
├── StageInstance.cs
├── StageInstancePrivacyLevel.cs
├── StandardSticker.cs
├── Sticker.cs
├── StickerFormat.cs
├── StickerType.cs
├── StringMenuInteraction.cs
├── StringMenuInteractionData.cs
├── Subscription.cs
├── SubscriptionStatus.cs
├── Team.cs
├── TeamRole.cs
├── TeamUser.cs
├── ThreadArchiveDuration.cs
├── ThreadCurrentUser.cs
├── ThreadUser.cs
├── Timestamp.cs
├── TimestampStyle.cs
├── User.cs
├── UserCommandInteraction.cs
├── UserCommandInteractionData.cs
├── UserFlags.cs
├── UserMenuInteraction.cs
├── UserStatusType.cs
├── Utils
│ ├── CollectionUtils.cs
│ ├── SerializationUtils.cs
│ └── StringUtils.cs
├── VerificationLevel.cs
├── VideoQualityMode.cs
└── VoiceAttachment.cs
├── README.md
├── Resources
├── Logo
│ ├── pdn
│ │ ├── Big.pdn
│ │ ├── BigOutline.pdn
│ │ ├── Small.pdn
│ │ └── SmallSquare.pdn
│ ├── png
│ │ ├── Big.png
│ │ ├── BigOutline.png
│ │ ├── Small.png
│ │ └── SmallSquare.png
│ └── svg
│ │ ├── Big.svg
│ │ ├── BigOutline.svg
│ │ ├── Small.svg
│ │ └── SmallSquare.svg
└── NuGet
│ ├── ICON.png
│ └── README.md
├── SourceGenerators
├── Directory.Build.props
├── Directory.Build.targets
├── MethodsForPropertiesGenerator
│ ├── MethodsForPropertiesGenerator.cs
│ ├── MethodsForPropertiesGenerator.csproj
│ └── PropertyData.cs
├── RestClientMethodAliasesGenerator
│ ├── RestClientMethodAliasesGenerator.cs
│ └── RestClientMethodAliasesGenerator.csproj
├── ShardedGatewayClientEventsGenerator
│ ├── ShardedGatewayClientEventsGenerator.cs
│ └── ShardedGatewayClientEventsGenerator.csproj
├── Shared
│ ├── ParameterSymbolExtensions.cs
│ ├── Shared.csproj
│ ├── StringWriterExtensions.cs
│ └── TypeSymbolExtensions.cs
├── UserAgentHeaderGenerator
│ ├── UserAgentHeaderGenerator.cs
│ └── UserAgentHeaderGenerator.csproj
└── WebSocketClientEventsGenerator
│ ├── WebSocketClientEventsGenerator.cs
│ └── WebSocketClientEventsGenerator.csproj
├── Tests
├── ColorTest
│ ├── ColorTest.csproj
│ └── Test.cs
├── Directory.Build.props
├── Directory.Build.targets
├── MentionTest
│ ├── MentionTest.csproj
│ ├── Parse.cs
│ └── TryFormat.cs
├── NetCord.Test.Hosting.AspNetCore
│ ├── .editorconfig
│ ├── EchoAutocompleteProvider.cs
│ ├── InteractionHandler.cs
│ ├── NetCord.Test.Hosting.AspNetCore.csproj
│ ├── Program.cs
│ └── Properties
│ │ └── launchSettings.json
├── NetCord.Test.Hosting
│ ├── .editorconfig
│ ├── ApplicationCommandModule.cs
│ ├── ChannelCreateUpdateDeleteHandler.cs
│ ├── ConnectHandler.cs
│ ├── CustomApplicationCommandResultHandler.cs
│ ├── MessageReactionAddAndMessageDeleteHandler.cs
│ ├── NetCord.Test.Hosting.csproj
│ ├── Program.cs
│ └── StringAutocompleteProvider.cs
├── NetCord.Test.Sharded.Hosting
│ ├── .editorconfig
│ ├── NetCord.Test.Sharded.Hosting.csproj
│ └── Program.cs
├── NetCord.Test.Sharded
│ ├── .editorconfig
│ ├── ExampleModule.cs
│ ├── ExampleModule2.cs
│ ├── NetCord.Test.Sharded.csproj
│ ├── PermissionsTypeReader.cs
│ └── Program.cs
├── NetCord.Test
│ ├── .editorconfig
│ ├── AdministrativeInteractions.cs
│ ├── ApplicationCommands
│ │ ├── Commands.cs
│ │ ├── DDGAutocomplete.cs
│ │ ├── MessageCommands.cs
│ │ ├── ModalCommand.cs
│ │ ├── MustContainAttribute.cs
│ │ ├── PercentageTypeReader.cs
│ │ ├── PermissionsTypeReader.cs
│ │ ├── UserCommands.cs
│ │ └── VoiceCommands.cs
│ ├── ButtonInteractions.cs
│ ├── ChannelMenuInteractions.cs
│ ├── Commands
│ │ ├── Administrative
│ │ │ ├── BanCommands.cs
│ │ │ ├── CanManageAttribute.cs
│ │ │ ├── MuteCommands.cs
│ │ │ └── OtherCommands.cs
│ │ ├── EvalCommand.cs
│ │ ├── NormalCommands.cs
│ │ └── StrangeCommands.cs
│ ├── Localizations
│ │ └── localization.pl.pl.pl.json
│ ├── MentionableMenuInteractions.cs
│ ├── MenuInteractions.cs
│ ├── ModalInteractions.cs
│ ├── NetCord.Test.csproj
│ ├── NotEmptyAttribute.cs
│ ├── Program.cs
│ ├── ReverseStringTypeReader.cs
│ ├── RoleMenuInteractions.cs
│ ├── UserMenuInteractions.cs
│ └── opus.dll
├── SnowflakeTest
│ ├── SnowflakeTest.csproj
│ └── Test.cs
├── TimestampTest
│ ├── Test.cs
│ └── TimestampTest.csproj
├── TokenTest
│ ├── Test.cs
│ └── TokenTest.csproj
└── VoiceEncryptionTest
│ ├── Test.cs
│ └── VoiceEncryptionTest.csproj
└── global.json
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | github: KubaZ2
2 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/enhancement.yml:
--------------------------------------------------------------------------------
1 | name: Enhancement
2 | description: Report a missing function
3 | labels: ["enhancement"]
4 | body:
5 | - type: textarea
6 | id: description
7 | attributes:
8 | label: Description
9 | description: A detailed description with possible examples and links to Discord API documentation.
10 | validations:
11 | required: true
12 |
--------------------------------------------------------------------------------
/Directory.Build.targets:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | $(DefineConstants);$([System.String]::Copy('$(AssemblyName)').Replace('.', '_'))
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Documentation/.gitignore:
--------------------------------------------------------------------------------
1 | ###############
2 | # folder #
3 | ###############
4 | /**/DROP/
5 | /**/TEMP/
6 | /**/packages/
7 | /**/bin/
8 | /**/obj/
9 | _site
10 | templates
11 |
--------------------------------------------------------------------------------
/Documentation/Directory.Build.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net9.0
5 | enable
6 | preview
7 | enable
8 | MyBot
9 | MyBot
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Documentation/Directory.Build.targets:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Documentation/README.md:
--------------------------------------------------------------------------------
1 | # Building
2 |
3 | ## Installing dependencies
4 | ```bash
5 | npm install
6 | ```
7 |
8 | ## Building the documentation
9 | ```bash
10 | npm run build
11 | ```
12 |
13 | ## Building templates only
14 | ```bash
15 | npm run build-templates
16 | ```
17 |
18 | ## Serving the documentation
19 | ```bash
20 | npm run serve
21 | ```
22 |
--------------------------------------------------------------------------------
/Documentation/build.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | import { execSync } from "child_process";
4 | import { build as buildTemplates } from "./build-templates.js";
5 |
6 | build();
7 |
8 | async function build() {
9 | await buildTemplates();
10 | execSync(`docfx ${process.argv.slice(2).join(" ")}`, { stdio: "inherit" });
11 | }
12 |
--------------------------------------------------------------------------------
/Documentation/docs/.gitignore:
--------------------------------------------------------------------------------
1 | ###############
2 | # temp file #
3 | ###############
4 | *.yml
5 | .manifest
6 |
--------------------------------------------------------------------------------
/Documentation/docs/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | canonicalPath: [ "docs/" ]
3 | ---
4 |
5 | # API Documentation
6 |
7 | You can find information about all NetCord objects here.
8 |
--------------------------------------------------------------------------------
/Documentation/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NetCordDev/NetCord/feef4ba055ad0ee869a4fa302ea02b252a6d7c1d/Documentation/favicon.ico
--------------------------------------------------------------------------------
/Documentation/guides/basic-concepts/HttpInteractions/HttpInteractionHandler.cs:
--------------------------------------------------------------------------------
1 | using NetCord;
2 | using NetCord.Hosting;
3 |
4 | namespace MyBot;
5 |
6 | public class HttpInteractionHandler(ILogger logger) : IHttpInteractionHandler
7 | {
8 | public ValueTask HandleAsync(Interaction interaction)
9 | {
10 | logger.LogInformation("Received interaction: {}", interaction);
11 | return default;
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Documentation/guides/basic-concepts/HttpInteractions/Properties/launchSettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "profiles": {
3 | "HttpInteractions": {
4 | "commandName": "Project",
5 | "launchBrowser": false,
6 | "environmentVariables": {
7 | "ASPNETCORE_ENVIRONMENT": "Development"
8 | },
9 | "applicationUrl": "https://localhost:56793"
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Documentation/guides/basic-concepts/HttpInteractions/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Discord": {
3 | "Token": "Token from Discord Developer Portal",
4 | "PublicKey": "Public Key from Discord Developer Portal"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/Documentation/guides/basic-concepts/RespondingToInteractions/RespondingToInteractions.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Exe
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Documentation/guides/basic-concepts/SendingMessages/SendingMessages.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Exe
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Documentation/guides/basic-concepts/Sharding/Program.cs:
--------------------------------------------------------------------------------
1 | using NetCord;
2 | using NetCord.Gateway;
3 | using NetCord.Logging;
4 |
5 | ShardedGatewayClient client = new(new BotToken("Token from Discord Developer Portal"), new ShardedGatewayClientConfiguration
6 | {
7 | LoggerFactory = ShardedConsoleLogger.GetFactory(),
8 | });
9 |
10 | await client.StartAsync();
11 | await Task.Delay(-1);
12 |
--------------------------------------------------------------------------------
/Documentation/guides/basic-concepts/Sharding/Sharding.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Exe
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Documentation/guides/basic-concepts/ShardingHosting/MessageUpdateHandler.cs:
--------------------------------------------------------------------------------
1 | using NetCord.Gateway;
2 | using NetCord.Hosting.Gateway;
3 |
4 | namespace MyBot;
5 |
6 | [GatewayEvent(nameof(GatewayClient.MessageUpdate))]
7 | public class MessageUpdateHandler : IShardedGatewayEventHandler
8 | {
9 | public async ValueTask HandleAsync(GatewayClient client, Message message)
10 | {
11 | await message.ReplyAsync("Message updated!");
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Documentation/guides/basic-concepts/ShardingHosting/Program.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.Extensions.Hosting;
2 |
3 | using NetCord.Hosting.Gateway;
4 |
5 | var builder = Host.CreateApplicationBuilder(args);
6 |
7 | builder.Services
8 | .AddDiscordShardedGateway();
9 |
10 | var host = builder.Build();
11 |
12 | await host.RunAsync();
13 |
--------------------------------------------------------------------------------
/Documentation/guides/basic-concepts/Voice/Voice.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Exe
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Documentation/guides/events/FirstEvents/FirstEvents.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Exe
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Documentation/guides/events/Intents/Intents.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Exe
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Documentation/guides/events/Intents/Program.cs:
--------------------------------------------------------------------------------
1 | using NetCord;
2 | using NetCord.Gateway;
3 |
4 | GatewayClient client = new(new BotToken("Token from Discord Developer Portal"), new GatewayClientConfiguration()
5 | {
6 | Intents = GatewayIntents.GuildMessages | GatewayIntents.DirectMessages | GatewayIntents.MessageContent,
7 | });
8 |
--------------------------------------------------------------------------------
/Documentation/guides/events/IntentsHosting/Program.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.Extensions.Hosting;
2 |
3 | using NetCord.Gateway;
4 | using NetCord.Hosting.Gateway;
5 |
6 | var builder = Host.CreateApplicationBuilder(args);
7 |
8 | builder.Services
9 | .AddDiscordGateway(options =>
10 | {
11 | options.Intents = GatewayIntents.GuildMessages | GatewayIntents.DirectMessages | GatewayIntents.MessageContent;
12 | });
13 |
--------------------------------------------------------------------------------
/Documentation/guides/getting-started/Coding/Coding.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Exe
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Documentation/guides/getting-started/Coding/Program.cs:
--------------------------------------------------------------------------------
1 | using NetCord;
2 | using NetCord.Gateway;
3 | using NetCord.Logging;
4 |
5 | GatewayClient client = new(new BotToken("Token from Discord Developer Portal"), new GatewayClientConfiguration
6 | {
7 | Logger = new ConsoleLogger(),
8 | });
9 |
10 | await client.StartAsync();
11 | await Task.Delay(-1);
12 |
--------------------------------------------------------------------------------
/Documentation/guides/getting-started/CodingHosting/Program.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.Extensions.Hosting;
2 |
3 | using NetCord.Hosting.Gateway;
4 |
5 | var builder = Host.CreateApplicationBuilder(args);
6 |
7 | builder.Services
8 | .AddDiscordGateway();
9 |
10 | var host = builder.Build();
11 |
12 | await host.RunAsync();
13 |
--------------------------------------------------------------------------------
/Documentation/guides/getting-started/CodingHosting/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Discord": {
3 | "Token": "Token from Discord Developer Portal"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/Documentation/guides/services/CustomModuleBasesAndContexts/CustomContexts/CustomCommandContext.cs:
--------------------------------------------------------------------------------
1 | using NetCord;
2 | using NetCord.Gateway;
3 | using NetCord.Services.Commands;
4 |
5 | namespace MyBot;
6 |
7 | public class CustomCommandContext(Message message, GatewayClient client) : CommandContext(message, client)
8 | {
9 | public GuildUser BotGuildUser => Guild!.Users[Client.Id];
10 | }
11 |
--------------------------------------------------------------------------------
/Documentation/guides/services/CustomModuleBasesAndContexts/CustomContexts/CustomContexts.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Documentation/guides/services/CustomModuleBasesAndContexts/CustomModuleBases/CustomModuleBases.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Documentation/guides/services/DependencyInjection/DataModule.cs:
--------------------------------------------------------------------------------
1 | using NetCord.Services.Commands;
2 |
3 | namespace MyBot;
4 |
5 | public class DataModule(ISomeService someService) : CommandModule
6 | {
7 | [Command("data")]
8 | public string Data(int count) => string.Join(' ', someService.GetSomeData().Take(count));
9 | }
10 |
--------------------------------------------------------------------------------
/Documentation/guides/services/DependencyInjection/ISomeService.cs:
--------------------------------------------------------------------------------
1 | namespace MyBot;
2 |
3 | public interface ISomeService
4 | {
5 | public IReadOnlyList GetSomeData();
6 | }
7 |
8 | public class SomeService : ISomeService
9 | {
10 | public IReadOnlyList GetSomeData() => ["hello", "world"];
11 | }
12 |
--------------------------------------------------------------------------------
/Documentation/guides/services/Preconditions/ParameterPreconditions/HelloModule.cs:
--------------------------------------------------------------------------------
1 | using NetCord.Services.ApplicationCommands;
2 |
3 | namespace MyBot;
4 |
5 | public class HelloModule : ApplicationCommandModule
6 | {
7 | [SlashCommand("hello", "Say hello!")]
8 | public static string Hello([MustContain("hello")] string text) => text;
9 | }
10 |
--------------------------------------------------------------------------------
/Documentation/guides/services/Preconditions/Preconditions/AvatarModule.cs:
--------------------------------------------------------------------------------
1 | using NetCord.Services.Commands;
2 |
3 | namespace MyBot;
4 |
5 | public class AvatarModule : CommandModule
6 | {
7 | [RequireAnimatedAvatar]
8 | [Command("avatar")]
9 | public string Avatar() => Context.User.GetAvatarUrl()!.ToString();
10 | }
11 |
--------------------------------------------------------------------------------
/Documentation/guides/services/Preconditions/Preconditions/ButtonModule.cs:
--------------------------------------------------------------------------------
1 | using NetCord.Services.ComponentInteractions;
2 |
3 | namespace MyBot;
4 |
5 | [RequireAnimatedAvatar]
6 | public class ButtonModule : ComponentInteractionModule
7 | {
8 | // All interactions here will require animated avatars
9 | }
10 |
--------------------------------------------------------------------------------
/Documentation/guides/services/application-commands/Introduction/Introduction.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Exe
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Documentation/guides/services/application-commands/MultipleServices/MultipleServices.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Exe
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Documentation/guides/services/application-commands/Parameters/Animal.cs:
--------------------------------------------------------------------------------
1 | using NetCord.Services.ApplicationCommands;
2 |
3 | namespace MyBot;
4 |
5 | public enum Animal
6 | {
7 | Dog,
8 | Cat,
9 | Fish,
10 | [SlashCommandChoice("Guinea Pig")]
11 | GuineaPig,
12 | }
13 |
--------------------------------------------------------------------------------
/Documentation/guides/services/application-commands/Parameters/Parameters.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Exe
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Documentation/guides/services/application-commands/Permissions/Permissions.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Exe
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Documentation/guides/services/application-commands/Subcommands/Subcommands.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Exe
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Documentation/guides/services/application-commands/permissions.md:
--------------------------------------------------------------------------------
1 | # Permissions
2 |
3 | Instead of using Precondition Attributes, you can specify command required permissions to Discord. The commands will not show up to users without the permissions then. You can also specify if commands can be used in DM. Example:
4 | [!code-cs[ExampleModule.cs](Permissions/ExampleModule.cs#L9-L19)]
5 |
--------------------------------------------------------------------------------
/Documentation/guides/services/application-commands/subcommands.md:
--------------------------------------------------------------------------------
1 | # Subcommands
2 |
3 | > [!NOTE]
4 | > Subcommands are only supported by slash commands.
5 |
6 | ## Example
7 | [!code-cs[GuildCommandsModule.cs](Subcommands/GuildCommandsModule.cs)]
8 |
--------------------------------------------------------------------------------
/Documentation/guides/services/component-interactions/Introduction/ButtonModule.cs:
--------------------------------------------------------------------------------
1 | using NetCord.Services.ComponentInteractions;
2 |
3 | namespace MyBot;
4 |
5 | public class ButtonModule : ComponentInteractionModule
6 | {
7 | [ComponentInteraction("button")]
8 | public static string Button() => "You clicked a button!";
9 | }
10 |
--------------------------------------------------------------------------------
/Documentation/guides/services/component-interactions/Introduction/ChannelMenuModule.cs:
--------------------------------------------------------------------------------
1 | using NetCord.Services.ComponentInteractions;
2 |
3 | namespace MyBot;
4 |
5 | public class ChannelMenuModule : ComponentInteractionModule
6 | {
7 | [ComponentInteraction("menu")]
8 | public string Menu() => $"You selected: {string.Join(", ", Context.SelectedChannels)}";
9 | }
10 |
--------------------------------------------------------------------------------
/Documentation/guides/services/component-interactions/Introduction/Introduction.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Exe
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Documentation/guides/services/component-interactions/Introduction/MentionableMenuModule.cs:
--------------------------------------------------------------------------------
1 | using NetCord.Services.ComponentInteractions;
2 |
3 | namespace MyBot;
4 |
5 | public class MentionableMenuModule : ComponentInteractionModule
6 | {
7 | [ComponentInteraction("menu")]
8 | public string Menu() => $"You selected: {string.Join(", ", Context.SelectedMentionables)}";
9 | }
10 |
--------------------------------------------------------------------------------
/Documentation/guides/services/component-interactions/Introduction/RoleMenuModule.cs:
--------------------------------------------------------------------------------
1 | using NetCord.Services.ComponentInteractions;
2 |
3 | namespace MyBot;
4 |
5 | public class RoleMenuModule : ComponentInteractionModule
6 | {
7 | [ComponentInteraction("menu")]
8 | public string Menu() => $"You selected: {string.Join(", ", Context.SelectedRoles)}";
9 | }
10 |
--------------------------------------------------------------------------------
/Documentation/guides/services/component-interactions/Introduction/StringMenuModule.cs:
--------------------------------------------------------------------------------
1 | using NetCord.Services.ComponentInteractions;
2 |
3 | namespace MyBot;
4 |
5 | public class StringMenuModule : ComponentInteractionModule
6 | {
7 | [ComponentInteraction("menu")]
8 | public string Menu() => $"You selected: {string.Join(", ", Context.SelectedValues)}";
9 | }
10 |
--------------------------------------------------------------------------------
/Documentation/guides/services/component-interactions/Introduction/UserMenuModule.cs:
--------------------------------------------------------------------------------
1 | using NetCord.Services.ComponentInteractions;
2 |
3 | namespace MyBot;
4 |
5 | public class UserMenuModule : ComponentInteractionModule
6 | {
7 | [ComponentInteraction("menu")]
8 | public string Menu() => $"You selected: {string.Join(", ", Context.SelectedUsers)}";
9 | }
10 |
--------------------------------------------------------------------------------
/Documentation/guides/services/component-interactions/Parameters/Parameters.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Documentation/guides/services/introduction.md:
--------------------------------------------------------------------------------
1 | # Introduction
2 |
3 | This section is about [NetCord.Services](https://www.nuget.org/packages/NetCord.Services) package. It allows you to create and handle commands and interactions easily.
4 |
--------------------------------------------------------------------------------
/Documentation/guides/services/text-commands/Aliases/Aliases.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Exe
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Documentation/guides/services/text-commands/Aliases/ExampleModule.cs:
--------------------------------------------------------------------------------
1 | using NetCord.Services.Commands;
2 |
3 | namespace MyBot;
4 |
5 | public class ExampleModule : CommandModule
6 | {
7 | [Command("average", "mean")]
8 | public static string Average(params double[] numbers) => $"Average: {numbers.Average()}";
9 | }
10 |
--------------------------------------------------------------------------------
/Documentation/guides/services/text-commands/Introduction/ExampleModule.cs:
--------------------------------------------------------------------------------
1 | using NetCord.Services.Commands;
2 |
3 | namespace MyBot;
4 |
5 | public class ExampleModule : CommandModule
6 | {
7 | [Command("pong")]
8 | public static string Pong() => "Ping!";
9 | }
10 |
--------------------------------------------------------------------------------
/Documentation/guides/services/text-commands/Introduction/Introduction.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Exe
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Documentation/guides/services/text-commands/IntroductionHosting/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Discord": {
3 | "Prefix": "!"
4 | // You can also specify multiple prefixes using 'Prefixes'
5 | // "Prefixes": [ "!", "?" ]
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/Documentation/guides/services/text-commands/Parameters/Parameters.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Exe
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Documentation/guides/services/text-commands/aliases.md:
--------------------------------------------------------------------------------
1 | # Aliases
2 |
3 | Each command can have multiple aliases, example:
4 | [!code-cs[ExampleModule.cs](Aliases/ExampleModule.cs#L7-L8)]
5 |
--------------------------------------------------------------------------------
/Documentation/guides/services/type-readers.md:
--------------------------------------------------------------------------------
1 | # Type Readers
2 |
3 | Type Readers are responsible for parsing command and interaction arguments. Some are built-in, so you don't need to create them. To use custom Type Readers, add them to your `...ServiceConfiguration.TypeReaders` or use `...ParameterAttribute.TypeReaderType` on a specified argument.
4 |
--------------------------------------------------------------------------------
/Documentation/image_sources/http-interactions_FindingPublicKeyAndSpecifyingInteractionEndpointUrl.pdn:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NetCordDev/NetCord/feef4ba055ad0ee869a4fa302ea02b252a6d7c1d/Documentation/image_sources/http-interactions_FindingPublicKeyAndSpecifyingInteractionEndpointUrl.pdn
--------------------------------------------------------------------------------
/Documentation/image_sources/installation_JetBrainsRider_1.pdn:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NetCordDev/NetCord/feef4ba055ad0ee869a4fa302ea02b252a6d7c1d/Documentation/image_sources/installation_JetBrainsRider_1.pdn
--------------------------------------------------------------------------------
/Documentation/image_sources/installation_JetBrainsRider_2.pdn:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NetCordDev/NetCord/feef4ba055ad0ee869a4fa302ea02b252a6d7c1d/Documentation/image_sources/installation_JetBrainsRider_2.pdn
--------------------------------------------------------------------------------
/Documentation/image_sources/installation_VisualStudio_1.pdn:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NetCordDev/NetCord/feef4ba055ad0ee869a4fa302ea02b252a6d7c1d/Documentation/image_sources/installation_VisualStudio_1.pdn
--------------------------------------------------------------------------------
/Documentation/image_sources/installation_VisualStudio_2.pdn:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NetCordDev/NetCord/feef4ba055ad0ee869a4fa302ea02b252a6d7c1d/Documentation/image_sources/installation_VisualStudio_2.pdn
--------------------------------------------------------------------------------
/Documentation/image_sources/intents_Privileged.pdn:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NetCordDev/NetCord/feef4ba055ad0ee869a4fa302ea02b252a6d7c1d/Documentation/image_sources/intents_Privileged.pdn
--------------------------------------------------------------------------------
/Documentation/image_sources/making-a-bot_AddBotToServer_1.pdn:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NetCordDev/NetCord/feef4ba055ad0ee869a4fa302ea02b252a6d7c1d/Documentation/image_sources/making-a-bot_AddBotToServer_1.pdn
--------------------------------------------------------------------------------
/Documentation/image_sources/making-a-bot_AddBotToServer_2.pdn:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NetCordDev/NetCord/feef4ba055ad0ee869a4fa302ea02b252a6d7c1d/Documentation/image_sources/making-a-bot_AddBotToServer_2.pdn
--------------------------------------------------------------------------------
/Documentation/image_sources/making-a-bot_BotOnline.pdn:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NetCordDev/NetCord/feef4ba055ad0ee869a4fa302ea02b252a6d7c1d/Documentation/image_sources/making-a-bot_BotOnline.pdn
--------------------------------------------------------------------------------
/Documentation/image_sources/making-a-bot_CreateApplication_1.pdn:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NetCordDev/NetCord/feef4ba055ad0ee869a4fa302ea02b252a6d7c1d/Documentation/image_sources/making-a-bot_CreateApplication_1.pdn
--------------------------------------------------------------------------------
/Documentation/image_sources/making-a-bot_CreateApplication_2.pdn:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NetCordDev/NetCord/feef4ba055ad0ee869a4fa302ea02b252a6d7c1d/Documentation/image_sources/making-a-bot_CreateApplication_2.pdn
--------------------------------------------------------------------------------
/Documentation/image_sources/making-a-bot_Token_1.pdn:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NetCordDev/NetCord/feef4ba055ad0ee869a4fa302ea02b252a6d7c1d/Documentation/image_sources/making-a-bot_Token_1.pdn
--------------------------------------------------------------------------------
/Documentation/image_sources/making-a-bot_Token_2.pdn:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NetCordDev/NetCord/feef4ba055ad0ee869a4fa302ea02b252a6d7c1d/Documentation/image_sources/making-a-bot_Token_2.pdn
--------------------------------------------------------------------------------
/Documentation/images/BigOutline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NetCordDev/NetCord/feef4ba055ad0ee869a4fa302ea02b252a6d7c1d/Documentation/images/BigOutline.png
--------------------------------------------------------------------------------
/Documentation/images/BigOutline.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NetCordDev/NetCord/feef4ba055ad0ee869a4fa302ea02b252a6d7c1d/Documentation/images/BigOutline.webp
--------------------------------------------------------------------------------
/Documentation/images/SmallSquare.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NetCordDev/NetCord/feef4ba055ad0ee869a4fa302ea02b252a6d7c1d/Documentation/images/SmallSquare.png
--------------------------------------------------------------------------------
/Documentation/images/SmallSquare.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NetCordDev/NetCord/feef4ba055ad0ee869a4fa302ea02b252a6d7c1d/Documentation/images/SmallSquare.webp
--------------------------------------------------------------------------------
/Documentation/images/http-interactions_FindingPublicKeyAndSpecifyingInteractionEndpointUrl.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NetCordDev/NetCord/feef4ba055ad0ee869a4fa302ea02b252a6d7c1d/Documentation/images/http-interactions_FindingPublicKeyAndSpecifyingInteractionEndpointUrl.webp
--------------------------------------------------------------------------------
/Documentation/images/installation_JetBrainsRider_1.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NetCordDev/NetCord/feef4ba055ad0ee869a4fa302ea02b252a6d7c1d/Documentation/images/installation_JetBrainsRider_1.webp
--------------------------------------------------------------------------------
/Documentation/images/installation_JetBrainsRider_2.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NetCordDev/NetCord/feef4ba055ad0ee869a4fa302ea02b252a6d7c1d/Documentation/images/installation_JetBrainsRider_2.webp
--------------------------------------------------------------------------------
/Documentation/images/installation_VisualStudio_1.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NetCordDev/NetCord/feef4ba055ad0ee869a4fa302ea02b252a6d7c1d/Documentation/images/installation_VisualStudio_1.webp
--------------------------------------------------------------------------------
/Documentation/images/installation_VisualStudio_2.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NetCordDev/NetCord/feef4ba055ad0ee869a4fa302ea02b252a6d7c1d/Documentation/images/installation_VisualStudio_2.webp
--------------------------------------------------------------------------------
/Documentation/images/intents_Privileged.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NetCordDev/NetCord/feef4ba055ad0ee869a4fa302ea02b252a6d7c1d/Documentation/images/intents_Privileged.webp
--------------------------------------------------------------------------------
/Documentation/images/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NetCordDev/NetCord/feef4ba055ad0ee869a4fa302ea02b252a6d7c1d/Documentation/images/logo.png
--------------------------------------------------------------------------------
/Documentation/images/logo.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NetCordDev/NetCord/feef4ba055ad0ee869a4fa302ea02b252a6d7c1d/Documentation/images/logo.webp
--------------------------------------------------------------------------------
/Documentation/images/making-a-bot_AddBotToServer_1.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NetCordDev/NetCord/feef4ba055ad0ee869a4fa302ea02b252a6d7c1d/Documentation/images/making-a-bot_AddBotToServer_1.webp
--------------------------------------------------------------------------------
/Documentation/images/making-a-bot_AddBotToServer_2.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NetCordDev/NetCord/feef4ba055ad0ee869a4fa302ea02b252a6d7c1d/Documentation/images/making-a-bot_AddBotToServer_2.webp
--------------------------------------------------------------------------------
/Documentation/images/making-a-bot_BotOnline.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NetCordDev/NetCord/feef4ba055ad0ee869a4fa302ea02b252a6d7c1d/Documentation/images/making-a-bot_BotOnline.webp
--------------------------------------------------------------------------------
/Documentation/images/making-a-bot_CreateApplication_1.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NetCordDev/NetCord/feef4ba055ad0ee869a4fa302ea02b252a6d7c1d/Documentation/images/making-a-bot_CreateApplication_1.webp
--------------------------------------------------------------------------------
/Documentation/images/making-a-bot_CreateApplication_2.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NetCordDev/NetCord/feef4ba055ad0ee869a4fa302ea02b252a6d7c1d/Documentation/images/making-a-bot_CreateApplication_2.webp
--------------------------------------------------------------------------------
/Documentation/images/making-a-bot_Token_1.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NetCordDev/NetCord/feef4ba055ad0ee869a4fa302ea02b252a6d7c1d/Documentation/images/making-a-bot_Token_1.webp
--------------------------------------------------------------------------------
/Documentation/images/making-a-bot_Token_2.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NetCordDev/NetCord/feef4ba055ad0ee869a4fa302ea02b252a6d7c1d/Documentation/images/making-a-bot_Token_2.webp
--------------------------------------------------------------------------------
/Documentation/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: NetCord - Modern C# Discord Bot Library for .NET Developers
3 | omitAppTitle: true
4 | _root: true
5 | canonicalPath: [ "" ]
6 | ---
7 |
--------------------------------------------------------------------------------
/Documentation/robots.txt:
--------------------------------------------------------------------------------
1 | Sitemap: https://netcord.dev/sitemap.xml
2 |
--------------------------------------------------------------------------------
/Documentation/templates-src/.editorconfig:
--------------------------------------------------------------------------------
1 | root = false
2 |
3 | # Settings for Docfx template files
4 | [*]
5 | charset = utf-8
6 | end_of_line = lf
7 | indent_size = 2
8 |
--------------------------------------------------------------------------------
/Documentation/templates-src/.gitignore:
--------------------------------------------------------------------------------
1 | */public
2 |
--------------------------------------------------------------------------------
/Documentation/templates-src/NetCord/ApiPage.html.primary.js:
--------------------------------------------------------------------------------
1 | // Licensed to the .NET Foundation under one or more agreements.
2 | // The .NET Foundation licenses this file to you under the MIT license.
3 |
4 | exports.transform = function (model) {
5 | return model;
6 | }
7 |
--------------------------------------------------------------------------------
/Documentation/templates-src/NetCord/ApiPage.html.primary.tmpl:
--------------------------------------------------------------------------------
1 | {{!Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license.}}
2 | {{!master(layout/_master.tmpl)}}
3 |
4 | {{{content}}}
5 |
--------------------------------------------------------------------------------
/Documentation/templates-src/NetCord/fonts/cascadia-code.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NetCordDev/NetCord/feef4ba055ad0ee869a4fa302ea02b252a6d7c1d/Documentation/templates-src/NetCord/fonts/cascadia-code.woff2
--------------------------------------------------------------------------------
/Documentation/templates-src/NetCord/fonts/franklin-gothic-heavy.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NetCordDev/NetCord/feef4ba055ad0ee869a4fa302ea02b252a6d7c1d/Documentation/templates-src/NetCord/fonts/franklin-gothic-heavy.woff2
--------------------------------------------------------------------------------
/Documentation/templates-src/NetCord/partials/collection.tmpl.partial:
--------------------------------------------------------------------------------
1 | {{!Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license.}}
2 |
3 | {{>partials/class}}
4 |
--------------------------------------------------------------------------------
/Documentation/templates-src/NetCord/partials/customMREFContent.tmpl.partial:
--------------------------------------------------------------------------------
1 | {{!Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license.}}
2 | {{!Add your own custom template for the content for ManagedReference here}}
3 | {{#_splitReference}}
4 | {{#isCollection}}
5 | {{>partials/collection}}
6 | {{/isCollection}}
7 | {{#isItem}}
8 | {{>partials/item}}
9 | {{/isItem}}
10 | {{/_splitReference}}
11 |
--------------------------------------------------------------------------------
/Documentation/templates-src/NetCord/partials/example.tmpl.partial:
--------------------------------------------------------------------------------
1 | var builder = Host.CreateDefaultBuilder(args)
2 | .UseDiscordGateway()
3 | .UseApplicationCommands();
4 |
5 | var host = builder.Build()
6 | .AddSlashCommand("square", "Square!", (int a) => $"{a}² = {a * a}")
7 | .UseGatewayEventHandlers();
8 |
9 | await host.RunAsync();
10 |
--------------------------------------------------------------------------------
/Documentation/templates-src/NetCord/partials/item.tmpl.partial:
--------------------------------------------------------------------------------
1 | {{!Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license.}}
2 |
3 | {{>partials/class.header}}
4 |
--------------------------------------------------------------------------------
/Documentation/toc.yml:
--------------------------------------------------------------------------------
1 | - name: Guides
2 | href: guides/
3 | - name: API Docs
4 | href: docs/
5 | homepage: docs/
6 |
--------------------------------------------------------------------------------
/Documentation/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "removeComments": true,
4 | "resolveJsonModule": true,
5 | "esModuleInterop": true
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/Hosting/NetCord.Hosting.AspNetCore/NetCord.Hosting.AspNetCore.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Hosting/NetCord.Hosting.Services/Commands/ICommandResultHandler.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.Extensions.Logging;
2 |
3 | using NetCord.Gateway;
4 | using NetCord.Services;
5 | using NetCord.Services.Commands;
6 |
7 | namespace NetCord.Hosting.Services.Commands;
8 |
9 | public interface ICommandResultHandler where TContext : ICommandContext
10 | {
11 | public ValueTask HandleResultAsync(IExecutionResult result, TContext context, GatewayClient client, ILogger logger, IServiceProvider services);
12 | }
13 |
--------------------------------------------------------------------------------
/Hosting/NetCord.Hosting/Gateway/GatewayEventAttribute.cs:
--------------------------------------------------------------------------------
1 | namespace NetCord.Hosting.Gateway;
2 |
3 | [AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]
4 | public class GatewayEventAttribute(string name) : Attribute
5 | {
6 | public string Name { get; } = name;
7 | }
8 |
--------------------------------------------------------------------------------
/Hosting/NetCord.Hosting/GlobalUsings.cs:
--------------------------------------------------------------------------------
1 | global using DAMAttribute = System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute;
2 | global using DAMT = System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes;
3 | global using MSLogLevel = Microsoft.Extensions.Logging.LogLevel;
4 | global using NCLogLevel = NetCord.Logging.LogLevel;
5 |
--------------------------------------------------------------------------------
/Hosting/NetCord.Hosting/IDiscordOptions.cs:
--------------------------------------------------------------------------------
1 | namespace NetCord.Hosting;
2 |
3 | public interface IDiscordOptions
4 | {
5 | ///
6 | /// The token used to authenticate with Discord.
7 | ///
8 | public string? Token { get; set; }
9 |
10 | ///
11 | /// The public key used to validate HTTP interactions.
12 | ///
13 | public string? PublicKey { get; set; }
14 | }
15 |
--------------------------------------------------------------------------------
/NetCord.Services/ApplicationCommands/GuildCommands.cs:
--------------------------------------------------------------------------------
1 | namespace NetCord.Services.ApplicationCommands;
2 |
3 | internal record struct GuildCommands(ulong GuildId, IReadOnlyList Commands);
4 |
--------------------------------------------------------------------------------
/NetCord.Services/ApplicationCommands/IApplicationCommandContext.cs:
--------------------------------------------------------------------------------
1 | namespace NetCord.Services.ApplicationCommands;
2 |
3 | public interface IApplicationCommandContext : IInteractionContext
4 | {
5 | public new ApplicationCommandInteraction Interaction { get; }
6 |
7 | Interaction IInteractionContext.Interaction => Interaction;
8 | }
9 |
--------------------------------------------------------------------------------
/NetCord.Services/ApplicationCommands/IAutocompleteInteractionContext.cs:
--------------------------------------------------------------------------------
1 | namespace NetCord.Services.ApplicationCommands;
2 |
3 | public interface IAutocompleteInteractionContext : IInteractionContext
4 | {
5 | public new AutocompleteInteraction Interaction { get; }
6 |
7 | Interaction IInteractionContext.Interaction => Interaction;
8 | }
9 |
--------------------------------------------------------------------------------
/NetCord.Services/ApplicationCommands/IAutocompleteProvider.cs:
--------------------------------------------------------------------------------
1 | using NetCord.Rest;
2 |
3 | namespace NetCord.Services.ApplicationCommands;
4 |
5 | public interface IAutocompleteProvider where TAutocompleteContext : IAutocompleteInteractionContext
6 | {
7 | public ValueTask?> GetChoicesAsync(ApplicationCommandInteractionDataOption option, TAutocompleteContext context);
8 | }
9 |
--------------------------------------------------------------------------------
/NetCord.Services/ApplicationCommands/IChoicesProvider.cs:
--------------------------------------------------------------------------------
1 | using NetCord.Rest;
2 |
3 | namespace NetCord.Services.ApplicationCommands;
4 |
5 | public interface IChoicesProvider where TContext : IApplicationCommandContext
6 | {
7 | public ValueTask?> GetChoicesAsync(SlashCommandParameter parameter);
8 | }
9 |
--------------------------------------------------------------------------------
/NetCord.Services/ApplicationCommands/ILocalizationsProvider.cs:
--------------------------------------------------------------------------------
1 | namespace NetCord.Services.ApplicationCommands;
2 |
3 | public interface ILocalizationsProvider
4 | {
5 | public ValueTask?> GetLocalizationsAsync(IReadOnlyList path, CancellationToken cancellationToken = default);
6 | }
7 |
--------------------------------------------------------------------------------
/NetCord.Services/ApplicationCommands/MessageCommandAttribute.cs:
--------------------------------------------------------------------------------
1 | namespace NetCord.Services.ApplicationCommands;
2 |
3 | public class MessageCommandAttribute(string name) : ApplicationCommandAttribute(name)
4 | {
5 | }
6 |
--------------------------------------------------------------------------------
/NetCord.Services/ApplicationCommands/SlashCommandAttribute.cs:
--------------------------------------------------------------------------------
1 | namespace NetCord.Services.ApplicationCommands;
2 |
3 | [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true)]
4 | public class SlashCommandAttribute(string name, string description) : ApplicationCommandAttribute(name)
5 | {
6 | public string Description { get; } = description;
7 | }
8 |
--------------------------------------------------------------------------------
/NetCord.Services/ApplicationCommands/SlashCommandChoiceAttribute.cs:
--------------------------------------------------------------------------------
1 | namespace NetCord.Services.ApplicationCommands;
2 |
3 | [AttributeUsage(AttributeTargets.Field)]
4 | public class SlashCommandChoiceAttribute(string name) : Attribute
5 | {
6 | public string Name { get; } = name;
7 | }
8 |
--------------------------------------------------------------------------------
/NetCord.Services/ApplicationCommands/SubSlashCommandAttribute.cs:
--------------------------------------------------------------------------------
1 | namespace NetCord.Services.ApplicationCommands;
2 |
3 | [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true)]
4 | public class SubSlashCommandAttribute(string name, string description) : Attribute
5 | {
6 | public string Name { get; } = name;
7 |
8 | public string Description { get; } = description;
9 | }
10 |
--------------------------------------------------------------------------------
/NetCord.Services/ApplicationCommands/TypeReaders/Channels/CategoryGuildChannelTypeReader.cs:
--------------------------------------------------------------------------------
1 | namespace NetCord.Services.ApplicationCommands.TypeReaders;
2 |
3 | public class CategoryGuildChannelTypeReader : ChannelTypeReader where TContext : IApplicationCommandContext
4 | {
5 | public override IEnumerable? AllowedChannelTypes
6 | {
7 | get
8 | {
9 | yield return ChannelType.CategoryChannel;
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/NetCord.Services/ApplicationCommands/TypeReaders/Channels/TextChannels/GroupDMChannelTypeReader.cs:
--------------------------------------------------------------------------------
1 | namespace NetCord.Services.ApplicationCommands.TypeReaders;
2 |
3 | public class GroupDMChannelTypeReader : ChannelTypeReader where TContext : IApplicationCommandContext
4 | {
5 | public override IEnumerable? AllowedChannelTypes
6 | {
7 | get
8 | {
9 | yield return ChannelType.GroupDMChannel;
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/NetCord.Services/ApplicationCommands/TypeReaders/Channels/VoiceChannels/Guild/StageGuildChannelTypeReader.cs:
--------------------------------------------------------------------------------
1 | namespace NetCord.Services.ApplicationCommands.TypeReaders;
2 |
3 | public class StageGuildChannelTypeReader : ChannelTypeReader where TContext : IApplicationCommandContext
4 | {
5 | public override IEnumerable? AllowedChannelTypes
6 | {
7 | get
8 | {
9 | yield return ChannelType.StageGuildChannel;
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/NetCord.Services/ApplicationCommands/TypeReaders/Channels/VoiceChannels/Guild/VoiceGuildChannelTypeReader.cs:
--------------------------------------------------------------------------------
1 | namespace NetCord.Services.ApplicationCommands.TypeReaders;
2 |
3 | public class VoiceGuildChannelTypeReader : ChannelTypeReader where TContext : IApplicationCommandContext
4 | {
5 | public override IEnumerable? AllowedChannelTypes
6 | {
7 | get
8 | {
9 | yield return ChannelType.VoiceGuildChannel;
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/NetCord.Services/ApplicationCommands/UserCommandAttribute.cs:
--------------------------------------------------------------------------------
1 | namespace NetCord.Services.ApplicationCommands;
2 |
3 | public class UserCommandAttribute(string name) : ApplicationCommandAttribute(name)
4 | {
5 | }
6 |
--------------------------------------------------------------------------------
/NetCord.Services/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Runtime.CompilerServices;
2 |
3 | [assembly: InternalsVisibleTo("NetCord.Hosting.Services")]
4 |
--------------------------------------------------------------------------------
/NetCord.Services/Commands/AllowByValueAttribute.cs:
--------------------------------------------------------------------------------
1 | namespace NetCord.Services.Commands;
2 |
3 | [AttributeUsage(AttributeTargets.Enum | AttributeTargets.Parameter)]
4 | public class AllowByValueAttribute : Attribute
5 | {
6 | }
7 |
--------------------------------------------------------------------------------
/NetCord.Services/Commands/CommandAttribute.cs:
--------------------------------------------------------------------------------
1 | namespace NetCord.Services.Commands;
2 |
3 | [AttributeUsage(AttributeTargets.Method)]
4 | public class CommandAttribute(params string[] aliases) : Attribute
5 | {
6 | public string[] Aliases { get; } = aliases;
7 | public int Priority { get; init; }
8 | }
9 |
--------------------------------------------------------------------------------
/NetCord.Services/Commands/CommandTypeReader.cs:
--------------------------------------------------------------------------------
1 | namespace NetCord.Services.Commands;
2 |
3 | public abstract class CommandTypeReader : ICommandTypeReader where TContext : ICommandContext
4 | {
5 | public abstract ValueTask ReadAsync(ReadOnlyMemory input, TContext context, CommandParameter parameter, CommandServiceConfiguration configuration, IServiceProvider? serviceProvider);
6 | }
7 |
8 | internal interface ICommandTypeReader
9 | {
10 | }
11 |
--------------------------------------------------------------------------------
/NetCord.Services/Commands/ICommandContext.cs:
--------------------------------------------------------------------------------
1 | using NetCord.Gateway;
2 |
3 | namespace NetCord.Services.Commands;
4 |
5 | public interface ICommandContext
6 | {
7 | public Message Message { get; }
8 | }
9 |
--------------------------------------------------------------------------------
/NetCord.Services/Commands/TypeReaders/StringTypeReader.cs:
--------------------------------------------------------------------------------
1 | namespace NetCord.Services.Commands.TypeReaders;
2 |
3 | public class StringTypeReader : CommandTypeReader where TContext : ICommandContext
4 | {
5 | public override ValueTask ReadAsync(ReadOnlyMemory input, TContext context, CommandParameter parameter, CommandServiceConfiguration configuration, IServiceProvider? serviceProvider) => new(TypeReaderResult.Success(input.ToString()));
6 | }
7 |
--------------------------------------------------------------------------------
/NetCord.Services/ComponentInteractions/ComponentInteractionAttribute.cs:
--------------------------------------------------------------------------------
1 | namespace NetCord.Services.ComponentInteractions;
2 |
3 | [AttributeUsage(AttributeTargets.Method)]
4 | public class ComponentInteractionAttribute(string customId) : Attribute
5 | {
6 | public string CustomId { get; } = customId;
7 | }
8 |
--------------------------------------------------------------------------------
/NetCord.Services/ComponentInteractions/IComponentInteractionContext.cs:
--------------------------------------------------------------------------------
1 | namespace NetCord.Services.ComponentInteractions;
2 |
3 | public interface IComponentInteractionContext : IInteractionContext
4 | {
5 | public new ComponentInteraction Interaction { get; }
6 |
7 | Interaction IInteractionContext.Interaction => Interaction;
8 | }
9 |
--------------------------------------------------------------------------------
/NetCord.Services/Contexts/IChannelContext.cs:
--------------------------------------------------------------------------------
1 | namespace NetCord.Services;
2 |
3 | public interface IChannelContext : IContext
4 | {
5 | public TextChannel? Channel { get; }
6 | }
7 |
--------------------------------------------------------------------------------
/NetCord.Services/Contexts/IContext.cs:
--------------------------------------------------------------------------------
1 | namespace NetCord.Services;
2 |
3 | public interface IContext
4 | {
5 | }
6 |
--------------------------------------------------------------------------------
/NetCord.Services/Contexts/IGatewayClientContext.cs:
--------------------------------------------------------------------------------
1 | using NetCord.Gateway;
2 |
3 | namespace NetCord.Services;
4 |
5 | public interface IGatewayClientContext : IContext
6 | {
7 | public GatewayClient Client { get; }
8 | }
9 |
--------------------------------------------------------------------------------
/NetCord.Services/Contexts/IGuildContext.cs:
--------------------------------------------------------------------------------
1 | using NetCord.Gateway;
2 |
3 | namespace NetCord.Services;
4 |
5 | public interface IGuildContext : IContext
6 | {
7 | public Guild? Guild { get; }
8 |
9 | internal protected ulong? GuildId { get; }
10 | }
11 |
--------------------------------------------------------------------------------
/NetCord.Services/Contexts/IInteractionContext.cs:
--------------------------------------------------------------------------------
1 | namespace NetCord.Services;
2 |
3 | public interface IInteractionContext : IContext
4 | {
5 | public Interaction Interaction { get; }
6 | }
7 |
--------------------------------------------------------------------------------
/NetCord.Services/Contexts/IRestClientContext.cs:
--------------------------------------------------------------------------------
1 | using NetCord.Rest;
2 |
3 | namespace NetCord.Services;
4 |
5 | public interface IRestClientContext : IContext
6 | {
7 | public RestClient Client { get; }
8 | }
9 |
--------------------------------------------------------------------------------
/NetCord.Services/Contexts/IRestMessageContext.cs:
--------------------------------------------------------------------------------
1 | using NetCord.Rest;
2 |
3 | namespace NetCord.Services;
4 |
5 | public interface IRestMessageContext : IContext
6 | {
7 | public RestMessage Message { get; }
8 | }
9 |
--------------------------------------------------------------------------------
/NetCord.Services/Contexts/IUserContext.cs:
--------------------------------------------------------------------------------
1 | namespace NetCord.Services;
2 |
3 | public interface IUserContext : IContext
4 | {
5 | public User User { get; }
6 | }
7 |
--------------------------------------------------------------------------------
/NetCord.Services/EnumTypeReaders/IEnumTypeReader.cs:
--------------------------------------------------------------------------------
1 | using System.Diagnostics.CodeAnalysis;
2 |
3 | namespace NetCord.Services.EnumTypeReaders;
4 |
5 | internal interface IEnumTypeReader
6 | {
7 | public bool TryRead(ReadOnlyMemory input, [MaybeNullWhen(false)] out object value);
8 | }
9 |
--------------------------------------------------------------------------------
/NetCord.Services/ExecutionExceptionResult.cs:
--------------------------------------------------------------------------------
1 | namespace NetCord.Services;
2 |
3 | public class ExecutionExceptionResult(Exception exception) : IExceptionResult
4 | {
5 | public Exception Exception { get; } = exception;
6 |
7 | public string Message => Exception.Message;
8 | }
9 |
--------------------------------------------------------------------------------
/NetCord.Services/IBaseModule.cs:
--------------------------------------------------------------------------------
1 | namespace NetCord.Services;
2 |
3 | #nullable disable
4 |
5 | internal interface IBaseModule
6 | {
7 | public TContext Context { get; }
8 |
9 | internal void SetContext(TContext context);
10 | }
11 |
--------------------------------------------------------------------------------
/NetCord.Services/IExecutionResult.cs:
--------------------------------------------------------------------------------
1 | namespace NetCord.Services;
2 |
3 | public interface IExecutionResult
4 | {
5 | }
6 |
7 | public interface IFailResult : IExecutionResult
8 | {
9 | public string Message { get; }
10 | }
11 |
12 | public interface IExceptionResult : IFailResult
13 | {
14 | public Exception Exception { get; }
15 | }
16 |
--------------------------------------------------------------------------------
/NetCord.Services/IResultResolverProvider.cs:
--------------------------------------------------------------------------------
1 | using System.Diagnostics.CodeAnalysis;
2 |
3 | namespace NetCord.Services;
4 |
5 | public interface IResultResolverProvider
6 | {
7 | public bool TryGetResolver(Type type, [MaybeNullWhen(false)] out Func