@@ -291,6 +291,11 @@ By nesting commands inside a module that is tagged with [GroupAttribute] you can | |||||
> Although creating nested module stuctures are allowed, | > Although creating nested module stuctures are allowed, | ||||
> you are not permitted to use more than 2 [GroupAttribute]'s in module hierarchy. | > you are not permitted to use more than 2 [GroupAttribute]'s in module hierarchy. | ||||
> [!NOTE] | |||||
> To not use the command group's name as a prefix for component or modal interaction's custom id set `ignoreGroupNames` parameter to `true` in classes with [GroupAttribute] | |||||
> | |||||
> However, you have to be careful to prevent overlapping ids of buttons and modals | |||||
[!code-csharp[Command Group Example](samples/intro/groupmodule.cs)] | [!code-csharp[Command Group Example](samples/intro/groupmodule.cs)] | ||||
## Executing Commands | ## Executing Commands | ||||
@@ -16,6 +16,11 @@ public class CommandGroupModule : InteractionModuleBase<SocketInteractionContext | |||||
// group-name subcommand-group-name echo | // group-name subcommand-group-name echo | ||||
[SlashCommand("echo", "Echo an input")] | [SlashCommand("echo", "Echo an input")] | ||||
public async Task EchoSubcommand(string input) | public async Task EchoSubcommand(string input) | ||||
=> await RespondAsync(input); | |||||
=> await RespondAsync(input, components: new ComponentBuilder().WithButton("Echo", $"echoButton_{input}").Build()); | |||||
// Component interaction with ignoreGroupNames set to true | |||||
[ComponentInteraction("echoButton_*", true)] | |||||
public async Task EchoButton(string input) | |||||
=> await RespondAsync(input); | |||||
} | } | ||||
} | } |