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

Posted

技术标签:

【中文标题】在 discord.net 中,如何让所有消息每分钟自动删除?【英文标题】:In discord.net, how do I make all messages automatically deleted every minute? 【发布时间】:2019-03-05 11:02:45 【问题描述】:

所以我的不和谐服务器上有一个验证频道,如果你输入 //verify ,它会验证你,但我想让它每分钟自动删除该频道上的所有消息。我该怎么做?

【问题讨论】:

【参考方案1】:

延迟一分钟

如果你真的需要 1 分钟的延迟,你可以有一个消息 ID (ulongs) 的列表。在您的 MessageReceived 方法中,您可以执行 if(message.Channel.Id == YOURCHANNELID) YOURMESSAGELIST.Add(message.Id); 之类的操作。在您的客户端就绪事件中,您将启动一个延迟 1 分钟的异步计时器(来自 System.Threading)。所以总是在你的计时器上:

  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();

希望对你有帮助。

【讨论】:

以上是关于在 discord.net 中,如何让所有消息每分钟自动删除?的主要内容,如果未能解决你的问题,请参考以下文章

如何让我的命令在 Discord.Net 中工作

Discord.NET 分配角色

为啥删除 discord.net 崩溃中的消息

在机器人发布在 Discord.net 中编写的 Discord 代码后,我正在寻找一种删除 bot 命令的方法

Discord.NET 1.0 如何将命令放入新的 .cs 文件中

连接到语音通道并在 Discord.net 中发送音频