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