2017-07-19 12 views
-2

私はボットを持っており、コード内から作成したコマンドを呼びたいと思っています。私はe.Channel.SendMessage( "!command")を試しました、どこに!プレフィックスと「コマンドは、」私や他の誰かの種類!コマンド場合ディスパッチロボットが独自のコマンドを呼び出す方法

private newCommand() 
{ 
    cmd.CreateCommand("command") 
     .Do(async (e) => 
     { 
     // Some command stuff 
     } 
} 

だからのような、コマンドが正常に実行されるコマンドがされているが、私は得ることができますどのようにボット自身がコード内からコマンドを呼び出すこと。

と同様に、例えば、私はこのコードを持っていると言う:

discord.MessageReceived += async (s, e) => 
     { 
      if (!e.Message.IsAuthor && e.Message.User.Id == blah) 
      { 
       await e.Channel.SendMessage("Yo man"); 

       // how do I perform command?? 
       await e.Channel.SendMessage("!command"); // doesn't do anything 
      } 
     }; 

は、私がMessageReceivedセクションに貼り付け私のコマンドからの重複したコードを持たずにこれを行うことができます方法はありますか?

答えて

1

は、スコープを展開別名、アノンの機能のうち、コマンドコードを取ると、あなたは両方の場所から呼び出すことができますので、より高い範囲で定義します。

discord.MessageReceived += async (s, e) => 
{ 
    if (!e.Message.IsAuthor && e.Message.User.Id == blah) 
    { 
     await e.Channel.SendMessage("Yo man"); 

     // how do I perform command?? 
     ExecuteCommand(); 
    } 
}; 
+1

なるほど:

private newCommand() { cmd.CreateCommand("command") .Do(async (e) => { ExecuteCommand(); } } private void ExecuteCommand() { // some command stuff } 

次に、あなたの他の方法からそれを呼び出します!はい、それは完璧な意味があります。 discordの呼び出し不可能な関数で定義するのではなく...呼び出し可能なものを定義する...: ') –

+0

これは時々私たちを抱く小さな事です。それを保つ。 – Cory

関連する問題