Команда имеет приоритет над группой подмодулей Discord.Net - PullRequest
0 голосов
/ 09 октября 2018

Я пытаюсь настроить несколько вложенных команд, используя группы, но команды родительской группы, кажется, имеют приоритет.

Вот пример моего кода.

[Group("foo"), Summary("Testing foo")]
public class TestModule : ModuleBase<SocketCommandContext>
{
    [Group("bar"), Summary("Testing bar")]
    public class TestModTwo : ModuleBase<SocketCommandContext>
    {
        [Command, Summary("bar default command")]
        public async Task Test()
        {
            await Context.Channel.SendMessageAsync("bar default command");
        }
    }

    [Command, Summary("foo default command")]
    public async Task Test()
    {
        await Context.Channel.SendMessageAsync("foo default command");
    }

    [Command, Summary("foo default command with string")]
    public async Task Test(string User)
    {
        await Context.Channel.SendMessageAsync("foo default command with string");
    }
}

При выполнении моей команды w?foo bar мой бот возвращает "команду foo default со строкой" вместо желаемой "команды bar default".Комментирование моего метода теста с помощью строки вернуло то, что я хочу.Есть ли способ указать мою вложенную команду, при этом все еще имея возможность принимать строку в команде родительской группы?

1 Ответ

0 голосов
/ 09 октября 2018

Вы можете добиться такого поведения, добавив PriorityAttribute к своей внутренней команде.Это скажет Discord.net сначала проверить эту команду.

Примечание. Вставка наибольшего числа в PriorityAttribute будет проверена первой!

...