2017-03-20 8 views
0

24時間ごとに自動的に繰り返すコマンドを設定するにはどうすればよいですか?Discord.net v0.9.6を使用してC言語で24時間ごとにdiscordコマンドを繰り返すにはどうすればよいですか?

private void RegisterMemeCommand() 
    { 
     commands.CreateCommand("meme") 
      .Do(async (e) => 
      { 
       int randomMemeIndex = rand.Next(FullmetalMemes.Length); 
       string memeToPost = FullmetalMemes[randomMemeIndex]; 
       await e.Channel.SendFile(memeToPost); 
      }); 
    } 

私はこれは私が私の不和や型ミームに移動しなくても正午の毎日自分自身で実行するために取得しようとしています。

+4

コードの画像は、不満足です。人々があなたを助けるために時間を取ることを期待している場合、少なくともあなたの問題を書く時間を取る –

+0

[なぜ質問をするときにSOのコードイメージをアップロードできないのですか?](http://meta.stackoverflow。 com/questions/285551/why-may-i-not-upload-images-of-code-on-so-ask-a-question) –

+0

コードを画像としてアップロードして申し訳ありません...私は問題を修正しました。 – ST33LIO

答えて

1

コマンドを作成する必要はありません。自分のIDを持つチャンネルにメッセージを直接送ることができます。

サンプルコード:

const ulong serverId = 38297389272897UL; // the id of your server 
    const ulong channelId = 78346982689343UL; // the id of the channel 

    Server findServer(ulong id) 
    { 
     foreach(Server server in discord.Servers) // discord is your DiscorClient instance 
     { 
      if (server.Id == serverId) 
       return server; 
     } 
     return null; 
    } 

    Channel findTextChannel(Server server, ulong id) 
    { 
     foreach(Channel channel in server.TextChannels) 
     { 
      if (channel.Id == channelId) 
       return channel; 
     } 
     return null; 
    } 

    private Channel channel; 
    private System.Threading.Timer timer; 

    void load() 
    { 
     Server server = findServer(serverId); 
     if (server != null) 
     { 
      channel = findTextChannel(server, channelId); 
      if (channel != null) 
       timer = new System.Threading.Timer(send, null, 0, 1000 * 60 * 60 * 24); // 24 hour interval 
     } 
    } 

    void send(object state) 
    { 
     channel.SendMessage("your message"); 
    } 

は、サーバーまたはチャネル上で右クリックして、サーバーのIDとの確執にチャネルを取得し、コピーIDをクリックすることができます。このオプションがない場合は、設定で開発者モードが選択されていることを確認してください。

+0

ありがとうございます。 :) – ST33LIO

関連する問題