[Bug]: Nested command groups causes un-nested registrations
VelvetToroyashi opened this issue · 3 comments
Description
When registering a nested slash command group, the child group is un-nested at runtime.
Steps to Reproduce
Register the following with Remora.Discord.Commands
[Group("parent")]
public class ParentGroup : CommandGroup
{
[Group("child")]
public class ChildGroup : CommandGroup
{
[Command("command")]
public async Task<Result> CommandAsync() => Result.FromSuccess();
}
}
Expected Behavior
The command is registered with discord as `/parent child command.
This is represented as Command ➜ Subcommand-group ➜ Subcommand
Current Behavior
The command is in fact registered in this manner, but is also duplicated, eliding the parent.
This is illustrated in this screenshot:
Top: Command ➜ Subommand
(Incorrect)
Bottom: Command ➜ Subcommand-group ➜ Command
(Correct)
This is a bug in Remora's translation from Command tree ➜ Application command tree, however executing the malformed command still appears to work correctly
Library / Runtime Information
C# 11
.NET 7.0.2
Remora.Discord.Commands 26.2.3
I don't think this is a Remora issue, because I have several groups with this setup that work just fine. Make sure you're not registering the inner group by itself, either explicitly or via assembly scanning.
Hmm. Seems to be an issue with the assembly scanning code, since there isn't a check for nested children in groups