2017-02-08 3 views
0

Я хочу научить мой DiscordBot, как работать с вводом после написания команды.C# Discord Bot - получить Userinput по параметру команды

Я создаю командный таким образом:

private void CreateCommand(string commandName, string parameterName, ParameterType parameterType , string commandValue) // Register this command by the name and the answer value 
     { 
      commands.CreateCommand(commandName).Parameter(parameterName, parameterType).Do(async (e) => 
      { 
       await e.Channel.SendMessage(commandValue); // Bots answer 
      }); 
     } 

Я использую этот метод, чтобы короткий мой код следующего метода:

private void Add(string commandName, string commandValue, string commandDescription) // Add a simple command to the List 
     { 
      singleCommandList.Add(new Tuple<string, string, string>(commandName, commandValue, commandDescription)); 
     } 

     private void Add(string commandName, string parameterName, ParameterType parameterType, string commandValue, string commandDescription) // Add commands with Parameters to the List 
     { 
      parameterCommandList.Add(new Tuple<string, string, ParameterType, string, string>(commandName, parameterName, parameterType, commandValue, commandDescription)); 
     } 

И это метод заполнения моего CommandList

private void FillCommandList() // Add all the commands to the List 
     { 
      Add("test", "success", "test"); // simple Command 
      Add("search", "onlineSearch", ParameterType.Multiple, Search("text to look for"), "Google it"); 
     } 

Моя проблема в том, что я не знаю, как заполнить параметр метода Search(). Что я должен пройти там? Что-то с e.User ..?

ответ

0

Я создал свой собственный Discord.Net бота, используя этот неофициальный раздора C# Wrapper:

An unofficial .NET API Wrapper for the Discord client
Their Discord Server

примеры, приведенные в документации, не всегда в курсе, так как они сделали огромный и переписывание кода с их API, но это действительно хорошо сделано с использованием шаблонов async.
Это должно дать вам больше примеров и идей о том, как продолжить свою идею.

Убедитесь, что версия 1.0 - ветвь dev. (на данный момент)

Все остальное описано на их Гитубе. Если вам все еще нужны ответы, присоединитесь к их раздору. Они очень полезны.

0

Используйте параметр e.GetArg("parameterName"), чтобы получить параметр с именем "parameterName". Это работает, если ParameterType - Optional или Required.

Если ваш ParameterType является Multiple, попробуйте:

string search = string.Join(" ", e.Args) 

получить весь параметр "onlineSearch".

+0

Собственно, весь API изменился. – TheOnlyMrCat

Смежные вопросы