From a13dce2550a1778169c368936fafb593915fa70d Mon Sep 17 00:00:00 2001 From: Armano den Boef <68127614+Rozen4334@users.noreply.github.com> Date: Wed, 2 Mar 2022 21:24:34 +0100 Subject: [PATCH] FAQ rework, replacing outdated info, better interaction FAQ (#2106) * FAQ rework, replacing outdated info, better interaction faq * Update docs/faq/basics/getting-started.md Co-authored-by: Jared L <48422312+lhjt@users.noreply.github.com> * Update docs/faq/basics/getting-started.md Co-authored-by: Jared L <48422312+lhjt@users.noreply.github.com> * Update docs/faq/int_framework/general.md Co-authored-by: Jared L <48422312+lhjt@users.noreply.github.com> * fix TOC reference Co-authored-by: Jared L <48422312+lhjt@users.noreply.github.com> Co-authored-by: Quin Lynch --- .../{commands => basics}/dependency-injection.md | 18 +++----- docs/faq/basics/getting-started.md | 38 +++++++++++----- docs/faq/basics/images/link.png | Bin 0 -> 5229 bytes docs/faq/basics/images/permissions.png | Bin 0 -> 60409 bytes docs/faq/basics/images/scopes.png | Bin 0 -> 28566 bytes docs/faq/{commands => basics}/samples/DI.cs | 0 .../{commands => basics}/samples/missing-dep.cs | 9 ++-- .../interaction.md => int_framework/framework.md} | 43 +++++++++++++----- .../interactions.md => int_framework/general.md} | 49 ++++++--------------- .../faq/{basics => int_framework}/images/scope.png | Bin docs/faq/int_framework/manual.md | 45 +++++++++++++++++++ .../int_framework/samples/interactionsyncing.cs | 6 +++ .../faq/int_framework/samples/propertyinjection.cs | 8 ++++ .../samples/registerint.cs | 0 docs/faq/misc/legacy.md | 21 ++++++++- docs/faq/{commands => text_commands}/general.md | 17 +++---- .../samples/Remainder.cs | 0 .../samples/runmode-cmdattrib.cs | 0 .../samples/runmode-cmdconfig.cs | 0 docs/faq/toc.yml | 22 +++++---- 20 files changed, 179 insertions(+), 97 deletions(-) rename docs/faq/{commands => basics}/dependency-injection.md (71%) create mode 100644 docs/faq/basics/images/link.png create mode 100644 docs/faq/basics/images/permissions.png create mode 100644 docs/faq/basics/images/scopes.png rename docs/faq/{commands => basics}/samples/DI.cs (100%) rename docs/faq/{commands => basics}/samples/missing-dep.cs (82%) rename docs/faq/{commands/interaction.md => int_framework/framework.md} (52%) rename docs/faq/{basics/interactions.md => int_framework/general.md} (52%) rename docs/faq/{basics => int_framework}/images/scope.png (100%) create mode 100644 docs/faq/int_framework/manual.md create mode 100644 docs/faq/int_framework/samples/interactionsyncing.cs create mode 100644 docs/faq/int_framework/samples/propertyinjection.cs rename docs/faq/{basics => int_framework}/samples/registerint.cs (100%) rename docs/faq/{commands => text_commands}/general.md (89%) rename docs/faq/{commands => text_commands}/samples/Remainder.cs (100%) rename docs/faq/{commands => text_commands}/samples/runmode-cmdattrib.cs (100%) rename docs/faq/{commands => text_commands}/samples/runmode-cmdconfig.cs (100%) diff --git a/docs/faq/commands/dependency-injection.md b/docs/faq/basics/dependency-injection.md similarity index 71% rename from docs/faq/commands/dependency-injection.md rename to docs/faq/basics/dependency-injection.md index d6b7f8b58..fe5686797 100644 --- a/docs/faq/commands/dependency-injection.md +++ b/docs/faq/basics/dependency-injection.md @@ -1,12 +1,12 @@ --- -uid: FAQ.Commands.DI -title: Questions about Dependency Injection with Commands +uid: FAQ.Basics.DI +title: Questions about Dependency Injection. --- # Dependency-injection-related Questions In the following section, you will find common questions and answers -to utilizing dependency injection with @Discord.Commands, as well as +to utilizing dependency injection with @Discord.Commands and @Discord.Interactions, as well as common troubleshooting steps regarding DI. ## What is a service? Why does my module not hold any data after execution? @@ -22,8 +22,7 @@ Service is often used to hold data externally so that they persist throughout execution. Think of it like a chest that holds whatever you throw at it that won't be affected by anything unless you want it to. Note that you should also learn Microsoft's -implementation of [Dependency Injection] \([video]) before proceeding, -as well as how it works in [Discord.Net](xref:Guides.TextCommands.DI#usage-in-modules). +implementation of [Dependency Injection] \([video]) before proceeding. A brief example of service and dependency injection can be seen below. @@ -32,18 +31,12 @@ A brief example of service and dependency injection can be seen below. [Dependency Injection]: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/dependency-injection [video]: https://www.youtube.com/watch?v=QtDTfn8YxXg -## Why is my `CommandService` complaining about a missing dependency? +## Why is my Command/Interaction Service complaining about a missing dependency? If you encounter an error similar to `Failed to create MyModule, dependency MyExternalDependency was not found.`, you may have forgotten to add the external dependency to the dependency container. -Starting from Discord.Net 2.0, all dependencies required by each -module must be present when the module is loaded into the -[CommandService]. This means when loading the module, you must pass a -valid [IServiceProvider] with the dependency loaded before the module -can be successfully registered. - For example, if your module, `MyModule`, requests a `DatabaseService` in its constructor, the `DatabaseService` must be present in the [IServiceProvider] when registering `MyModule`. @@ -51,4 +44,3 @@ in its constructor, the `DatabaseService` must be present in the [!code-csharp[Missing Dependencies](samples/missing-dep.cs)] [IServiceProvider]: xref:System.IServiceProvider -[CommandService]: xref:Discord.Commands.CommandService diff --git a/docs/faq/basics/getting-started.md b/docs/faq/basics/getting-started.md index dc4b11548..ba5782ed7 100644 --- a/docs/faq/basics/getting-started.md +++ b/docs/faq/basics/getting-started.md @@ -11,18 +11,32 @@ introduction to the Discord API ecosystem. ## How do I add my bot to my server/guild? -You can do so by using the [permission calculator] provided -by [FiniteReality]. -This tool allows you to set permissions that the bot will be assigned -with, and invite the bot into your guild. With this method, bots will -also be assigned a unique role that a regular user cannot use; this -is what we call a `Managed` role. Because you cannot assign this -role to any other users, it is much safer than creating a single -role which, intentionally or not, can be applied to other users -to escalate their privilege. - -[FiniteReality]: https://github.com/FiniteReality/permissions-calculator -[permission calculator]: https://finitereality.github.io/permissions-calculator +Inviting your bot can be done by using the OAuth2 url generator provided by the [Discord Developer Portal]. + +Permissions can be granted by selecting the `bot` scope in the scopes section. + +![Scopes](images/scopes.png) + +A permissions tab will appear below the scope selection, +from which you can pick any permissions your bot may require to function. +When invited, the role this bot is granted will include these permissions. +If you grant no permissions, no role will be created for your bot upon invitation as there is no need for one. + +![Permissions](images/permissions.png) + +When done selecting permissions, you can use the link below in your browser to invite the bot +to servers where you have the `Manage Server` permission. + +![Invite](images/link.png) + +If you are planning to play around with slash/context commands, +make sure to check the `application commands` scope before inviting your bot! + +> [!NOTE] +> You do not have to kick and reinvite your bot to update permissions/scopes later on. +> Simply reusing the invite link with provided scopes/perms will update it accordingly. + +[Discord Developer Portal]: https://discord.com/developers/applications/ ## What is a token? diff --git a/docs/faq/basics/images/link.png b/docs/faq/basics/images/link.png new file mode 100644 index 0000000000000000000000000000000000000000..dd6b520abd2accd4104c880ba547a9656224d607 GIT binary patch literal 5229 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 zt6DeCzjHPfrkJuyzs*yoZ=s=v8J|b~EHZbt+K4?vEwXNUpyq^0*4|p~ICeN==mao> zHQw@`$2+&VF4ZC*1Fmfm-CaXYyu#ncs)K*?w`o zX)kT&nZAr*-s-1C_u)&vyub~w`n_uv?;Vgy-Fwa-b7zThoIovM`f8s4nDzWagpYMX z+HYsfZd-4DLwb)+NH{9({@=iQ9lKP&)9+39Nt<$hi_S97SmO);0000$u%PfM4qdWY zceKr!RpuXCv#wFL?`)P=H#a$ZqE&zBzKB5SiwE?WezpTO{jTBJz5}h!+e7u3E)Ufi za5`&E!#ltIT-benb^2nY&lrww@rP!=?(L5GTe!*n-QojOGvHG z*fQ6i9Gi0cd#lS0dG=qG=|_GaO`UH>lQYz!#->#F{4!;!rK9QGv71e{J9#-32t@{J zM)nSb!KkLn&`o>S4%~n$zzE9g?*?s=O1GV@PQo4PIHB;wF$6W=Rb|l}r zm_;|**Ed)Om09%7l|gUIeA2bkL|seEw(FZpGs{f-+k%d}BK!7)y4f~JdEi?)!;ZT` z$EK)E%0ur>#TdIRG3)9JD|YGZzb8NICy5?&9gpy_`o6+{hwgm^_b>SQMF-lx@AHfR z00000OI=X-lnV{kbVi!K$@7nEv&(gVw9LKMGM9X2D&F9}xWIm?L9XmRKZAi9fPa?7 z1!@2Q0002wE+~9@TA~8AH?}s(hkM+&i26%FzYn|51ZqGYtLqt(PHP`I000000RGv6 z!l$Q2mx^j|7F71u_GV}AwO2~M-`;6HyUzq_000000078YQ23OO>^>8y0RR91001Co zLE%$AvinS+1^@s6004lT1%*%f$nGKn(x@00000h#}`d z?bpBgLtujd0000006@OdOf08B?WaHcx%}dnzamrv000000Kk%=S(s*GnvDfzW-2sL z`|a;nI2ARG0{{R30001%3eChc8w<+JRA`_E00000001Bxff@h+000005Cef400000 z000mJff@h+000005Cef400000000mJff@h+000005Cef400000000mJff@h+00000 n5Cef400000006LPFUUUt)v!3B^yGD700000NkvXXu0mjfASTcv literal 0 KcmV+b0RR6000031 diff --git a/docs/faq/basics/images/permissions.png b/docs/faq/basics/images/permissions.png new file mode 100644 index 0000000000000000000000000000000000000000..6bd52c75422e58745a8ba860cbfd47831e3b7a60 GIT binary patch literal 60409 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

?E7hnJL}JR{u;k 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 dF|2Uv+RE<8NqCGIqbC0&Z*GG0+ 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 AA^-pY literal 0 KcmV+b0RR6000031 diff --git a/docs/faq/basics/images/scopes.png b/docs/faq/basics/images/scopes.png new file mode 100644 index 0000000000000000000000000000000000000000..8511908d525730c97b52729a94ed111880bfb732 GIT binary patch literal 28566 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

!90H;sg71;D_Pc;Tc9&Jn8 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 c&(() - .AddService(client) + .AddSingleton() + .AddSingleton(client) // We are missing DatabaseService! .BuildServiceProvider(); } @@ -25,5 +25,8 @@ public class CommandHandler // registered in this instance of _services. await _commands.AddModulesAsync(Assembly.GetEntryAssembly(), _services); // ... + + // The same approach applies to the interaction service. + // Make sure to resolve these issues! } -} \ No newline at end of file +} diff --git a/docs/faq/commands/interaction.md b/docs/faq/int_framework/framework.md similarity index 52% rename from docs/faq/commands/interaction.md rename to docs/faq/int_framework/framework.md index db61bc3f5..793b44d3e 100644 --- a/docs/faq/commands/interaction.md +++ b/docs/faq/int_framework/framework.md @@ -1,34 +1,54 @@ --- -uid: FAQ.Commands.Interactions -title: Interaction service +uid: FAQ.Interactions.Framework +title: Interaction Framework --- -# Interaction commands in services +# The Interaction Framework -A chapter talking about the interaction service framework. -For questions about interactions in general, refer to the [Interactions FAQ] +Common misconceptions and questions about the Interaction Framework. + +## How can I restrict some of my commands so only specific users can execute them? + +Based on how you want to implement the restrictions, you can use the +built-in `RequireUserPermission` precondition, which allows you to +restrict the command based on the user's current permissions in the +guild or channel (*e.g., `GuildPermission.Administrator`, +`ChannelPermission.ManageMessages`*). + +[RequireUserPermission]: xref:Discord.Commands.RequireUserPermissionAttribute + +> [!NOTE] +> There are many more preconditions to use, including being able to make some yourself. +> Examples on self-made preconditions can be found +> [here](https://github.com/discord-net/Discord.Net/blob/dev/samples/InteractionFramework/Attributes/RequireOwnerAttribute.cs) + +## Why do preconditions not hide my commands? + +In the current permission design by Discord, +it is not very straight forward to limit vision of slash/context commands to users. +If you want to hide commands, you should take a look at the commands' `DefaultPermissions` parameter. ## Module dependencies aren't getting populated by Property Injection? Make sure the properties are publicly accessible and publicly settable. -## How do I use this * interaction specific method/property? - -If your interaction context holds a down-casted version of the interaction object, you need to up-cast it. -Ideally, use pattern matching to make sure its the type of interaction you are expecting it to be. +[!code-csharp[Property Injection](samples/propertyinjection.cs)] ## `InteractionService.ExecuteAsync()` always returns a successful result, how do i access the failed command execution results? -If you are using `RunMode.Async` you need to setup your post-execution pipeline around `CommandExecuted` events. +If you are using `RunMode.Async` you need to setup your post-execution pipeline around +`..Executed` events exposed by the Interaction Service. ## How do I check if the executing user has * permission? Refer to the [documentation about preconditions] +[documentation about preconditions]: xref:Guides.ChatCommands.Preconditions + ## How do I send the HTTP Response from inside the command modules. Set the `RestResponseCallback` property of [InteractionServiceConfig] with a delegate for handling HTTP Responses and use -`RestInteractionModuleBase` to create your command modules. `RespondAsync()` and `DeferAsync()` methods of this module base will use the +`RestInteractionModuleBase` to create your command modules. `RespondWithModalAsync()`, `RespondAsync()` and `DeferAsync()` methods of this module base will use the `RestResponseCallback` to create interaction responses. ## Is there a cleaner way of creating parameter choices other than using `[Choice]`? @@ -49,4 +69,3 @@ It compares the _target base type_ key of the [TypeConverter]: xref:Discord.Interactions.TypeConverter [Interactions FAQ]: xref: FAQ.Basics.Interactions [InteractionServiceConfig]: xref:Discord.Interactions.InteractionServiceConfig -[documentation about preconditions]: xref: Guides.ChatCommands.Preconditions diff --git a/docs/faq/basics/interactions.md b/docs/faq/int_framework/general.md similarity index 52% rename from docs/faq/basics/interactions.md rename to docs/faq/int_framework/general.md index 33b89ac2d..af574edb6 100644 --- a/docs/faq/basics/interactions.md +++ b/docs/faq/int_framework/general.md @@ -1,11 +1,13 @@ --- -uid: FAQ.Basics.InteractionBasics -title: Basics of interactions, common practice +uid: FAQ.Interactions.General +title: Interactions --- -# Interactions basics, where to get started +# Interaction basics -This section answers basic questions and common mistakes in handling application commands, and responding to them. +This chapter mostly refers to interactions in general, +and will include questions that are common among users of the Interaction Framework +as well as users that register and handle commands manually. ## What's the difference between RespondAsync, DeferAsync and FollowupAsync? @@ -24,33 +26,20 @@ DeferAsync will not send out a response, RespondAsync will. ## Im getting System.TimeoutException: 'Cannot respond to an interaction after 3 seconds!' -This happens because your computers clock is out of sync or your trying to respond after 3 seconds. If your clock is out of sync and you cant fix it, you can set the `UseInteractionSnowflakeDate` to false in the config. +This happens because your computer's clock is out of sync or you're trying to respond after 3 seconds. +If your clock is out of sync and you can't fix it, you can set the `UseInteractionSnowflakeDate` to false in the [DiscordSocketConfig]. -## Bad form Exception when I try to create my commands, why do I get this? +[!code-csharp[Interaction Sync](samples/interactionsyncing.cs)] -Bad form exceptions are thrown if the slash, user or message command builder has invalid values. -The following options could resolve your error. +[DiscordClientConfig]: xref:Discord.WebSocket.DiscordSocketConfig -#### Is your command name lowercase? +## How do I use this * interaction specific method/property? -If your command name is not lowercase, it is not seen as a valid command entry. -`Avatar` is invalid; `avatar` is valid. - -#### Are your values below or above the required amount? (This also applies to message components) - -Discord expects all values to be below maximum allowed. -Going over this maximum amount of characters causes an exception. +If your interaction context holds a down-casted version of the interaction object, you need to up-cast it. +Ideally, use pattern matching to make sure its the type of interaction you are expecting it to be. > [!NOTE] -> All maximum and minimum value requirements can be found in the [Discord Developer Docs]. -> For components, structure documentation is found [here]. - -[Discord Developer Docs]: https://discord.com/developers/docs/interactions/application-commands#application-commands -[here]: https://discord.com/developers/docs/interactions/message-components#message-components - -#### Is your subcommand branching correct? - -Branching structure is covered properly here: xref:Guides.SlashCommands.SubCommand +> Further documentation on pattern matching can be found [here](xref:Guides.Entities.Casting). ## My interaction commands are not showing up? @@ -65,16 +54,6 @@ Did you register a guild command (should be instant), or waited more than an hou - Do you have the application commands scope checked when adding your bot to guilds? -![Scope check](images/scope.png) - -## There are many options for creating commands, which do I use? - -[!code-csharp[Register examples](samples/registerint.cs)] - -> [!NOTE] -> You can use bulkoverwrite even if there are no commands in guild, nor globally. -> The bulkoverwrite method disposes the old set of commands and replaces it with the new. - ## Do I need to create commands on startup? If you are registering your commands for the first time, it is required to create them once. diff --git a/docs/faq/basics/images/scope.png b/docs/faq/int_framework/images/scope.png similarity index 100% rename from docs/faq/basics/images/scope.png rename to docs/faq/int_framework/images/scope.png diff --git a/docs/faq/int_framework/manual.md b/docs/faq/int_framework/manual.md new file mode 100644 index 000000000..7ce0984a5 --- /dev/null +++ b/docs/faq/int_framework/manual.md @@ -0,0 +1,45 @@ +--- +uid: FAQ.Interactions.Manual +title: Manual handling +--- + +# Manually handing interactions. + +This section talks about the manual building and responding to interactions. +If you are using the interaction framework (highly recommended) this section does not apply to you. + +## Bad form Exception when I try to create my commands, why do I get this? + +Bad form exceptions are thrown if the slash, user or message command builder has invalid values. +The following options could resolve your error. + +#### Is your command name lowercase? + +If your command name is not lowercase, it is not seen as a valid command entry. +`Avatar` is invalid; `avatar` is valid. + +#### Are your values below or above the required amount? (This also applies to message components) + +Discord expects all values to be below maximum allowed. +Going over this maximum amount of characters causes an exception. + +> [!NOTE] +> All maximum and minimum value requirements can be found in the [Discord Developer Docs]. +> For components, structure documentation is found [here]. + +[Discord Developer Docs]: https://discord.com/developers/docs/interactions/application-commands#application-commands +[here]: https://discord.com/developers/docs/interactions/message-components#message-components + +#### Is your subcommand branching correct? + +Branching structure is covered properly here: xref:Guides.SlashCommands.SubCommand + +![Scope check](images/scope.png) + +## There are many options for creating commands, which do I use? + +[!code-csharp[Register examples](samples/registerint.cs)] + +> [!NOTE] +> You can use bulkoverwrite even if there are no commands in guild, nor globally. +> The bulkoverwrite method disposes the old set of commands and replaces it with the new. diff --git a/docs/faq/int_framework/samples/interactionsyncing.cs b/docs/faq/int_framework/samples/interactionsyncing.cs new file mode 100644 index 000000000..64066194a --- /dev/null +++ b/docs/faq/int_framework/samples/interactionsyncing.cs @@ -0,0 +1,6 @@ +DiscordSocketConfig config = new() +{ + UseInteractionSnowflakeDate = false +}; + +DiscordSocketclient client = new(config); diff --git a/docs/faq/int_framework/samples/propertyinjection.cs b/docs/faq/int_framework/samples/propertyinjection.cs new file mode 100644 index 000000000..fcacd52d1 --- /dev/null +++ b/docs/faq/int_framework/samples/propertyinjection.cs @@ -0,0 +1,8 @@ +public class MyModule +{ + // Intended. + public InteractionService Service { get; set; } + + // Will not work. A private setter cannot be accessed by the serviceprovider. + private InteractionService Service { get; private set; } +} diff --git a/docs/faq/basics/samples/registerint.cs b/docs/faq/int_framework/samples/registerint.cs similarity index 100% rename from docs/faq/basics/samples/registerint.cs rename to docs/faq/int_framework/samples/registerint.cs diff --git a/docs/faq/misc/legacy.md b/docs/faq/misc/legacy.md index fbfb41ac2..0b0b51159 100644 --- a/docs/faq/misc/legacy.md +++ b/docs/faq/misc/legacy.md @@ -8,15 +8,32 @@ title: Questions about Legacy Versions This section refers to legacy library-related questions that do not apply to the latest or recent version of the Discord.Net library. +## Migrating your commands to application commands. + +The new interaction service was designed to act like the previous service for text-based commands. +Your pre-existing code will continue to work, but you will need to migrate your modules and response functions to use the new +interaction service methods. Documentation on this can be found in the [Guides](xref:Guides.IntFw.Intro). + +## Gateway event parameters changed, why? + +With 3.0, a higher focus on [Cacheable]'s was introduced. +[Cacheable]'s get an entity from cache, rather than making an API call to retrieve it's data. +The entity can be retrieved from cache by calling `GetOrDownloadAsync()` on the [Cacheable] type. + +> [!NOTE] +> GetOrDownloadAsync will download the entity if its not available directly from the cache. + +[Cacheable]: xref:Discord.Cacheable + ## X, Y, Z does not work! It doesn't return a valid value anymore. If you are currently using an older version of the stable branch, -please upgrade to the latest pre-release version to ensure maximum +please upgrade to the latest release version to ensure maximum compatibility. Several features may be broken in older versions and will likely not be fixed in the version branch due to their breaking nature. -Visit the repo's [release tag] to see the latest public pre-release. +Visit the repo's [release tag] to see the latest public release. [release tag]: https://github.com/discord-net/Discord.Net/releases diff --git a/docs/faq/commands/general.md b/docs/faq/text_commands/general.md similarity index 89% rename from docs/faq/commands/general.md rename to docs/faq/text_commands/general.md index cff078746..202ceb299 100644 --- a/docs/faq/commands/general.md +++ b/docs/faq/text_commands/general.md @@ -1,6 +1,6 @@ --- -uid: FAQ.Commands.General -title: General Questions about chat Commands +uid: FAQ.TextCommands.General +title: General Questions about Text Commands --- # Chat Command-related Questions @@ -10,21 +10,16 @@ answered regarding general command usage when using @Discord.Commands. ## How can I restrict some of my commands so only specific users can execute them? -Based on how you want to implement the restrictions, you can use the -built-in [RequireUserPermission] precondition, which allows you to +You can use the built-in `RequireUserPermission` precondition, which allows you to restrict the command based on the user's current permissions in the guild or channel (*e.g., `GuildPermission.Administrator`, `ChannelPermission.ManageMessages`*). -If, however, you wish to restrict the commands based on the user's -role, you can either create your custom precondition or use -Joe4evr's [Preconditions Addons] that provides a few custom -preconditions that aren't provided in the stock library. -Its source can also be used as an example for creating your -custom preconditions. +> [!NOTE] +> There are many more preconditions to use, including being able to make some yourself. +> Precondition documentation is covered [here](xref:Guides.TextCommands.Preconditions) [RequireUserPermission]: xref:Discord.Commands.RequireUserPermissionAttribute -[Preconditions Addons]: https://github.com/Joe4evr/Discord.Addons/tree/master/src/Discord.Addons.Preconditions ## Why am I getting an error about `Assembly.GetEntryAssembly`? diff --git a/docs/faq/commands/samples/Remainder.cs b/docs/faq/text_commands/samples/Remainder.cs similarity index 100% rename from docs/faq/commands/samples/Remainder.cs rename to docs/faq/text_commands/samples/Remainder.cs diff --git a/docs/faq/commands/samples/runmode-cmdattrib.cs b/docs/faq/text_commands/samples/runmode-cmdattrib.cs similarity index 100% rename from docs/faq/commands/samples/runmode-cmdattrib.cs rename to docs/faq/text_commands/samples/runmode-cmdattrib.cs diff --git a/docs/faq/commands/samples/runmode-cmdconfig.cs b/docs/faq/text_commands/samples/runmode-cmdconfig.cs similarity index 100% rename from docs/faq/commands/samples/runmode-cmdconfig.cs rename to docs/faq/text_commands/samples/runmode-cmdconfig.cs diff --git a/docs/faq/toc.yml b/docs/faq/toc.yml index 2f04dc98c..97e327aba 100644 --- a/docs/faq/toc.yml +++ b/docs/faq/toc.yml @@ -6,15 +6,19 @@ topicUid: FAQ.Basics.BasicOp - name: Client Basics topicUid: FAQ.Basics.ClientBasics - - name: Interactions - topicUid: FAQ.Basics.InteractionBasics -- name: Commands - items: - - name: String commands - topicUid: FAQ.Commands.General - - name: Interaction commands - topicUid: FAQ.Commands.Interactions - name: Dependency Injection - topicUid: FAQ.Commands.DI + topicUid: FAQ.Basics.DI +- name: Interactions + items: + - name: Starting out + topicUid: FAQ.Interactions.General + - name: Interaction Service/Framework + topicUid: FAQ.Interactions.Framework + - name: Manual handling + topicUid: FAQ.Interactions.Manual +- name: Text Commands + items: + - name: Text Command basics + topicUid: FAQ.TextCommands.General - name: Legacy or Upgrade topicUid: FAQ.Legacy