Remora / Remora.Discord

A data-oriented C# Discord library, focused on high-performance concurrency and robust design.
GNU Lesser General Public License v3.0
246 stars 44 forks source link

[Bug]: Autocomplete doesn't respect `[Option]` name #299

Open VelvetToroyashi opened 1 year ago

VelvetToroyashi commented 1 year ago

Description

When using an autocomplete provider, it's reasonable to assume that if the parameter is marked with the [Option] attribute, that name is given precedence over the parameter's name (which actually won't work when https://github.com/Remora/Remora.Commands/pull/20 gets merged)

Steps to Reproduce

public class ReproCommand : CommandGroup
{
  [Command("autocomplete")]
  public async Task<Result> AutoCompleteAsync([Option("mismatched")] string parameter) => Result.FromSuccess();
}

Expected Behavior

Autocomplete uses the hint name of the parameter, allowing parameter name to be mismatched from the presented option

Current Behavior

The LINQ query throws, because Remora assumes the command parameter name matches what Discord returns in the focused option.

https://github.com/Remora/Remora.Discord/blob/3818e52/Remora.Discord.Commands/Responders/AutocompleteResponder.cs#L122-L125

Library / Runtime Information

C# 11, .NET 7.0.2, Remora.Discord.Commands 26.2.3