在discord.net C#中记录已删除的消息

时间:2018-11-21 19:10:01

标签: c# logging chat discord.net

我正在尝试学习discord.net的任务部分,并且一直在尝试记录用户删除消息时的记录,但是我没有使它起作用,所有帮助将不胜感激。

这是我当前的代码,请记住,我将MessageCacheSize设置为合理的大小

internal static async Task LogDeleted(Cacheable<IMessage, ulong> arg1, ISocketMessageChannel arg2)
    {
        EmbedBuilder eb = new EmbedBuilder();
        EmbedFooterBuilder efb = new EmbedFooterBuilder();

        var msg = arg1.GetOrDownloadAsync();

        eb.Title = "Message deleted";

        eb.AddField("Message:", $"{msg}");

        await arg2.SendMessageAsync("", embed: eb);
    }

1 个答案:

答案 0 :(得分:0)

我很确定await arg2.SendMessageAsync("", embed: eb);会给您一个错误,因此将其更改为eb.Build(),就像StringBuilder一样,您还必须在末尾执行ToString。至于其他部分,这似乎还不错,但是您可能会遇到Ratelimit Issues,因为使用bot可以批量删除,这将导致为每条消息发送的代码都删除了一条新消息。您需要做一个批量删除检测系统,因为Discord本身会进行批量删除,就像逐个删除每个邮件一样。

请注意,您也可以执行以下操作:eb.AddField("Message:", msg.Content or msg.ToString());而不是eb.AddField("Message:", $"{msg}");