【发布时间】:2017-03-20 07:10:48
【问题描述】:
我刚开始编写 c#,我正在为我的 discord 服务器制作一个 Bot。我最近添加了一个命令 !meme,它会从大约 100 张不同的图片中随机提取并发送到聊天中。在我执行这个命令的那一刻,每个人都完全滥用了它,而且由于 !meme 垃圾邮件,每 2 秒就有大约 15 张图片在聊天中弹出。
我希望能够在命令本身可以再次使用之前添加 3 秒延迟。我尝试使用Thread.Sleep(3000);,但没有奏效。相同的
await Task.Delay(3000); 我在异步内部使用。
private void RegisterMemeCommand()
{
commands.CreateCommand("Meme")
.Do(async (e) =>
{
int RandomMeme = rng.Next(MemeList.Length);
string memetopost = MemeList[RandomMeme];
await e.Channel.SendFile(memetopost);
});
}
【问题讨论】:
-
什么意思?
-
是的,我有,没有完全粘贴。
-
记录最后一次使用该命令的时间。当有人再次使用它时,将当前时间与那个时间进行比较。如果不超过三秒,不执行命令。
-
它不起作用,因为什么也没发生。没有错误,只是没有冷却时间,人们可以继续发送垃圾邮件。
-
@EricLippert 你能输入一下吗?因为我不知道如何获取当前时间,或者如果这段时间没有过去,那么不要执行