Bu işlemi gerçekleştirmek için, Discord.Net kütüphanesi ile birkaç event kullanacağız. İlk olarak, MessageUpdated event'ını kullanarak mesaj düzenlendiğinde tetiklenecek bir method oluşturacağız. Bu method, mesajın eski ve yeni halini alacak ve log kanalına gönderecek. İşte kod örneği:

private async Task LogMessageUpdate(Cacheable<IMessage, ulong> before, SocketMessage after, ISocketMessageChannel channel)
{
    var beforeMsg = await before.GetOrDownloadAsync();
    if (beforeMsg == null) return;
    if (beforeMsg.Content == after.Content) return; // mesaj içeriği değişmediyse loglama yapma

    var embedBuilder = new EmbedBuilder
    {
        Title = "Mesaj Düzenlendi",
        Color = Color.Orange,
        Timestamp = DateTime.UtcNow,
        Footer = new EmbedFooterBuilder
        {
            Text = $"Düzenlenen Kanal: #{channel.Name}"
        },
        Author = new EmbedAuthorBuilder
        {
            Name = $"{beforeMsg.Author.Username}#{beforeMsg.Author.Discriminator}",
            IconUrl = beforeMsg.Author.GetAvatarUrl()
        }
    };

    var oldContent = beforeMsg.Content ?? "*Boş*";
    var newContent = after.Content ?? "*Boş*";

    embedBuilder.AddField("Eski Mesaj", oldContent);
    embedBuilder.AddField("Yeni Mesaj", newContent);

    var logChannel = channel.Guild.GetTextChannel(LOG_CHANNEL_ID); // LOG_CHANNEL_ID yerine log kanalınızın ID'sini yazın
    await logChannel.SendMessageAsync("", false, embedBuilder.Build());
}

Bu method, bir mesaj düzenlendiğinde tetiklenecek ve eski mesajın içeriği ile yeni mesajın içeriğini alacak. Daha sonra, bu bilgileri bir EmbedBuilder objesi içinde toplayacak ve log kanalına gönderecek.

Bu method'u kullanmak için, botunuzun Ready event'ında aşağıdaki satırları ekleyin:

client.MessageUpdated += LogMessageUpdate;

Böylece, botunuz hazır olduğunda, MessageUpdated event'i otomatik olarak loglama işlemi için tetiklenecek.

Not: Bu örnekte, mesajların loglanacağı kanalın ID'sini LOG_CHANNEL_ID değişkenine atayarak kullanıyoruz. Log kanalınızın ID'sini değiştirmeyi unutmayın. Ayrıca, EmbedBuilder objesini istediğiniz şekilde özelleştirebilirsiniz.

c# discordnet kütüphanesi ile discord botuma şunu eklemeni istiyorum Mesajını düzenleyenlerin eski düzenlenmeden önceki ve güncel halini logs kanalına yazacak

原文地址: https://www.cveoy.top/t/topic/N0E 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录