如何使用discord.net v0.9.6在c#中每隔24小时重复一次discord命令?

如何使用discord.net v0.9.6在c#中每隔24小时重复一次discord命令?,c#,discord,discord.net,C#,Discord,Discord.net,如何将命令设置为每24小时自动重复一次 private void RegisterMemeCommand() { commands.CreateCommand("meme") .Do(async (e) => { int randomMemeIndex = rand.Next(FullmetalMemes.Length); string memeToPos

如何将命令设置为每24小时自动重复一次

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

我每天中午都试图让它自己执行,而不必进入我的discord并键入meme。

您不需要创建命令。您可以直接将消息发送到具有其id的频道

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

private void RegisterMemeCommand()
    {
        commands.CreateCommand("meme")
            .Do(async (e) =>
            {
                int randomMemeIndex = rand.Next(FullmetalMemes.Length);
                string memeToPost = FullmetalMemes[randomMemeIndex];
                await e.Channel.SendFile(memeToPost);
            });
    }
    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。如果没有此选项,请确保已在“设置”中选中“开发人员模式”。

无需创建命令。您可以直接将消息发送到具有其id的频道

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

private void RegisterMemeCommand()
    {
        commands.CreateCommand("meme")
            .Do(async (e) =>
            {
                int randomMemeIndex = rand.Next(FullmetalMemes.Length);
                string memeToPost = FullmetalMemes[randomMemeIndex];
                await e.Channel.SendFile(memeToPost);
            });
    }
    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。如果没有此选项,确保您已在“设置”中选中“开发人员模式”。

请参阅抱歉,将代码上载为图像…我是SO的新成员,但我确实更正了此问题。请参阅抱歉,将代码上载为图像…我是SO的新成员,但我确实更正了此问题。
private void RegisterMemeCommand()
    {
        commands.CreateCommand("meme")
            .Do(async (e) =>
            {
                int randomMemeIndex = rand.Next(FullmetalMemes.Length);
                string memeToPost = FullmetalMemes[randomMemeIndex];
                await e.Channel.SendFile(memeToPost);
            });
    }