Handling updates - roxxel/TeleSharp GitHub Wiki
Create new class and inherit it from BaseUpdateHandlerModule
public class Handler : BaseUpdateHandlerModule
{
[UpdateHandler(UpdateHandlerType.Message)]
public async Task HandleMessage(TelegramClient client, UpdateNewMessage update)
{
var message = update.Message;
var me = client.CurrentUser;
//Checking if sender is User and not Chat and checking if sender is CurrentUser
if (message.SenderId is MessageSender.MessageSenderUser user && user.UserId == me.Id)
{
// Checking if message is text message and if message text starts with command prefix (in our case `.`)
if (message.Content is MessageContent.MessageText content && content.Text.Text.StartsWith('.'))
{
var text = content.Text.Text.Substring(1);
var parts = text.Split(" ", StringSplitOptions.RemoveEmptyEntries);
if (parts[0] == "ping")
{
await client.RawClient.EditMessageTextAsync(update.Message.ChatId, update.Message.Id, null, new
InputMessageContent.InputMessageText()
{
Text = new() { Text = "Pong 🏓" }
});
}
}
}
}
[UpdateHandler(UpdateHandlerType.UserStatusUpdated)]
public async Task UserStatusUpdatedHandler(TelegramClient client, UpdateUserStatus update)
{
Console.WriteLine($"User {update.UserId} status updated to {update.Status.GetType().Name}");
}
}