在discord.net中,如何使所有消息每分钟自动删除?

时间:2018-09-29 20:48:16

标签: c# discord discord.net

因此,我的discord服务器上有一个验证通道,如果您键入// verify,它将验证您,但是我要这样做,以便所有消息每分钟自动在该通道上删除。我该怎么办?

1 个答案:

答案 0 :(得分:1)

一分钟延迟

好吧,如果您确实需要1分钟的延迟,则可以获取消息ID(ulongs)列表。在您的MessageReceived方法上,您可以执行类似if(message.Channel.Id == YOURCHANNELID) YOURMESSAGELIST.Add(message.Id);的操作。在您的客户端就绪事件上,您将启动一个异步计时器(来自System.Threading),延迟1分钟。因此,请务必在您的计时器上打勾:

  var guild = MainClass.DiscordClient.GetGuild(YOURCHANNELID);
  var channel = guild.GetTextChannel(YOURCHANNELID);
  await channel.DeleteMessagesAsync(YOURMESSAGELIST);
  YOURMESSAGELIST.Clear();

接收时删除消息

一种更容易且可能更清洁的方法是,在收到该消息后立即删除该通道中的每条消息,这意味着您在MessageReceived方法中有一个类似于以下内容的if:if(message.Channel.Id == YOURCHANNELID) await message.DeleteAsync();

希望对您有所帮助。