2017-02-08 7 views
0

Commandを書き込んだ後、DiscordBotにInputを処理する方法を教えたいと思います。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

私は、この非公式の確執C#ラッパーを使用して独自のDiscord.Netボットを作成しました:

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

彼らは巨大なを作ったので、ドキュメントに与えられた例は、常に最新ではありませんコードの書き換えはAPIの書き直しですが、実際には非同期パターンを使用して行われます。
これは、あなたのアイデアを続ける方法に関するより多くの例とアイデアを提供するはずです。

バージョン1.0 - devブランチを使用していることを確認してください。 (現在)

他のすべてはGithubに記載されています。あなたはまだ答えが必要な場合は、彼らの不和に参加してください。彼らはとても役に立ちます。

0

e.GetArg("parameterName")を使用して、「parameterName」という名前のパラメータを取得します。これは、ParameterTypeOptionalまたはRequiredの場合に機能します。

あなたParameterTypeMultipleであれば、試してみてください。

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

を全体 "onlineSearch" パラメータを取得します。

+0

実際、API全体が変更されました。 – TheOnlyMrCat

関連する問題