Kodda if (newMessage.Author.IsBot) return; satırı var, bu satır botların mesajlarını loglamayı engelliyor. Ancak bu satır sadece botların mesajlarını engelleyeceği için, bir kişi fotoğraf yüklediğinde de log verilecektir. Bu durumu engellemek için if (newMessage.Attachments.Count > 0) return; satırını kodun başına ekleyebilirsiniz. Bu satır, mesajda herhangi bir ek dosya varsa loglamayı engelleyecektir.

Kodun son hali şu şekilde olacaktır:

public async Task OnMessageUpdated(Cacheable<IMessage, ulong> oldMessage, SocketMessage newMessage, ISocketMessageChannel channel)
{
    var logsChannel = _client.GetChannel(1090630057455784046) as IMessageChannel;
    if (logsChannel == null) return;

    if (newMessage.Author.IsBot || newMessage.Attachments.Count > 0) return; 

    var embed = new EmbedBuilder
    {
        Color = Color.Orange,
        Title = "Mesaj Düzenlendi",
        Description = $"**Kullanıcı:** {newMessage.Author.Mention}\n**Kanal:** {newMessage.Channel.Name}",
        Timestamp = new DateTimeOffset(DateTime.UtcNow)
    };

    if (oldMessage.HasValue && oldMessage.Value.Content != newMessage.Content)
    {
        embed.AddField("Eski Mesaj", oldMessage.Value.Content);
        embed.AddField("Yeni Mesaj", newMessage.Content);
    }

    await logsChannel.SendMessageAsync(embed: embed.Build());
}

Böylece, bir kişi bir fotoğraf yüklediğinde log verilmeyecektir.


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

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