Регистрация удаленных сообщений в discord.net C # - PullRequest
0 голосов
/ 21 ноября 2018

Я пытаюсь изучить часть задачи 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 голосов
/ 21 ноября 2018

Я почти уверен, что await arg2.SendMessageAsync("", embed: eb); выдаст вам ошибку, поэтому замените ее на eb.Build (), это похоже на StringBuilder, вам нужно будет также выполнить ToString в конце.Что касается другой части, она выглядит довольно прилично, но вы можете столкнуться с проблемами ограничения скорости, поскольку с помощью бота вы можете массово удалить, что приведет к отправке вашего кода для каждого сообщения, удаляющего новое.Вам нужно будет использовать систему обнаружения массовых удалений, поскольку сама Discord управляет массовым удалением, например, удаляя каждое сообщение одно за другим.

Обратите внимание, что вы также можете сделать это: eb.AddField("Message:", msg.Content or msg.ToString()); вместо eb.AddField("Message:", $"{msg}");.

...