C# + Discord.NET - Команда со строкой?

Поэтому я хочу создать команду, в которой пользователь вводит команду с чем-то другим, и этим определяется строка. Эта строка позже используется для перенаправления пользователя на веб-сайт.

Имея в виду:

//The string is defined here by user (string = what user typed in after "command") (how?)
commands.CreateCommand("command", string add_link)

            .Do(async (e) =>
            {
//String is added to website.
                await e.Channel.SendMessage("www.website.com/" + add_link);
            });

Это вообще возможно?

1 ответ

Решение

Это довольно просто, вам просто нужно добавить вызов.Parameter(), чтобы определить его, а затем получить его с помощью GetArgs(). Смотрите этот пример:

 cmd.CreateCommand("linkit")                
 .Parameter("url", ParameterType.Unparsed)
 .Do(async e =>
 {
     string msg = e.GetArg("url");                        
     await e.Channel.SendMessage("the text is: "+msg);
 });

Это будет использоваться следующим образом (при условии, что ключ вашего бота '!'):

[fhl] !linkit foobar
[bot] the text is: foobar

Пример адаптирован из этого примера бота: https://github.com/RogueException/DiscordBot

Другие вопросы по тегам