【问题标题】:Logging deleted messages in discord.net C#在 discord.net C# 中记录已删除的消息
【发布时间】:2018-11-21 19:10:00
【问题描述】:

我正在尝试学习 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);
    }

【问题讨论】:

  • 你试过调试吗?

标签: c# logging chat discord.net


【解决方案1】:

我很确定await arg2.SendMessageAsync("", embed: eb); 会给你一个错误,所以把它改成 eb.Build(),它就像一个 StringBuilder,你也必须在最后做 ToString。至于另一部分,它看起来相当不错,但您可能会遇到 Ratelimit 问题,因为使用机器人您可以批量删除,这将导致您的代码为每条消息发送一个新消息。您需要做一个批量删除检测系统,因为 Discord 本身会处理批量删除,例如逐条删除每条消息。

请注意,您也可以这样做:eb.AddField("Message:", msg.Content or msg.ToString()); 而不是 eb.AddField("Message:", $"{msg}");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-21
    • 2020-09-10
    • 2018-11-25
    • 1970-01-01
    • 2021-02-10
    • 1970-01-01
    • 2020-11-20
    相关资源
    最近更新 更多