Skip to content

[Bug]: Nested command groups causes un-nested registrations #298

@VelvetToroyashi

Description

@VelvetToroyashi

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:
image

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions