C# Discord.NET ile Discord Bot'unuza Mesaj Düzenleme Loglama Özelliği Ekleme
Aşağıdaki kod örneği, Discord.NET kütüphanesi kullanarak bir bot oluşturmanıza ve mesajların düzenlenmesini izlemenize olanak tanır. Mesaj düzenlendiğinde, önceki ve yeni mesaj içeriği, sunucudaki belirli bir kanala kaydedilir.
using Discord;
using Discord.Commands;
using Discord.WebSocket;
using System.Threading.Tasks;
public class MyBot
{
private readonly DiscordSocketClient _client;
private readonly CommandService _commands;
private readonly ulong _logChannelId = 123456789; // log kanalının ID'si
public MyBot()
{
_client = new DiscordSocketClient();
_commands = new CommandService();
_client.MessageUpdated += OnMessageUpdatedAsync;
}
public async Task MainAsync()
{
string token = "BOT_TOKEN";
await _client.LoginAsync(TokenType.Bot, token);
await _client.StartAsync();
await Task.Delay(-1);
}
private async Task OnMessageUpdatedAsync(Cacheable<IMessage, ulong> before, SocketMessage after, ISocketMessageChannel channel)
{
// Sadece sunucu mesajlarına odaklanın
if (channel is IGuildChannel)
{
var logChannel = _client.GetChannel(_logChannelId) as IMessageChannel;
// Eski ve yeni mesaj içeriğini alın
var beforeMsg = await before.GetOrDownloadAsync();
var afterMsg = after as IUserMessage;
// Mesaj içeriği değişti mi kontrol edin
if (beforeMsg.Content != after.Content)
{
// Eski ve yeni mesajı log kanalına gönderin
await logChannel.SendMessageAsync('Mesaj düzenlendi: (Önce) ' + beforeMsg.Content + ' -> (Sonra) ' + afterMsg.Content);
}
}
}
}
Bu kod örneği, 'OnMessageUpdatedAsync' adlı bir olay işleyicisi tanımlar. Bu işleyici, bir mesaj düzenlendiğinde tetiklenir ve önceki ve yeni mesaj içeriğini kontrol eder. Eski ve yeni mesajın içeriği farklıysa, bu değişiklik log kanalına kaydedilir.
Kayıt kanalını değiştirmek için '_logChannelId' değişkenini değiştirebilirsiniz. Ayrıca, botunuzun ana kodunda bu örneği kullanmak için 'MainAsync' yöntemini çağırmanız gerekir.
原文地址: https://www.cveoy.top/t/topic/l6cE 著作权归作者所有。请勿转载和采集!